LoginSignup
6
6

More than 5 years have passed since last update.

Ansible を書くときの自分ルール

Last updated at Posted at 2016-11-10

Ansible をそこそこ書いてきて、自分なりに気をつけているところ記載。自分ルールなので他の人からすると、違うところもあるかもしれないが元々の Ansible のコンセプトからも外れないように、公開した時に使う人からも使いやすい事を目標にしている。気づいたら適時追加する。

一言でいうと Simple is Best を貫く。生産性や他の人への伝わりやすさ使いやすさを重視する。

作るときに特に意識する事

  • できるだけ複雑に書かない・表現しない
  • "こだわり・エゴ"は極力排除する
    • エテしてこの部分にシツコイと複雑になるし、周りにも受け入れられない(ハズ)
  • 他の人でも直ぐに理解できるようイレギュラーな事、トリッキーな書き方はしない

Playbook中に「#」によるコメントは書かない

  • 説明は name により簡潔に書く

コマンド系モジュールを使う時は最後の砦

  • 既存モジュールで対応できるかを先に考える
    • 特に、sed , awk , sort なんかをrawshellモジュールでやろうとした場合、Ansible 側にさえリコメンドされることがある

タスクは1行書きを意識する

  • 引数が極端に多くない、列数が右に流れすぎないのであれば
  • 行数は少ないほうが全体が見やすいからスクロールしなくていい

ブール値や state は変数にしない

  • yes/no , true/false など
  • state の present/absent など

条件分岐をいたずらに増やさない

やろうと思えばできるところもあるが、あまりプログラムちっくになるのは避ける。職人芸はいらない。

jinja2 のフィルタ、多用は禁物

プレイブック中に複数使われだすと、なんだか見た目が汚く見えると同時になんか他にもっといいやり方があるんじゃないか?と思いたくなる。

変数について

Role 利用字に必要な変数は defaults/ 下に置き、原則的にユーザはここを編集させない(ロールそのものをカスタムするなどを除く)。ユーザが変数をカスタマイズする場合は vars/ 下で行うようにする。

べき等を意識する

ここを外すと用途がブレる。(無1回ポッキリのツールとして割り切り、恩恵半分をわかった上で使うならよいが・・・)

新しく追加された機能は積極的に使う

使うことで、更にコード行数を減らせる可能性が秘めているものがまれにある。

「今までは複数のタスクを数十行書いていたのが、ループ処理の拡張により数行になった」など

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6