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à.
- predefinito – Installazione di ansible utilizzando il gestore di pacchetti basato sulla distribuzione.
- PIP – Installazione di ansible tramite PIP.
- 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.