GNU/Linux >> Linux Esercitazione >  >> Linux

Come lavorare con Ansible Provisioner in Vagrant

Nell'articolo precedente, abbiamo visto cos'è il provisioner e come lavorare con il provisioner di shell e file. In questo articolo, vedremo come utilizzare un provisioner ansible per automatizzare il flusso di lavoro vagabondo. Qui creeremo un playbook e usa il playbook per eseguire un gioco ansible contro la macchina ospite vagabonda.

Quello che segue è lo snippet del playbook Userò in questo articolo per la dimostrazione. C'è solo una riproduzione e si occuperà dell'installazione dei pacchetti utilizzando apt modulo. Crea un nuovo .yml o .yaml file e copia lo snippet.

---
- hosts: all
  become: yes
  tasks:
    - name: Install 4 packages
      apt:
        pkg:
        - net-tools
        - neofetch
        - cowsay
        - htop
        update_cache: yes

Come lavorare con Ansible Remote Provisioner in Vagrant

Per eseguire playbook , ansible dovrebbe essere installato nella macchina virtuale del guest vagabondo. Puoi usare una shell fornitore di installare ansible. Fare riferimento al codice seguente, c'è una sezione per il provisioner della shell e sto usando una serie di apt comandi del gestore pacchetti per configurare un repository ansible e installarlo.

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

Crea una nuova directory di progetto ed esegui vagrant init comando.

$ mkdir ansible_provisioner 
$ cd ansible_provisioner
$ vagrant init -m

Ora, a seconda dello stato della tua macchina virtuale (in esecuzione o interrotta), puoi eseguire il comando seguente. Se è la prima volta, allora vagabondi farà il lavoro.

$ 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 il processo di avvio della macchina virtuale, puoi vedere dai log che ansible viene installato.

Ora puoi usare il playbook . Modificherò lo stesso file di configurazione e aggiungerò un provisioner remoto ansible. Di seguito è riportata la sintassi. Percorso Playbook (assoluto o relativo) da fornire come mostrato di seguito.

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"

Dall'output di seguito puoi vedere la mia riproduzione eseguita con successo.

Come utilizzare Ansible Local Provisioner in Vagrant

Questo è un altro metodo per configurare ansible nella tua VM ospite vagabonda. Quando usi un provisioner locale, vagrant si occuperà di installare automaticamente l'ansible per te. L'unico input che devi fornire è attraverso quale metodo vagrant dovrebbe impostare ansible.

Di seguito è riportata la sintassi per il provisioning locale.

config.vm.provision "ansible_local" do |ans|
  	ans.playbook = "my_playbook.yml"

Ci sono tre diverse modalità.

  1. predefinito – Installazione di ansible utilizzando il gestore di pacchetti basato sulla distribuzione.
  2. PIP – Installazione di ansible tramite PIP.
  3. Argomenti PIP – Installazione utilizzando PIP args.

Per impostazione predefinita, il vagabondo proverà a eseguire l'installazione dal repository. Se desideri installare tramite PIP puoi impostare la sintassi come di seguito. Quando usi PIP, il vagabondo verificherà prima se PIP è disponibile nella macchina ospite e proverà a installarlo. Una volta che PIP sarà disponibile, utilizzerà PIP per scaricare e installare un pacchetto ansible da PyPI.

config.vm.provision "ansible_local" do |ans|
  	ans.playbook = "my_playbook.yml"
  	ans.install_mode = "pip"

Questo è tutto per questo articolo. Nel prossimo articolo vedremo come creare scatole personalizzate in vagrant.


Linux
  1. Come configurare Nginx per funzionare con PHP tramite PHP-FPM

  2. Rinnovando il mio brivido di lavoro con Ansible

  3. Come configurare le impostazioni di rete con i ruoli di sistema Ansible

  4. Come installare pacchetti software con un playbook Ansible

  5. Come far funzionare correttamente Vim con Tmux?

Come utilizzare Vagrant con il provider KVM Libvirt

Come lavorare con Nano Editor su Linux

Come lavorare con File e Shell Provisioner in Vagrant

Come lavorare con l'istruzione Case negli script Bash

Come clonare un repository Git con Ansible

Come installare e configurare WordPress con Ansible