VirtualBoxでAnsible環境を整える-Ansible環境実験編
前回投稿してから間が空いてしまいましたが最後のAnsibleの実験に移りたいと思います。
ここではAnsible環境の構築から、Ansibleを使ってwgetのインストールまで出来たらいいなと思っています。
■記事の最終目標
最終的なゴールはAnsibleの実験がしたいので3つゲストOSを構築していきたいと思います。記事の構成としては1つの記事だと長くなりそうなので下記構成で作っていきたいと思います。
- 構成設計編
- VirtualBox操作編
- Ansible環境実験編
■Ansible環境の準備
ansibleはyumでインストールしていきます。
%yum install ansible %ansible --version
ansibleの2.4.2.0がインストールできました。
■ansibleコマンドのテスト
この段階で下記のようにansibleコマンドを実行してみるとエラーとなりました。
%ansible 10.0.2.5 -m ping
どうやらhostファイルにIPの記載がないとansibleは実行できないように制御されているようです。 そのため、直下にhostlistというファイル名で下記内容のファイルを作成します。
10.0.2.5 10.0.2.7
このインベントリファイルを読み込むようにして実行してみます。
%ansible -i hostlist 10.0.2.5 -m ping
またまたエラーとなりました。ansibleを実行するには対象サーバと認証を行う必要があるとのことで、ssh-key genとssh-copy-idを用いて認証するようにします。
%sshkey-gen %ssh-copy-id 10.0.2.5 %ssh-copy-id 10.0.2.7
これでやっとpingが成功するようになりました。
%ansible -i hostlist 10.0.2.5 -m ping
実行結果は下記のようになりました
10.0.2.5 | SUCCESS => { "changed": false, "ping": "pong" }
■Playbookの作成と実行
wgetのコマンドを各サーバにインストールするplaybookを下記に作成しました。
- hosts: all tasks: - name: wget command yum: name: wget
このplaybookを実行してみます。
%ansible-playbook -i hostlist wget.yml
エラーなく実行されたので、ターゲットのサーバにログインしwgetコマンドを確認してみます。
which wget
/bin/wgetに存在することが確認できました。またyum historyでyumのインストール履歴を見てみたのですが、どうやらansibleでインストールされるとhistoryには出てこないようでした。
■まとめ
rootですべて操作するのはよろしくないのでアカウントの制御はどこかで実施が必要そうです。参考に記載したサイトをもとに権限回りなど整理したいと思います。最後はやっつけ感満載なので、必要になった時に再度勉強していきたいと思います。
おわりに
記事を書きながら操作しているので、後続の過程でうまくいかなかった時は内容を修正することがありますのでご容赦ください。また、内容に誤りなどありましたらコメントにてご指摘お願いします。
■参考
これらの記事がとても参考になりました。製作者の皆様に感謝です。