skillup

技術ブログ

サーバー・ネットワーク

ansible複数アイテム登録&ファイル分割&ログ

投稿日:

引き続きansibleに関して。

設定ファイルの書き換え

サーバーのインストールとなるとソフトウェアのインストールだけではなくて、設定ファイルの書き換えなども合わせてやることが一般的です。

以下の方法がわかりやすいでしょう。/etc/php.iniのdate_timezoneを’Asia/Tokyo’に変える設定を書こうと思います。

ini_file

  • dest :対象ファイル
  • section:置換対象セクション名
  • option:置換対象行
  • value:置換後の値
  • backup バックアップをとるかいなか(yes or no)でタイムスタンプの付いたバックアップファイルが作れます。

さらなる細かい設定は公式を

http://docs.ansible.com/ansible/ini_file_module.html

設定ファイル形式の場合にはこれがベターでしょう。

ちなみに拡張は別に.iniである必要はありません。

またsectionやoptionが元々ファイルにない場合は新たに作られます。

lineinfile

  • dest :対象ファイル
  • regexp:置換対象正規表現
  • line:置換
  • backup ini_fileに同じ

こちらは設定ファイルではなく、通常のテキストファイルなら正規表現を使っての置換ができます。置換だけではなく、特定行のあとに追加するなどもできます。

http://docs.ansible.com/ansible/lineinfile_module.html

似た表現でreplaceというものもあります。これは複数行の置換が可能です。

他に正規表現などをダイレクトに使うなどもありましたが、簡便なものに絞りました。

他参考リンク

http://tanksuzuki.com/post/ansible-config-control/
http://qiita.com/cognitom/items/57de72b739642041dcd5

複数の値の置換

パッケージのインストール、ファイルの置換ともに複数の変数をまとめてインストールしたいときなどあると思います。その時は下記のように書きます。

PHP系のソフトウェアを一気にインストール

{{item}}部分が変数でwith_itemsで配列を定義しています。

設定ファイルの複数の置換

こちらはハッシュのリストが置換対象となっているパターンです。設定ファイルはこの形式でしょう。

ファイル分割

管理するタスクが増えてくると1つのファイルでずらずらと書くことになり可読性、保守性が低下するでしょう。

その場合、プログラムのように複数ファイルに分割するのが一般的でしょう。

例えばmain.ymlというファイルが親でここは呼び出すだけにし、実際の処理はrecipe1.yml  receipe2.ymlというファイルに処理が書かれているとします。

この場合、recipe1,2はいままでと同じですが、main.ymlには下記のように書いておけばrecipe1,2を呼び出せます。

実行時はansible-playbook main.yml でOKです。

ログ修正

ちなみにansibleの実行結果を見たい場合は設定ファイルでログを修正すればOKです。

を追加orコメントアウトをはずす。

これで実行結果が記録されるようになります。

http://cloudfront.rutake.com/techmemo/2016/05/24/ansible-%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AE%E3%83%AD%E3%82%B0%E3%82%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E6%9B%B8%E3%81%8D%E5%87%BA%E3%81%99/

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

執筆者:


comment

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

関連記事

no image

サーバーの過負荷の発見 理論編

会社のテストサーバー(このブログが入っているサーバー)なんかが重くなってくると、再起動したりしているわけなんですが、CPUやメモリの使用率をみたり、といったシステマティックな運用はしてないです。 本来 …

no image

SSHの鍵認証に関して

SSHの鍵認証についてやり方自体は流れ作業でできていましたが、根本的なところが理解していないので復習。 まずは通常の流れを。 1 クライアント(自分のPC)で公開鍵・秘密鍵を作成。ssh-keygen …

no image

基本的なSSHの設定

一般的なサーバーのSSH対策に関して。素のままでいるとあっという間に不正アクセスの餌食になります。 ちなみにサーバーとしてSSHの設定をいじる場合は/etc/ssh/sshd_confになります。ss …

no image

ログ抽出コマンド特集 その3 データの収集や抽出にかかわるコマンド群(sort ,tr,cut)

サーバーの負荷を見る場合、unixコマンドでログを抽出できたりすると何かと便利です。 いままでも下記の記事でこれらの出力を行いました。 ログ抽出コマンド特集 その1 cat+grep+sort 私が本 …

no image

Linuxコマンドでのテキスト整形 CSV系の処理など

以前、対テキストファイル系のLinuxコマンドの使い方を紹介しましたが、その関連エントリーを。 今回やるのはCSV系の処理ですね。 id name age 1  suzuki 35 2  tanaka …