不動の鳥の勉強記録

時間があるときに勉強したことをメモします。

VirtualBoxでAnsible環境を整える-Ansible環境実験編

前回投稿してから間が空いてしまいましたが最後のAnsibleの実験に移りたいと思います。
ここではAnsible環境の構築から、Ansibleを使ってwgetのインストールまで出来たらいいなと思っています。

■記事の最終目標

最終的なゴールはAnsibleの実験がしたいので3つゲストOSを構築していきたいと思います。記事の構成としては1つの記事だと長くなりそうなので下記構成で作っていきたいと思います。

■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 historyyumのインストール履歴を見てみたのですが、どうやらansibleでインストールされるとhistoryには出てこないようでした。

■まとめ

rootですべて操作するのはよろしくないのでアカウントの制御はどこかで実施が必要そうです。参考に記載したサイトをもとに権限回りなど整理したいと思います。最後はやっつけ感満載なので、必要になった時に再度勉強していきたいと思います。

おわりに

記事を書きながら操作しているので、後続の過程でうまくいかなかった時は内容を修正することがありますのでご容赦ください。また、内容に誤りなどありましたらコメントにてご指摘お願いします。

■参考

これらの記事がとても参考になりました。製作者の皆様に感謝です。