ansibleにはじめてさわっためも
を,メモのまま貼り付けちゃうやつ. 参考URL
Ansibleとは
https://www.slideshare.net/kk_Ataka/ansibleinfrastructure-as-code
(ざっくり)
- 構成管理ツール
- コントローラなサーバで設定を定義
- 操作対象のサーバを指定してコントローラからMWとかSWとか入れたりコピーしたり。
構成管理ツール?
サーバの構成管理とは
- サーバを調達,必要なMW,SWをインストールする
- 設定ファイルを適切に編集する
=> 構成管理ツール : これらの作業を適切に維持,管理してくれるツール
構成管理のめんどくささ
- 複数台構成で設定変更が発生したら,全てのサーバに適用しなきゃ。
- めんどいのは想像がつく
構成管理ツールのメリット
構築手段のコード化
Infrastructure as Code
何度実行しても同じ結果に(冪等性)
- 複数サーバで一発
ansibleの構成ファイル
playbook
- yamlでかく
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を実行した時にどこに変更が出るか確認できる