VagrantとAnsibleでCentOSの環境を用意してみる

Vagrantを使ってCentOS6.5の環境を構築し、ゲストOS側でAnsibleを実行してインストールしてみる。


VirtualBoxVagrantは既にインストール済みの状態です。
Macの環境で試していますが、Windowsでも似たような感じかと思います。

【参考】
Windows - AnsibleをゲストOSに押し込んでVagrant環境構築する - Qiita
http://qiita.com/progre/items/ccc2d8c2ec7ae8a4ed61

WindowsVagrantとAnsibleを使ってみた話 | もやし工房
http://www.moyashi-koubou.com/blog/vagrant_ansible_windows/

CentOSのインストール

Vagrantfileを作成し、

mac$ vi Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "chef/centos-6.5"
  config.vm.network "private_network", ip: "192.168.33.10"
end

CentOSを起動する。

mac$ vagrant up

Ansibleのインストール

CentOSにログインし、

mac$ vagrant ssh

Ansibleをインストールする。

$ sudo rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum install -y ansible

あと、libselinux-pythonもインストールしておく。

$ sudo yum install -y libselinux-python
selinuxがdisabledで無い場合、「libselinux-python」がインストールされていないと、
ansible実行時に下記のエラーが出る。

msg: Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!

Ansibleを試す

今回は試しにslコマンドをインストールしてみる。

playbookを作成し、

$ vi playbook.yml
---
- hosts: 127.0.0.1
  connection: local
  sudo: yes
  tasks:
    - name: slのインストール
      yum: name=sl

実行する。

$ ansible-playbook playbook.yml
文字コードUTF-8じゃないと
ERROR: Could not parse YAML. Check over /vagrant/playbook.yml again.
のエラーが出るので注意。

slコマンドがインストールされているのが確認できる。

$ sl