#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