この投稿は 限定共有に設定されています。 投稿者本人及びURLを知っているユーザーのみアクセスすることができます。

chef使いがAnsibleをちょっと触ってみた前後の感想など

  • 0
    コメント
全体てきな印象
  • 触る前:
    • RedhatがAnsibleを買収してから日本語情報も多いし本も多い。複雑でなく役割や環境が山ほどある案件でなければAnsibleで事足りるし簡単なほうが広まりやすい。
  • 触った後:
    • 天国みたいにググらびりてぃが最高でチュートリアルもマニュアルも見やすくchefでできたことは大体できるかも。学習コストについてはrubyのメソッド使い始める人がいない分マシなだけで大差なさげ。使い方によるかも。

ループ処理とか

・with_itemとかwith_でループができるのはわかったし条件分岐はwhenでいけるらしい

よくみたらflattenedとかrubyのメソッド風の名前のwith_があり使いこなすといいかも?

  - name: be sure common packages are installed
    yum: name={{ item }} state=installed
    with_items:
      - ntp
      - bind-utils
      - openssl
      - openssl-devel
      - unzip
      - jq
    tags: install-common-packages

http://qiita.com/yunano/items/4325935b8567572cc172
http://qiita.com/yushin/items/d65929a3c972bcf50887


attribute的な変数まわり

データの暗号化まわり


ohaiとfactまわり
  • 触る前:
    • ohaiで便利だったOS搭載メモリとかCPUに応じた設定とか自動設定できないかな。 chefでいうと↓
site-cookbooks/mysqld/templates/default/etc/my.cnf.erb
innodb_buffer_pool_size = <%= ("#{node[:memory][:total]}"[/\d+/].to_f * 1024 * 0.75 ).to_i %>
server-id = <%= node[:ipaddress].split(".").last %>

site-cookbooks/nginx/templates/default/defaultconfs/default_nginx.conf.erb
worker_processes <%= node[:cpu][:total] %>;

site-cookbooks/elasticsearch/templates/default/sysconfig_elasticsearch
ES_HEAP_SIZE=<%= ("#{node[:memory][:total]}"[/\d+/].to_f / 1024 / 1024 * 0.5 ).round %>g
  • ググったらCPUコア数に応じてmakeのjob数計算してる人はいた
make_jobs: "{{ansible_processor_count * ansible_processor_cores}}"

http://qiita.com/wellflat/items/15174d80e6b44de5c2cd


  • 触った後:
    • とりあえず四則演算はいけそう(小数点の数値を渡すと結果も小数点になるので注意)。四捨五入とかsplitした値の一部を使うとかはまだよくわからない。
innodb_buffer_pool_size = {{ ansible_memtotal_mb * 1024 * 768 }}

report-host = {{ ansible_default_ipv4.address }}

https://blog.1q77.com/2014/02/ansible-register/

  • もしできなかったらたぶんpythonでモジュール自作な気がする。

dry-run時に変化を前提とする処理がどうなるか
  • 触る前:
    • chefではbashやruby_blockの結果がわからずアレでレシピ変えたらVM作ってテストするのあった。
  • 触った後:
    • chefでいう入ってないサービスのserviceリソースは普通に失敗してた。

実行時の標準出力の表示問題
  • 触る前:
    • セミナーのデモでみたansibleの表示不親切すぎてありえぬ。想定外のエラーで通知くるようにして見ない前提風?
  • 触った後:
    • -vvvオプションつけるとめっちゃ詳しく出てくるので作りかけのときに超便利。いつもつけたい。
    • nameとtagsを自分でちゃんと書かないとダメで詳細表示オプションがないとなんだかよくわかんない感じになる。

ホスト情報を管理しない運用ができるのか
  • 触る前:
    • 実はなるべくインベントリ(ホスト、chefでいうとnode)情報の管理したくない
    • フロント側はステートレスでBGデプロイで結構入れ替わると管理の手間が。 インベントリ管理するならHA組んでて一意のパラメータ持ってるステートフルなやつだけ管理でいいんじゃないのかと思う次第。
  • 触った後:
    • そこまでたどり着いてないけど変数は-eオプションで渡せるっぽい
    • セミナーでansible-artとか作ってる人のLTをみたけどどうなのかな(よくわかってない)

GUIで管理

・towerでできることの話
→ダッシュボードで色々管理したい人にはよさそうですがお値段が台数でかかるようなのでお金持ちだったらですか。10台まで無料ですって。
→localのテスト環境だけなら便利らしいと噂なので使ってみてもよさそう。


今後
  • 触る前:
    • とりあえずじぶんでplaybookをかかないと始まらなさそうなので需要ありそうなのから順にやってみようかと。
  • 触った後:
    • チュートリアルを流した後にmysql5.7のcommunity版を入れるplaybookとか書いた(自社のgitlabにあげた)。初期パスワードのところに苦しんだけどregisterとかshellの使い方が分かった。楽しかった。
    • もっとモジュールを使いこなしたい。 http://docs.ansible.com/ansible/list_of_all_modules.html