ksaitoの日記

日々試したことの覚え書き

ansible

ansibleで一対多の設定をする

設定する対象がデータベースやアプリケーションサーバの場合、「一つのインスタンスに複数のアプリケーションをデプロイ」したり、「一つのアプリケーションに複数のデータソースを追加」といった一対多の設定はよくあります。 ansibleで設定を行う場合に、 …

ansibleのコアモジュール

Developing Modulesを参考にansibleのcoreモジュールを弄ってみました。 環境準備 オフシャルドキュメントのチュートリアルにテスト方法とかんたんなモジュールの作り方が書かれています。 下記でテスト環境を準備します。 $ git clone git://github.com/ans…

ansibleモジュールの引数と戻り値の処理

ansibleモジュールは、pythonで書くと引数と戻り値に便利なヘルパがあり便利です。 AnsibleModuleのargument_specで引数を定義します。引数が必須かオプションかを定義できるようです。 戻り値は、exit_jsonで返します。最後の2行は、python初心者なのでお…

ansible Moduleの作り方2

オフシャルドキュメントを参考にテスト方法と引数の取り方を試しました。 テスト オフシャルドキュメントのチュートリアルにテスト方法とかんたんなモジュールの作り方が書かれています。 下記でテスト環境を準備します。 $ git clone git://github.com/ansi…

handlersのデバッグ

ansibleのhandlerは便利なのですが、想定通り動かない場合にデバッグが難しいです。 サンプル handlersは、notifyで通知された名前のhandlerを実行します。複数のタスクを実行する方法が分かりません... handlerでシェルを起動する際、結果はどうあれ、出力…

shellモジュールとdebugモジュール

shellモジュールの実行結果をdebugモジュールで表示してみます。 ソース 使ったソースは下記の通りです。 $ cat site.yml --- - hosts: appservers tasks: - debug: - shell: ls register: result changed_when: False - debug: var="result.rc" - debug: va…

httpd.confへのProxyPass設定をansibleで自動化

ansibleでProxyPassの設定をするサンプルです。 ソース lineinfileモジュールを使います。 createを指定することで、ファイルがない場合は作成します。 regexpでポートの部分を指定することで、ポート番号変更の際にエントリが増えてしまうことを防ぎます。 …

サーバに複数インスタンスを設定する

サーバ一台にミドルウェアをインストールしてインスタンスを複数作る構成を設定するサンプルです。 ディレクトリ構成 ディレクトリ構成は、下記です。 $ tree . ├── host_vars │ ├── appserv1 │ └── appserv2 ├── hosts ├── roles │ └── app │ └── tasks │ ├…

ansible Moduleの作り方

ansibleのModuleでHello, Worldを作ってみました。 Moduleの開発は、Developing Modulesにドキュメントやサンプルがあります。 最小限必要なことは少ないので、Hello, Worldは、15分ほどで作成できます。 準備 Ubuntu 14.04 LTSにansibleがインストールされ…