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.
- par défaut – Installation d'ansible à l'aide du gestionnaire de packages basé sur la distribution.
- PIP – Installation d'ansible à l'aide de PIP.
- 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.