GNU/Linux >> Tutoriels Linux >  >> Linux

Comment travailler avec Ansible Provisioner dans Vagrant

Dans l'article précédent, nous avons vu ce qu'est l'approvisionneur et comment travailler avec le shell et l'approvisionneur de fichiers. Dans cet article, nous verrons comment utiliser un provisionneur ansible pour automatiser le workflow vagrant. Ici, nous allons créer un playbook et utilisez le playbook pour exécuter un jeu ansible contre la machine invitée vagabonde.

Ce qui suit est l'extrait du playbook Je vais utiliser dans cet article pour la démonstration. Il n'y a qu'un seul jeu et il se chargera d'installer les packages en utilisant apt module. Créer un nouveau .yml ou .yaml fichier et copiez l'extrait.

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

Comment travailler avec Ansible Remote Provisioner dans Vagrant

Pour exécuter des playbooks , ansible doit être installé sur la machine virtuelle invitée vagabonde. Vous pouvez utiliser un shell fournisseur pour installer ansible. Reportez-vous au code ci-dessous, il y a une section pour le fournisseur de shell et j'utilise une série de apt commandes du gestionnaire de packages pour configurer un référentiel ansible et l'installer.

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

Créez un nouveau répertoire de projet et exécutez le vagrant init commande.

$ mkdir ansible_provisioner 
$ cd ansible_provisioner
$ vagrant init -m

Maintenant, en fonction de l'état de votre machine virtuelle (en cours d'exécution ou en arrêt), vous pouvez exécuter la commande suivante. Si c'est la première fois, alors vagabondez fera le travail.

$ 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

Pendant le processus de démarrage de la machine virtuelle, vous pouvez voir dans les journaux qu'ansible est en cours d'installation.

Vous êtes maintenant prêt à utiliser le playbook . Je vais modifier le même fichier de configuration et ajouter un approvisionneur distant ansible. Ci-dessous la syntaxe. Chemin d'accès au playbook (absolu ou relatif) à fournir comme indiqué ci-dessous.

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"

À partir de la sortie ci-dessous, vous pouvez voir mon jeu exécuté avec succès.

Comment utiliser Ansible Local Provisioner dans Vagrant

Il s'agit d'une autre méthode de configuration d'ansible dans votre machine virtuelle invitée vagabonde. Lorsque vous utilisez un fournisseur local, vagrant s'occupera d'installer automatiquement l'ansible pour vous. La seule entrée que vous devez fournir est la méthode par laquelle vagrant doit configurer ansible.

Vous trouverez ci-dessous la syntaxe du provisionné local.

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

Il existe trois modes différents.

  1. par défaut – Installation d'ansible à l'aide du gestionnaire de packages basé sur la distribution.
  2. PIP – Installation d'ansible à l'aide de PIP.
  3. Arguments PIP – Installation à l'aide d'arguments PIP.

Par défaut, le vagabond essaiera d'installer à partir du référentiel. Si vous souhaitez installer via PIP vous pouvez définir la syntaxe comme ci-dessous. Lorsque vous utilisez PIP, le vagabond vérifiera d'abord si PIP est disponible sur la machine invitée et il essaiera de l'installer. Une fois PIP disponible, il utilisera PIP pour télécharger et installer un package ansible à partir de PyPI.

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

Voilà pour cet article. Dans le prochain article, nous verrons comment créer des boîtes personnalisées dans vagrant.


Linux
  1. Renouveler mon frisson au travail avec Ansible

  2. Comment configurer les paramètres réseau avec les rôles système Ansible

  3. Comment installer des packages logiciels avec un playbook Ansible

  4. Comment définir des variables d'environnement Linux avec Ansible

  5. Comment Kerberos fonctionne-t-il avec SSH ?

Comment utiliser Vagrant avec le fournisseur KVM Libvirt

Comment travailler avec Nano Editor sous Linux

Comment travailler avec File and Shell Provisioner dans Vagrant

Comment travailler avec l'instruction Case dans les scripts Bash

Comment cloner un référentiel Git avec Ansible

Comment installer et configurer WordPress avec Ansible