こんにちは、エンジニアのオオバです。

初期のVagrantfileにAnsibleのPlaybookをどう関連付けるのか調査。
※サーバーサイド系の知識はほぼゼロのぼくの夏休みの自由研究的なノリで勉強中です。

vagrant init centos/6  

とコマンドを打った後に生成される、Vagrantfileの中身はこんな感じになります。

Vagrant.configure("2") do |config|  
    config.vm.box = "centos/6"  
end  

ansibleのPlaybookを使う場合は、以下のように追記。

Vagrant.configure("2") do |config|  
    config.vm.box = "centos/6"  
    config.vm.provision 'ansible' do |ansible|  
        ansible.playbook = './playbook.yml'  
    end  
end  

※Vagrantfileと同階層にplaybook.ymlを配置

Playbookにタスクを記載する

---yaml  
- hosts: all
  sudo : yes  
  tasks:  
    - name: Nginxリポジトリ追加  
      yum:  
        name: https://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm  
    - name: Nginxをインストール  
      yum: name=nginx  

Vagrantを起動していない場合はvagrant up --provision、起動していた場合はvagrant provisionとするとPlaybookが読み込まれ、記述したタスクが順次実行されていきます。

vagrant upだけだとPlaybookは読み込まれないので注意

PLAY [all] *********************************************************************  

TASK [Gathering Facts] *********************************************************  
ok: [default]  

TASK [Nginxリポジトリ追加] ************************************************************  
changed: [default]  

TASK [Nginxをインストール] ************************************************************  
changed: [default]  

PLAY RECAP *********************************************************************  
default                    : ok=3    changed=2    unreachable=0    failed=0  

※このようなログが出力される

あとはタスクを追加していって自分の環境を簡単に構築できるようにするっていうことでしょうか。

近況memo

こちらの本を予約しました。2012年版から全て所持しているので、義務感的な感じですが、楽しみです。ぼくの大好きなFF15もメイキングも載ってそうなので舐めるように眺めようと思います。

ゲームグラフィックス 2017 CGWORLD特別編集版

オススメ記事