ansible_localを使う

<目的>
Vagrantにて、ホストOSにAnsibleを入れずに、ゲストOSに入れたAnsibleでサーバを構成する

<前提>
Vagrantがインストール済み。

<Ansible設定ファイルの作成>
以下サンプル(YAML形式で記載する。)

- hosts: all
  become: yes
  user: vagrant
  tasks:
    - name: install the latest version of Apache
      yum:
        name=httpd 
        state=latest

hostsはとりあえずallとしておく。指定したい場合は別途hostsファイルの作成が必要。
下手にホスト名を記載してもうまく動かない。

<Vagrant設定ファイルの作成>
以下サンプル。

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-7.2"

  config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true

  config.vm.provision "shell", :path => "provision/install.sh"
  config.vm.provision "ansible_local" do |ansible|
      ansible.playbook = "provision/abe.yml"
      ansible.limit = 'all'
      ansible.verbose = true
      ansible.install = true
  end
end

provision/install.shは、AnsibleをyumでゲストOSにインストールするためのシェル。
適当に作っておけば良い。

<起動手順>
vagrant init bento/centos-7.2
vagrant plugin install vagrant-vbguest
vagrant up –provision
<動作確認>
vagrant ssh
とすればログインできる。
>sudo -s
とすればrootになれるので、あとはお好きなように何なりと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です