Ansibleのインストール
Ansibleインストールについて
研究でAnsibleを使うことになりインストールしたところいくつか躓いたので、対処方法を記述する。
Ansibleで管理端末のシャットダウンを行うこととする。
実験環境
- UbuntuServer 16.04 LTS
- SSH ## インストール サーバ側 AnsibleとPython2.7をインストールする。
$ sudo apt-get install ansible
$ sudo apt-get install python2.7
クライアント側
Python Simplejsonをインストールする。
$ sudo apt-get install python-simplejson
これで必要なものはすべてインストールしたことになる。
クライアントの設定
Ansibleでサーバからクライアントに接続するためには、公開鍵認証が必要になる。
しかし、わざわざお金をかけて認証局から証明書を発行してもらわなくても、自己証明書で十分なので自己証明書を用いて行う。
ただし、公開鍵で認証するのではなく秘密鍵を用いて認証を行う
今回はパスワードを設定を行わない。
必ず秘密鍵をサーバにコピーしておくこと
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/karuma/.ssh/id_rsa): ← Enterキーを押します
Created directory '/home/karuma/.ssh'. ← ~/.ssh がない場合、ディレクトリを作成します
Enter passphrase (empty for no passphrase): ← パスフレーズを入力します(今回は入力しない)
Enter same passphrase again: ← もう一度パスフレーズを入力します(今回は入力しない)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/id_rsa*
$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys
サーバの設定
- ./ssh/config
- /etc/ansible/hosts (任意の階層でよい)
- /etc/ansible/test.yml (任意の階層でよい)
用意しなければいけないのは上記の3つである。
また、例を示すが自身の環境に合わせて適宜変えること。
Host IPアドレス
HostName IPアドレス
User test
Port 22
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "秘密鍵の絶対座標"
IdentitiesOnly yes
LogLevel FATAL
[all]
(IPAddress) ansbile_ssh_user=(UserName) ansible_ssh_private_key_file=(秘密鍵の絶対座標)
[all:vars]
ansible_sudo_pass=(sudoパスワード)
※Qiitaの仕様上"."を付けないとファイル名を指定できない為hostsの後に"."がついています。
(IPAddress) = 127.0.0.1
のように置き換えること
[test:vars]とすることで[test]に記述したすべての端末で同じ設定のものを指定することができる。
この例の場合はsudoパスワードを指定している
---
- hosts:all
always_run:yes
tasks:
- name: shutdown
Command: shutdown -h now
動作確認
Ansibleから管理する端末に向けて疎通確認ができることを確認する。
$ ansible all -m ping
このような表示になれば成功である。
次にシャットダウンを行ってみる。
$ ansible-playbook /etc/ansible/shutdown.yml --check -s
今回動作チェックを行うために"--check"を付けたが実際に使用する場合には必要ない。
また、この画像ではエラーを入れいるがこの原因は今後調べていこうと考えている。
しかし、これで正常に管理端末をシャットダウンすることが確認できている。
このエラーはAnsible側でSSH接続している最中に管理端末がシャットダウンすることでコネクションが切れることが原因であることが分かった。
なので、以下の内容に書き換えることで正常にAnsibleを終了することができる。
コマンドを"now"より"1"にしたことで1分後にシャットダウンを行うようになる。
---
- hosts:all
always_run:yes
tasks:
- name: shutdown
Command: shutdown -h 1
Author And Source
この問題について(Ansibleのインストール), 我々は、より多くの情報をここで見つけました https://qiita.com/Akasaki/items/8d1bcf16c6d96edf857e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .