vagrant provisionでPlaybookを実行
AnsibleはサーバにSSH接続をして記述されたPlaybookの通りに実行されますが、Vagrantで実行する場合は必ずしもSSH接続は必要ありません。
「vagrant provision」コマンドでもPlaybookを実行できるのです。
※ちなみに今回はVagrantの設定方法については省略します。すでに設定済みである想定で進めます。
まずはVagrantfileに以下を記述します。
config.vm.provision "ansible" do |ansible| ansible.playbook = "provision.yml" ansible.inventory_path = "hosts" ansible.limit = 'all' end
いわゆるprovisionコマンド実行時の動作を指定しているのですが、
指定したhosts(inventory_path)に対して、
playbook(provision.yml)の内容が実行されます。
hostsは以下になります。
[vagrant] 192.168.33.10
「[vagrant]」は任意の値で大丈夫です(ただしplaybookでこの値を使います)。
provision.ymlの記述
provision.ymlは以下になります。
--- - hosts: vagrant sudo: true user: vagrant tasks: - name: install packages zsh yum: name=zsh update_cache=yes
hostsは先ほどhostsファイルの方に設定した値です。
これはyumでzshのインストールを実行するという記述です。
いざ実行!
いざprovisionをしてみましょう。
vagrant provision ==> default: Running provisioner: ansible... default: Running ansible-playbook... [DEPRECATION WARNING]: Instead of sudo/sudo_user, use become/become_user and make sure become_method is 'sudo' (default). This feature will be removed in a future release. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg. PLAY [vagrants] **************************************************************** TASK [setup] ******************************************************************* ok: [192.168.33.10] TASK [install packages zsh] **************************************************** changed: [192.168.33.10] PLAY RECAP ********************************************************************* 192.168.33.10 : ok=2 changed=1 unreachable=0 failed=0
なにやら警告は出ていますが、とりあえずinstallは完成です。
VagrantでしかAnsibleを使わない場合はこれで簡単に実行できます。
- 出版社/メーカー: Amazon
- 発売日: 2017/04/06
- メディア: エレクトロニクス
- この商品を含むブログ (17件) を見る
新登場 Fire TV Stick 4K - Alexa対応音声認識リモコン付属
- 出版社/メーカー: Amazon
- 発売日: 2018/12/12
- メディア: エレクトロニクス
- この商品を含むブログを見る
Fire HD 10 タブレット (10インチHDディスプレイ) 64GB
- 出版社/メーカー: Amazon
- 発売日: 2017/10/11
- メディア: エレクトロニクス
- この商品を含むブログ (4件) を見る