skillup

技術ブログ

サーバー・ネットワーク

ansible rolesなど

投稿日:

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ごとにもつけることができます。

http://qiita.com/kiarina/items/affa0b68a710eeeda75b

小ネタ

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

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

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

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

執筆者:


comment

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

関連記事

no image

ansible host指定,変数の外だし,ユーザー追加

Ansibleにてhostユーザーやユーザーの追加などす。 Contents1 ホストの指定2 ユーザーの追加2.1 変数を別ファイルに2.2 パスワードのハッシュ化2.3 パスワードなしでsudo2 …

no image

サーバー構築(ゼロからの準備編)

VPSのサーバーを入れるときにほぼ確実にインストールするパッケージなどを。 Contents0.1 update&言語表記0.2 基本ライブラリ0.3 sudoユーザーの設定0.4 apache0.5 …

no image

ansible template,tag,yeditなど

Contents1 template2 tags3 yedit template 今まで設定ファイルを使うときは基本ini_fileを使って置換したり、ローカルでファイルを作ってcopyしておりました …

no image

OSI参照モデル イーサネットとMACアドレス

OSI参照モデルのレイヤー1とレイヤー2で必要不可欠な規格がイーサネットです。 有線ネットワークであればほぼこの規格を採用していると思って間違いないでしょう。 MACアドレスでコンピューターを識別する …

no image

カレントディレクトリ以下のすべてのCR+LFをLFに

windows環境からファイルをアップしていると文字コードがバラバラだったりすることが多々あります。 まあ何がめんどくさいかというと差分がチェックできない。これが最悪です。 gitのdiffコマンドの …