この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ご機嫌いかがでしょうか、豊崎です。
先日のDevelopers.IOで「Ansibleハンズオン on AWS」のお手伝い(ティーチング アシスタント)をさせていただきました。 ご参加いただいた方のご質問から、実際にansibleを使ってみて発生するつまづきポイントをいくつかご紹介させていただきます。
ハンズオン講師は弊社渡辺が担当させていただきました。 資料につきましては以下からご参照ください。
ディレクトリ構成とファイルの配置場所について
今回実施させていたいただいたハンズオンでは、Stepごとにファイル及びフォルダを作成していきます。 そして最終的な作業ティレクトリ内の構成は以下のようになります。 作成したファイルをどのディレクトリに配置するのか?について、ご質問いただくことが多かったです。
これからハンズオン資料を参考に手を動かしてみる方は以下を参考にしていただければと思います。
$ tree .
.
├── ansible.cfg
├── group_vars
│ └── wordpress-servers.yml
├── hosts
├── roles
│ ├── apache24
│ │ ├── handlers
│ │ │ └── main.yml
│ │ └── tasks
│ │ └── main.yml
│ ├── common
│ │ └── tasks
│ │ └── main.yml
│ ├── mysql56-server
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ └── my.cnf
│ └── wordpress
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ └── wordpress.conf
├── ssh_config
└── wordpress.yml
hosts = /etc/hosts?
ハンズオン資料にあるhostsというファイルは/etc/hostsのことでしょうか?というご質問をいただきました。 ここで作成するhostsといファイルはinventoryファイルであり、/etc/hotsとは異なるファイルになります。
具体的にはAnsibleでホストとホストのグループを定義するファイルになります。ホストグループを使えば複数のサーバを対象として、Ansibleを流すことができます。
本ハンズオンで記載する内容は以下となります。
[wordpress-servers]
WordPress
タスクが権限不足でエラー
playbookの実行中にエラーが発生しているとご相談をいただきました。 タスクが権限不足でエラーになるという内容でした。
ansible.cfgファイルの中に「privilege_escalation」という項目があり、ansible接続後にrootユーザで実行する設定があります。こちらの設定にタイプミスがあり、修正をしたところ正常に実行されました。
[defaults]
inventory = hosts
retry_files_enabled = False
[privilege_escalation]
become = True
[ssh_connection]
control_path = %(directory)s/%%h-%%r
ssh_args = -o ControlPersist=15m -F ssh_config -q
scp_if_ssh = True
新しいタスクを複数実行してエラーが発生
こちらは特定のエラーに対してということではないのですが、 複数の新しいタスクを一度に実行した際に処理でエラーが発生し、どこでエラーが発生しているかの切り分けに時間がかかるという事象がありました。
タスクを追加するときは、1つ、または2つ程度追加しては実行すると、いったように小さい単位ごとに実行する方が問題が発生した際に問題解決の時間が少なくてすみますので、是非お試しください。
さいごに
以上簡単ではありましたが、つまづきポイントをご紹介させていただきました。 ハンズオンでは悩んだら、自分で頑張らずにすぐに質問をしていただくようにお伝えしていました。 ひとりだと頑張って進む必要がありますが、限られた時間でのハンズオンではなるべく悩まずに質問してすぐに次にすすむ方が学習効率が上がります。
冒頭で紹介させていただいたブログから当日のハンズオン資料が参照できますので、 ansibleを利用したことがない方は是非一度利用してみてください。構築が捗ります。
謝辞
お忙しい中ご参加下さいました、皆様あらためてありがとうございました。