GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So arbeiten Sie mit Ansible Provisioner in Vagrant

Im vorherigen Artikel haben wir gesehen, was Provisioner ist und wie man mit Shell und File Provisioner arbeitet. In diesem Artikel werden wir sehen, wie man einen Ansible-Bereitsteller verwendet, um den Vagrant-Workflow zu automatisieren. Hier erstellen wir ein Playbook und verwenden Sie das Playbook, um Ansible Play gegen die vagabundierende Gastmaschine auszuführen.

Das Folgende ist der Ausschnitt aus dem Playbook Ich werde in diesem Artikel zur Demonstration verwenden. Es gibt nur ein Spiel und es kümmert sich um die Installation von Paketen mit apt Modul. Erstellen Sie eine neue .yml oder .yaml Datei und kopieren Sie das Snippet.

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

Arbeiten mit Ansible Remote Provisioner in Vagrant

Zum Ausführen von Playbooks , sollte ansible in der virtuellen Gastmaschine „vagrant“ installiert werden. Sie können eine Shell verwenden Provisioner zum Installieren von Ansible. Beziehen Sie sich auf den folgenden Code, es gibt einen Abschnitt für Shell-Provisioner und ich verwende eine Reihe von apt Paket-Manager-Befehle, um ein Ansible-Repository einzurichten und zu installieren.

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

Erstellen Sie ein neues Projektverzeichnis und führen Sie vagrant init aus Befehl.

$ mkdir ansible_provisioner 
$ cd ansible_provisioner
$ vagrant init -m

Jetzt können Sie je nach Status Ihrer virtuellen Maschine (läuft oder angehalten) den folgenden Befehl ausführen. Wenn dies das erste Mal ist, dann vagrant up wird die Arbeit erledigen.

$ 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

Während des Startvorgangs der virtuellen Maschine können Sie anhand der Protokolle sehen, dass ansible installiert wird.

Jetzt können Sie das Playbook verwenden . Ich werde dieselbe Konfigurationsdatei ändern und einen ansiblen Remote-Provisioner hinzufügen. Unten ist die Syntax. Der Playbook-Pfad (absolut oder relativ) muss wie unten gezeigt angegeben werden.

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"

Aus der folgenden Ausgabe können Sie sehen, dass mein Spiel erfolgreich ausgeführt wurde.

Verwendung von Ansible Local Provisioner in Vagrant

Dies ist eine weitere Methode zum Einrichten von Ansible in Ihrer vagabundierenden Gast-VM. Wenn Sie einen lokalen Anbieter verwenden, kümmert sich vagrant automatisch um die Installation des Ansible für Sie. Die einzige Eingabe, die Sie machen müssen, ist, durch welche Methode Vagrant Ansible einrichten soll.

Unten ist die Syntax für die lokal bereitgestellte.

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

Es gibt drei verschiedene Modi.

  1. Standard – Ansible mit dem Distributions-basierten Paketmanager installieren.
  2. PIP – Ansible mit PIP installieren.
  3. PIP-Argumente – Installation mit PIP-Argumenten.

Standardmäßig versucht der Vagrant, aus dem Repository zu installieren. Wenn Sie über PIP installieren möchten Sie können die Syntax wie folgt einstellen. Wenn Sie PIP verwenden, prüft der Vagrant zuerst, ob PIP auf dem Gastcomputer verfügbar ist, und versucht, es zu installieren. Sobald PIP verfügbar ist, wird es PIP verwenden, um ein Ansible-Paket von PyPI herunterzuladen und zu installieren.

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

Das war es für diesen Artikel. Im nächsten Artikel werden wir sehen, wie man benutzerdefinierte Boxen in vagrant erstellt.


Linux
  1. So konfigurieren Sie Nginx für die Arbeit mit PHP über PHP-FPM

  2. Ich erneuere meinen Nervenkitzel bei der Arbeit mit Ansible

  3. So konfigurieren Sie Netzwerkeinstellungen mit Ansible-Systemrollen

  4. So arbeiten Sie mit dem SFTP-Client unter Linux – 10 sftp-Befehle

  5. Wie bringt man Vim dazu, richtig mit Tmux zu arbeiten?

So verwenden Sie Vagrant mit dem Libvirt KVM-Anbieter

Arbeiten mit Nano Editor unter Linux

So arbeiten Sie mit File and Shell Provisioner in Vagrant

So arbeiten Sie mit Case-Anweisungen in Bash-Skripten

So klonen Sie ein Git-Repository mit Ansible

So installieren und konfigurieren Sie WordPress mit Ansible