ansibleにはじめてさわっためも

を,メモのまま貼り付けちゃうやつ. 参考URL

qiita.com

Ansibleとは

https://www.slideshare.net/kk_Ataka/ansibleinfrastructure-as-code

(ざっくり)

  • 構成管理ツール
  • コントローラなサーバで設定を定義
  • 操作対象のサーバを指定してコントローラからMWとかSWとか入れたりコピーしたり。

構成管理ツール?

サーバの構成管理とは

  • サーバを調達,必要なMW,SWをインストールする

    - 設定ファイルを適切に編集する

    => 構成管理ツール : これらの作業を適切に維持,管理してくれるツール

構成管理のめんどくささ

  • 複数台構成で設定変更が発生したら,全てのサーバに適用しなきゃ。
    • めんどいのは想像がつく

構成管理ツールのメリット

  • 構築手段のコード化

    • Infrastructure as Code
  • 何度実行しても同じ結果に(冪等性)

  • 複数サーバで一発

ansibleの構成ファイル

  • playbook

  • ansibleでは決まったdirから情報を暗黙的に取得してくる

    • 依存関係を理解する必要がある

playbookのかきかた

yumモジュール : パッケージ操作
- name: install packages from yum
  # 指定パッケージの最新版を取ってくる
  yum: name={{ item }} state=latest
  # インストールされるアイテム
  # state=absentでインストールしないことを指定
  with_items:
    - jq
    - ruby
    - httpd
 ```


##### cronモジュール : jobの設定

jobの設定

  • name: register cron job cron: name="check ping" day="*/2" hour="12" minute="0" job="ping -c 3 192.168.100.10"
##### dir作成
  • name: create directories file: path={{ item.path }} owner={{ item.owner }} group={{ item.group }} mode=0{{ item.mode }} state=directory

modeは8進数

with_items: - { "path":"/opt/ansible", "owner":"root", "group":"root", "mode":"755" } - { "path":"/opt/vagrant", "owner":"vagrant", "group":"vagrant", "mode":"755" } ```

静的ファイル配置 : copy
- name: copy files
  copy: src=./files/hoge dest=/opt/ansible/hoge owner=root group=root mode=0755
動的ファイル配置 : 変数を展開しながらcopy
# copy元ファイルはjinja2形式。
- name: copy template files
  template: src=./templates/fuga.j2 dest=/opt/ansible/fuga owner=root group=root mode=0755

check mode

(オプションに) --check

  • 実際には変更を行わないモード
    • Dry runともいう
  • playbookを実行した時にどこに変更が出るか確認できる