En el artículo anterior, hemos visto qué es provisioner y cómo trabajar con shell y file provisioner. En este artículo, veremos cómo usar un aprovisionador ansible para automatizar el flujo de trabajo de Vagrant. Aquí crearemos un libro de jugadas y use el libro de jugadas para ejecutar ansible play contra la máquina invitada vagabunda.
El siguiente es el fragmento del libro de jugadas Voy a utilizar en este artículo para la demostración. Solo hay una jugada y se encargará de instalar paquetes usando el apt módulo. Crea un nuevo .yml
o .yaml
archivo y copie el fragmento.
--- - hosts: all become: yes tasks: - name: Install 4 packages apt: pkg: - net-tools - neofetch - cowsay - htop update_cache: yes
Cómo trabajar con Ansible Remote Provisioner en Vagrant
Para ejecutar libros de estrategias , ansible debe instalarse en la máquina virtual invitada vagabunda. Puedes usar un concha aprovisionador para instalar ansible. Consulte el código a continuación, hay una sección para el aprovisionador de shell y estoy usando una serie de apt comandos del administrador de paquetes para configurar un repositorio ansible e instalarlo.
agrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" config.vm.hostname = "ansible-provisioner" config.vm.network "public_network", bridge: "Intel(R) Dual Band Wireless-AC 7265", ip: "192.168.1.100" config.vm.provider "virtualbox" do |vbox| vbox.memory = "2048" vbox.cpus = "2" end config.vm.provision "shell", inline: <<-BLOCK sudo apt-add-repository ppa:ansible/ansible -y sudo apt update sudo apt install ansible -y ansible --version BLOCK end
Cree un nuevo directorio de proyectos y ejecute vagrant init comando.
$ mkdir ansible_provisioner $ cd ansible_provisioner $ vagrant init -m
Ahora, dependiendo del estado de su máquina virtual (en ejecución o parada), puede ejecutar el siguiente comando. Si esta es la primera vez entonces vagabundo hará el trabajo.
$ vagrant up ==> Running VM for first time $ vagrant reload --provision ==> If VM is already provisioned and running $ vagrant up --provision ==> VM is already provisioned and not running
Durante el proceso de arranque de la máquina virtual, puede ver en los registros que se está instalando ansible.
Ahora estás listo para usar el libro de jugadas . Modificaré el mismo archivo de configuración y agregaré un aprovisionador remoto ansible. A continuación se muestra la sintaxis. La ruta del libro de jugadas (absoluta o relativa) se proporcionará como se muestra a continuación.
config.vm.provision "ansible" do |ans| ans.playbook = "my_playbook.yml" # Playbook in same folder as Vagranfile #ans.playbook = "/home/karthick/vagrant/ansible_provisioner/my_playbook.yml"
En el siguiente resultado, puede ver mi jugada ejecutada con éxito.
Cómo usar el aprovisionador local de Ansible en Vagrant
Este es otro método para configurar ansible en su máquina virtual invitada vagabunda. Cuando utilice un aprovisionador local, Vagrant se encargará de instalar el ansible por usted automáticamente. La única entrada que debe proporcionar es a través de qué método vagrant debe configurar ansible.
A continuación se muestra la sintaxis para el aprovisionamiento local.
config.vm.provision "ansible_local" do |ans| ans.playbook = "my_playbook.yml"
Hay tres modos diferentes.
- predeterminado – Instalar ansible usando el administrador de paquetes basado en distribución.
- PIP – Instalar ansible usando PIP.
- Argumentos PIP – Instalación usando argumentos PIP.
De forma predeterminada, el vagabundo intentará instalar desde el repositorio. Si desea instalar a través de PIP puede establecer la sintaxis de la siguiente manera. Cuando usa PIP, el vagabundo primero verificará si PIP está disponible en la máquina invitada e intentará instalarlo. Una vez que PIP esté disponible, utilizará PIP para descargar e instalar un paquete ansible desde PyPI.
config.vm.provision "ansible_local" do |ans| ans.playbook = "my_playbook.yml" ans.install_mode = "pip"
Eso es todo por este artículo. En el próximo artículo, veremos cómo crear cajas personalizadas en vagrant.