#blognavi
最近流行ってるのでAnsibleを入れてみる。
環境は仮想環境をVagrantで用意する。OSはubuntu14。
チュートリアルを参考にする。

1. 仮想環境の用意


vagrantで2つの仮想マシンを用意する。それぞれ、node1, node2とする。
Vagrantfileはこんな感じ。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 # All Vagrant configuration is done here. The most common configuration
 # options are documented and commented below. For a complete reference,
 # please see the online documentation at vagrantup.com.

 # Every Vagrant virtual environment requires a box to build off of.
 config.vm.box = "ubuntu"

 config.vm.define :node1 do |node1|
   node1.vm.hostname = "node1"
   node1.vm.network :forwarded_port, guest: 22, host: 2001, id: "ssh"
   node1.vm.network :private_network, ip: "192.168.33.11", virtualbox_intnet: "intnet"
 end

 config.vm.define :node2 do |node2|
   node2.vm.hostname = "node2"
   node2.vm.network :forwarded_port, guest: 22, host: 2002, id: "ssh"
   node2.vm.network :private_network, ip: "192.168.33.12", virtualbox_intnet: "intnet"
 end
end

それぞれ起動する。
host$ vagrant up node1
host$ vagrant up node2


2. ansibleのインストール


host$ vagrant ssh node1
vagrant@node1:~$ sudo apt-get update
vagrant@node1:~$ sudo apt-get install python-pip
vagrant@node1:~$ sudo apt-get install libpython-dev
vagrant@node1:~$ sudo apt-get install python-markupsafe
vagrant@node1:~$ sudo apt-get install libffi-dev
vagrant@node1:~$ sudo apt-get install libssl-dev
vagrant@node1:~$ sudo pip install ansible
vagrant@node1:~$ ansible --version
 ansible 2.0.2.0
 config file = 
 configured module search path = Default w/o overrides

インストール完了

3. ssh鍵の生成、コピー、ログイン確認


ansibleはパスワード認証が苦手な模様なので、予めパスワードなしで
ログインできるようにしておく。

vagrant@node1:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):  <- そのままエンター
Enter passphrase (empty for no passphrase):              <- パスワードを入力
Enter same passphrase again:                     <- もう一度
Your identification has been saved in /home/vagrant/.ssh/id_rsa.
Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
The key fingerprint is:
79:6b:b1:87:69:03:51:6b:5f:ba:a3:fa:29:23:33:71 vagrant@node1
The key's randomart image is:
+--[ RSA 2048]----+
|          .      |
|         . .     |
|        . o   .  |
|         + . o   |
|        S o o    |
|      . Eo * .   |
|       o  O +    |
|      + oo = .   |
|       . =+      |
+-----------------+

これで、~/.ssh/id_rsa、id_rsa_pubが生成されるので、公開鍵をnode2の
.ssh/authorized_keysへ追加する。
vagrant@node2:~$ cat .ssh/authorized_keys 
ssh-rsa  AAAAB3NzaC1yc2(略)dK8jlqm8tehUc9c9WhQ== vagrant insecure public key
ssh-rsa  AAAB3NzaC1yc2EA(略)AAAD/eEaczBrEpca+2cLRLG7f vagrant@node1   <- 追加した

さらに、node1側でSSH agentに登録する。
vagrant@node1:~$ ssh-agent bash
vagrant@node1:~$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/vagrant/.ssh/id_rsa:   <- 生成したキーのパスワード入力
Identity added: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

この状態でSSH接続を行うと、パスワードなしでログインできる。
vagrant@node1:~$ ssh 192.168.33.12
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)

* Documentation:  https://help.ubuntu.com/
Last login: Thu May  5 15:14:33 2016 from 192.168.33.11
vagrant@node2:~$ 

切断する。
vagrant@node2:~$ exit
logout
Connection to 192.168.33.12 closed.

4. ping確認


ここからはチュートリアルの通り。
vagrant@node1:~$ echo 192.168.33.12 > hosts
vagrant@node1:~$ ansible -i hosts 192.168.33.12 -m ping
192.168.33.12 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

無事、pingが通る。


node1,node2間では通常にSSHが接続できているので、明らかにansibleの問題だが、
エージェントの設定をするまでに時間がかかった。(ask-passオプションだと、ダメだった・・・)

5. パッケージのインストール

ubuntuなのでaptを使ってインストールする。
vagrant@node1:~$ ansible -i hosts 192.168.33.12 -m apt -s -a name=vim
192.168.33.12 | SUCCESS => {
   "cache_update_time": 0, 
   "cache_updated": false, 
   "changed": true, 
   "stderr": "", 
   "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information.
 ・
 ・

メッセージがいっぱい出力される。

node2側で確認するとインストールされている。
vagrant@node2:~$ which vim
/usr/bin/vim

無事インストールされた。





カテゴリ: [日記] - &trackback() - 2016年05月05日 23:40:39
名前: コメント:
#blognavi
最終更新:2016年05月06日 17:33