GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo trabajar con Ansible Provisioner en Vagrant

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.

  1. predeterminado – Instalar ansible usando el administrador de paquetes basado en distribución.
  2. PIP – Instalar ansible usando PIP.
  3. 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.


Linux
  1. Cómo uso Vagrant con libvirt

  2. Cómo usar Ansible para configurar el monitoreo del sistema con Prometheus

  3. Cómo trabajar con el cliente SFTP en Linux:10 comandos sftp

  4. Cómo trabajar con usuarios y grupos en Linux

  5. ¿Cómo funciona Kerberos con SSH?

Cómo usar Vagrant con el proveedor KVM de Libvirt

Cómo trabajar con Nano Editor en Linux

Cómo trabajar con File y Shell Provisioner en Vagrant

Cómo trabajar con declaraciones de casos en scripts Bash

Cómo clonar un repositorio Git con Ansible

Cómo instalar y configurar WordPress con Ansible