Upgrade to Pro — share decks privately, control downloads, hide ads and more …

タグの継承を知らずにやらかした話 / ansible-tag-inherit

タグの継承を知らずにやらかした話 / ansible-tag-inherit

zaki-lknr

July 20, 2021
Tweet

More Decks by zaki-lknr

Other Decks in Technology

Transcript

  1. タグの継承を知らずにやらかした話
    Ansible Night Online! 2021.07
    2021.07.20 @zaki_hmkc
    Ansible Night Online 2021.07 #ansiblejp
    1

    View Slide

  2. 今日の内容
    Ansible Night Online 2021.07 #ansiblejp
    2
    ▹ 詳細ははてなブログで!
    [Ansible] そのtag設定、想定通りに動いてま
    すか? (継承機能とその実装を確認する
    )
    https:/
    /bit.ly/ansiblejp-2021-tag-inherit
    ※ 公式ドキュメント
    https:/
    /docs.ansible.com/ansible/latest
    /user_guide/playbooks_tags.html

    View Slide

  3. 自己紹介
    Hiroshi Miyazaki
    AP Communications Co., Ltd.
    Twitter: zaki_hmkc
    Qiita / GitHub: zaki-lknr
    Ansible Night Online 2021.07 #ansiblejp
    3
    趣味から仕事へ→
    最近触ってない…→
    ドキュメント検索
    Chrome拡張usansible
    【ハンズオンセミナー】SmartCSとAnsibleの連携
    による 自動化の可能性を体験!
    7/29開催

    View Slide

  4. Ansibleのタグ
    ▹ タスクやロールなどに設定
    開発中のタスクだけ動かしたり、カジュアルに動かせないタ
    スクをスキップしたりできる
    Ansible Night Online 2021.07 #ansiblejp
    4
    ▹ --tags install_httpd
    ▸ 指定タグのタスクのみ動かす
    ▹ --skip-tags install_httpd
    ▸ 指定タグのみスキップ

    View Slide

  5. タグを使って動かないつもりのタスクが動いた

    「なぜそんなことが起きるのか」をお話します
    Ansible Night Online 2021.07 #ansiblejp
    やらかしたこと…
    5

    View Slide

  6. ---
    - hosts: localhost
    become: true
    roles:
    - role: install_server
    tags: install
    - role: os_configure
    tags: config
    タグの継承 (roleの場合)
    Ansible Night Online 2021.07 #ansiblejp
    6
    ▹ Role呼び出しにタグ設定
    ▹ 呼び出されるタスクはすべて呼び出し元に
    設定されたタグが追加される
    ---
    - name: install httpd
    ansible.builtin.yum:
    name: httpd
    tags: never
    - name: configure httpd
    ansible.builtin.template:

    View Slide

  7. ---
    - name: install httpd
    ansible.builtin.yum:
    name: httpd
    tags: never
    - name: configure httpd
    ansible.builtin.template:
    Roleの呼び出し元でタスク実行が制御される
    Ansible Night Online 2021.07 #ansiblejp
    7
    ▹ タスクにneverタグ設定
    ▹ neverは明示的に指定しないと動作しない
    のつもりだったけど…

    View Slide

  8. ▹ タスクにneverタグ設定
    ▹ neverは明示的に指定しないと動作しない
    のつもりだったけど…
    ---
    - name: install httpd
    ansible.builtin.yum:
    name: httpd
    tags: never
    - name: configure httpd
    ansible.builtin.template:
    Roleの呼び出し元でタスク実行が制御される
    Ansible Night Online 2021.07 #ansiblejp
    8
    roles:
    - role: install_server
    tags: install
    呼び出し元Roleのタグで実
    行がコントロールされる

    View Slide

  9. 対策とまとめ
    ▹ 実行されるタスクやタグを確認するオプションを活用し
    ましょう
    ▸ --list-tasks
    ▸ --list-tags
    ▸ 確認できるのはimportしたタスク
    ▹ 機能が継承されるのもimportしたタスク
    ▸ タグだけではない
    ▸ when, check_mode, ignore_errors, など…
    ▹ 参考ブログ: https:/
    /bit.ly/ansiblejp-2021-tag-inherit
    Ansible Night Online 2021.07 #ansiblejp
    9

    View Slide