前回の記事では、プロビジョナーとは何か、シェルおよびファイルプロビジョナーの操作方法について説明しました。この記事では、ansibleプロビジョナーを使用してvagrantワークフローを自動化する方法を説明します。ここでは、プレイブックを作成します プレイブックを使用して、放浪者のゲストマシンに対してAnsibleプレイを実行します。
以下は、プレイブックの抜粋です。 この記事ではデモンストレーションに使用します。 プレイは1つだけです aptを使用してパッケージをインストールします モジュール。新しい.yml
を作成します または.yaml
スニペットをファイルしてコピーします。
--- - hosts: all become: yes tasks: - name: Install 4 packages apt: pkg: - net-tools - neofetch - cowsay - htop update_cache: yes
VagrantでAnsibleリモートプロビジョナーを操作する方法
プレイブックを実行するには 、ansibleはvagrantゲスト仮想マシンにインストールする必要があります。 シェルを使用できます ansibleをインストールするプロビジョナー。以下のコードを参照してください。シェルプロビジョナーのセクションがあり、一連の aptを使用しています。 パッケージマネージャーのコマンドを使用して、ansibleリポジトリをセットアップしてインストールします。
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
新しいプロジェクトディレクトリを作成し、 vagrant initを実行します コマンド。
$ mkdir ansible_provisioner $ cd ansible_provisioner $ vagrant init -m
これで、仮想マシンの状態(実行中または停止中)に応じて、次のコマンドを実行できます。初めての場合は、放浪 仕事をします。
$ 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
仮想マシンの起動プロセス中に、ansibleがインストールされていることをログから確認できます。

これで、プレイブックを使用できます。 。同じ構成ファイルを変更し、ansibleのリモートプロビジョナーを追加します。以下は構文です。以下に示すように提供されるプレイブックパス(絶対または相対)。
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"
以下の出力から、私のプレイが正常に実行されたことがわかります。

VagrantでAnsibleローカルプロビジョナーを使用する方法
これは、vagrantゲストVMでansibleを設定するもう1つの方法です。ローカルのプロビジョナーを使用すると、vagrantが自動的にansibleをインストールします。提供する必要がある唯一の入力は、vagrantがansibleを設定する方法です。
以下は、ローカルでプロビジョニングされた構文です。
config.vm.provision "ansible_local" do |ans| ans.playbook = "my_playbook.yml"
3つの異なるモードがあります。
- デフォルト –ディストリビューションベースのパッケージマネージャーを使用してansibleをインストールします。
- PIP –PIPを使用したansibleのインストール。
- PIP引数 –PIP引数を使用してインストールします。
デフォルトでは、vagrantはリポジトリからのインストールを試みます。 PIP経由でインストールする場合 構文は次のように設定できます。 PIPを使用する場合、vagrantは最初にゲストマシンでPIPが使用可能かどうかを確認し、インストールを試みます。 PIPが利用可能になると、PIPを使用してPyPIからansibleパッケージをダウンロードしてインストールします。
config.vm.provision "ansible_local" do |ans| ans.playbook = "my_playbook.yml" ans.install_mode = "pip"
この記事は以上です。次の記事では、vagrantでカスタムボックスを作成する方法を説明します。