チームでAnsibleを共有・活用するコツ / Share Ansible with Team

Ac0dcd3cdf20a3a5732c72f3e422f3dd?s=47 issi176
July 12, 2018

チームでAnsibleを共有・活用するコツ / Share Ansible with Team

チームでAnsibleを共有・活用するコツをお伝えします。
*2018/7/12 Ansible Night in Osakaの資料

Ac0dcd3cdf20a3a5732c72f3e422f3dd?s=128

issi176

July 12, 2018
Tweet

Transcript

  1. 10.

    9 まずは よく使うRoleのディレクトリ構造を覚える Roleのディレクトリ構造 playbook/ roles/ roleA/ # Roleの呼び出し名 tasks/main.yml

    # 処理(タスク)を記述 handlers/main.yml # 特定の状況でのみ実行するタスクを記述 templates/ # jinja2 形式のテンプレートを配置 files/ # リモートへコピーするファイルを配置 defaults/main.yml # 変数の初期値を記述 Playbook内でrole 名を指定すると、 tasks/main.yml が実行される
  2. 11.

    10 すべてのタスク は Role へ記述する Role化の基本方針 $ ansible-playbook –i hosts

    websystem.yml - hosts: webservers tasks: - name: Install Apache yum: name: httpd state: latest - name: Copy httpd.conf template: src: httpd.conf.j2 dest: /etc/httpd/http.conf - hosts: webservers roles: - role: httpd - name: Install Apache yum: name: httpd state: latest - name: Copy httpd.conf template: src: httpd.conf.j2 dest: /etc/httpd/http.conf websystem.yml websystem.yml roles/httpd/tasks/main.yml
  3. 13.

    12 実際のplaybookではこんな感じ 変数の指定場所 playbook/ hosts # インベントリ websystems.yml # メインのplaybook

    host_vars/ web01.yml # web01 ホストへ適応 優先度2 group_vars/ webservers.yml # webservers グループへ適応 優先度3 all.yml # すべてのホストへ適応 優先度4 roles/ httpd/ tasks/ main.yml defaults/ main.yml # roleのデフォルト値 優先度5(低) $ ansible-playbook –i hosts websystem.yml –e “key=value” ココで指定した変数を他の 場所で上書きしていく 優先度1(高)
  4. 14.

    13 変数名の重複をさけるため、命名規則を決める ◼1.基本形:<Role名>_<わかりやすい名前> ⚫Role名が httpd の場合、例えば「httpd_ServerName 」 ◼2.playbook全体で使用する変数は先頭に global_ を付与

    変数名の命名規則 global_hostname: web01.example.com host_vars/web01.yml postfix_myhostname : “{{ global_hostname }}” roles/postfix/defaults/main.yml httpd_ServerName : “{{ global_hostname }}” roles/httpd/defaults/main.yml
  5. 17.

    16 playbook = Code! SCMを普段使用しない方(インフラ屋?) もこれを機に使い方を覚える ◼クローズドな環境で管理したい場合は GitLab がオススメ ⚫GitLab

    CE (Community Edition) はオンプレ設置が可能 ⚫Web UI & 日本語対応のためSCM初心者にも優しい playbookの共有にSCMは必須 *SCM (Source Code Management)
  6. 22.

    21 1. やさしいUIと日本語対応 2. 変数入力機能が充実 3. SCM連携が便利 4. Dynamic Inventory機能が充実

    5. REST APIで外部から操作可能 Ansible Towerのお気に入りポイントを5つ 他のシステムから連携させて、 自動化エンジンとしても活用可能
  7. 24.

    23 本日のまとめ PBのRole化 PBの変数化 PBの共有 変数整理 手順作成 実行管理 Try First!!

    Get Core Members!! Share with Team !! 効果のアピール メリット共有 技術展開 ルール化 上司の理解
  8. 25.
  9. 26.

    25 「アレクサ、Ansible で Linux を 2台起動してー。」 demo AWS Lambda Alexa

    Skill (自作) Echo dot Ansible Tower RHEL7 Zabbix Server GitLab ここまでの話とスタッフの方々を考慮する と、この構成となるべきところですが…
  10. 27.

    26 「アレクサ、Ansible で Linux を 2台起動してー。」 demo AWS Lambda Alexa

    Skill (自作) Echo dot AWX CentOS7 MIRACLE ZBX GitHub 本日はこの環境で動作しています