skillup

技術ブログ

サーバー・ネットワーク

ansible rolesなど

投稿日:2017年4月4日 更新日:

ansibleはある程度ファイルが肥大化してくると、管理するのが大変になります。

一般的にはプログラムのようにある程度のまとまりにわけてそれを読み込むということになります。

ある程度のまとまりのことをroleなどと呼ぶのが一般的です。

roles

例えばWordPressをインストールする場合には、Apache,PHP,WordPressのインストールが必要になります。

この1つ1つがrolesになります。

ansibleでこれらを管理する場合にはこれらのroleとそれらを呼び出すファイル自体が必要になります。

ファイル構成

rolesを使うには以下のようなファイル構成になっている必要があります。

ディレクトリ名やファイル名を間違えるとうごかないようですので、気を付けましょう。必ずrolesというファイルの下に置き、roles直下がroleの名称になります。その下に置く場合はtasks/main.ymlとなります。

実際にはtemplate以外にも変数を持たせたい場合にはvarsなどのディレクトリを作ることがあります。起動させるファイルがweb.ymlになります。

ちなみにvarsの下にmain.ymlと書いて変数を定義しておけばtask/main.ymlでは読み込む構文なしでその変数を扱えます。変数の定義方法などはいままでと一緒です。

web.yml

host情報やユーザーの情報などはここに書いておき、task内容だけをrolesに書いておくのが良いでしょう。

roles/apache/tasks/main.yml

実行するときにansible-playbook -i ホストファイル web.ymlでOKです。

なお、tagは各タスクにもつけられますが、roleごとにもつけることができます。

Ansibleでタグを使ってみる

小ネタ

作業用ユーザーなど比較的頻繁に変わる情報を入れるときは–extra-varsというオプションを使って実行時に入れることもできます。

例えば上記のような場合は、

と入力してあげればOKです。

-サーバー・ネットワーク
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

vagrant 複数ホストを起動

ansbileを使おうと思ったんですが、ansibleはホスト1→ホスト2という構成になっているため、2台のホストがないと使えません。 MACであればローカル環境からいけますし、Windowsでもcy …

no image

vueの環境構築に関して(モジュールバンドラの比較やvue-cliコマンドなど)

vueをビルドする場合、一般的にはwebpackなどのモジュールバンドラを使うかと思います。少しまとめて置こうかと思います。 Contents1 モジュールバンドラ1.1 webpack1.2 lar …

no image

SELinuxによるファイル制限+MySQLアクセスエラー

新サーバーにApacheをいれて特定のファイルにアクセスしようとしたところ、 以下のようなエラーがでてしまいました。

ただPermis …

no image

S3 commandPoolについて

S3のcommandPoolに関して。 S3にファイルをアップロード、ダウンロードするときに、1つ1つファイルをアップロード、ダウンロードすることが一般的かと思いますが、ファイル数が多くなるとなかなか …

no image

25番ポートブロッキング

ほぼ一般常識に属するようなことを知らなかったため、メモ。 先日メールアカウントを開設した際に自分の環境では送信できるのに、他人の環境では送信できないということが発生しました。 最初はoutlookの設 …