Ansible勉強用の環境を構築する
Ansibleを使う機会がありそうだったので、ちょっと勉強してみる。
まずは、自分のPCでAnsibleを試すための環境を構築してみた。
環境
- MacBook Air (2013 Mid)
- VirtualBox 5.2.10
- Vagrant 2.0.4
VagrantでCentOSを2つを起動して、CentOS(以下「Server1」と呼ぶ)からCentOS(以下「Server2」と呼ぶ)に対して、Ansibleを実行できるようにする。
VirtualBoxをインストール
公式のインストーラを使った。
Vagrantをインストール
これも公式のインストーラを使った。
VagrantでCentOSを起動する
まずは、適当な作業ディレクトリを作成しておいて、 コンソールから以下のコマンドを実行して、Vagrantfileを作成する。
vagrant init
Vagrantfileが作成されるので、そのファイルの内容を編集して、CentOSが2つ起動できるようにする。
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "bento/centos-7.2" config.vm.define "server1" do |server| server.vm.network "private_network", ip: "192.168.33.10" end config.vm.define "server2" do |server| server.vm.network "private_network", ip: "192.168.33.11" end end
編集したら、以下のコマンドを実行して起動してみる。
vagrant up
ちゃんと起動しているかvagrant status
を実行して確認してみる。
$ vagrant status Current machine states: server1 running (virtualbox) server2 running (virtualbox)
Server1にAnsible実行環境を構築
Pythonのインストール
Ansibleを実行するための色々をインストールする。
今回はPython3.6をインストールしてみる。
Python 3 Support — Ansible Documentation
IUS Community Projectのリポジトリを追加。
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Pythonとその他パッケージをインストール。
sudo yum install -y python36u python36u-devel python36u-libs
python3.6
って入力するのが面倒なので、シンボリックリンクを作成。
sudo ln -s /usr/bin/python3.6 /usr/bin/python3
試しにPythonのバージョンを確認してみる。
[vagrant@localhost ~]$ python3 --version Python 3.6.5
Ansibleのインストール
今回はAnsibleをpipからインストールするため、まずはpipをインストール。
sudo yum install -y python36u-pip
こっちもシンボリックリンクを作成しておく。
sudo ln -s /usr/bin/pip3.6 /usr/bin/pip3
Ansibleをインストールする。
sudo pip3 install ansible
これでインストールは完了。
Ansibleを動かしてみる
hostsの作成
まずはhostsファイルを作成して、Ansible実行先のサーバ(今回はserver2に対して実行する)に関する内容を入力する。
vagrant-machine ansible_host=192.168.33.11 ansible_port=22 ansible_user=vagrant ansible_ssh_private_key_file=/home/vagrant/private_key
hostsに記述したansible_ssh_private_key_file
で指定した場所に、server2のprivate_keyファイルを格納する。
private_keyはVagrantfileを作成したフォルダの下に格納されている。
.vagrant/machines/server2/virtualbox/private_key
このファイルをscpコマンドやツールで、server1に送る。
ansibleコマンドを実行
hostsが格納されているディレクトリでansible all -i hosts -m ping
を実行して、うまくいけば以下のように表示される。
vagrant-machine | SUCCESS => { "changed": false, "ping": "pong" }
これで、Ansibleをとりあえず動かす環境が作ることができた。