Chapter 26

タグ#1 : tags

y_mrok
y_mrok
2021.10.17に更新

必要に応じて tags ディレクティブを使用しタスクに 1 つ以上のタグを付けます。タグを付けた後は、タグを付けたタスクだけを実行したり、タグを付けていないタスクだけを実行したりできます。

タグの付け方

タグはシーケンス形式、マッピング形式のどちらでも設定できます。

シーケンス形式

1 つだけ設定

    - name: task#2
      ansible.builtin.debug:
      tags:
        - job2

複数設定

    - name: task#4
      ansible.builtin.debug:
      tags:
        - job1
        - job3

マッピング形式

1 つだけ設定

    - name: task#1
      ansible.builtin.debug:
      tags: job1

複数設定

    - name: task#3
      ansible.builtin.debug:
      tags: job1, job2

ansible-playbook コマンド

ansible-playbook コマンドのタグに関係するパラメーターです。

ansible-playbook [-h] [--version] [-v] [-k]
                 [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER]
                 [-c CONNECTION] [-T TIMEOUT]
                 [--ssh-common-args SSH_COMMON_ARGS]
                 [--sftp-extra-args SFTP_EXTRA_ARGS]
                 [--scp-extra-args SCP_EXTRA_ARGS]
                 [--ssh-extra-args SSH_EXTRA_ARGS] [--force-handlers]
                 [--flush-cache] [-b] [--become-method BECOME_METHOD]
                 [--become-user BECOME_USER] [-K] [-t TAGS]
                 [--skip-tags SKIP_TAGS] [-C] [--syntax-check] [-D]
                 [-i INVENTORY] [--list-hosts] [-l SUBSET]
                 [-e EXTRA_VARS] [--vault-id VAULT_IDS]
                 [--ask-vault-password | --vault-password-file VAULT_PASSWORD_FILES]
                 [-f FORKS] [-M MODULE_PATH] [--list-tasks]
                 [--list-tags] [--step] [--start-at-task START_AT_TASK]
                 playbook [playbook ...]

タグ関連のパラメーター

パラメーター 意味
--list-tasks プレイブックを実行せず、実行対象のタスクの一覧 ( タスク名、設定したタグ 等 ) を表示する
-t
--tags
指定したタグを設定したタスクを実行する
--skip-tags 指定したタグを設定したタスクを除いて実行する

パラメーターの動作確認で使用するプレイブックです。

hosts.yml
---
all:
  children:
    web:
      hosts:
        marutamachi:
        takeyamachi:
        ebisugawa:
        nijyo:
    mail:
      hosts:
        nijyo:
    database:
      hosts:
        oshikoji:
        oike:
tags.yml
---
- name: How to use the 'tags' directive.
  hosts: database
  gather_facts: no

  tasks:
    - name: task#1
      ansible.builtin.debug:
      tags: job1
    - name: task#2
      ansible.builtin.debug:
      tags:
        - job2
    - name: task#3
      ansible.builtin.debug:
      tags: job1, job2
    - name: task#4
      ansible.builtin.debug:
      tags:
        - job1
        - job3
    - name: task#5
      ansible.builtin.debug:
    - name: task#6
      ansible.builtin.debug:
      tags: job3
    - name: task#7
      ansible.builtin.debug:
      tags:
        - job2
        - job3

--list-tasks パラメーター

--list-tasks パラメーターでタスクごとに設定したタグを確認します。このパラメーターを指定して実行した場合、プレイブックは実行しません。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#1	TAGS: [job1]
      task#2	TAGS: [job2]
      task#3	TAGS: [job1, job2]
      task#4	TAGS: [job1, job3]
      task#5	TAGS: []
      task#6	TAGS: [job3]
      task#7	TAGS: [job2, job3]
y_mrok@ctrl:~/code/exam16$ 

-t / --tags パラメーター

-t / --tags パラメーターで指定したタグと同じタグを付けたタスクだけを実行します。複数のタグを指定するときはカンマ , で区切って列記します。

タグを 1 つだけ指定した場合

--list-tasks パラメーターと併用し、実行対象のタスクを確認します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#1	TAGS: [job1]
      task#3	TAGS: [job1, job2]
      task#4	TAGS: [job1, job3]
y_mrok@ctrl:~/code/exam16$ 

タグを 1 つだけ指定してプレイブックを実行したときのログです。上記で確認したタスクだけを実行しました。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1 tags.yml 

PLAY [How to use the 'tags' directive.] **************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#4] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

複数のタグを指定した場合

--list-tasks パラメーターと併用し、実行対象のタスクを確認します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1,job3 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#1	TAGS: [job1]
      task#3	TAGS: [job1, job2]
      task#4	TAGS: [job1, job3]
      task#6	TAGS: [job3]
      task#7	TAGS: [job2, job3]
y_mrok@ctrl:~/code/exam16$ 

複数のタグを指定してプレイブックを実行したときのログです。上記で確認したタスクだけを実行しました。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1,job3 tags.yml 

PLAY [How to use the 'tags' directive.] **************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#4] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#7] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

--skip-tags パラメーター

--skip-tags パラメーターで指定したタグと同じタグが付けられていないタスクだけを実行します。複数のタグを指定するときはカンマ , で区切って列記します。

タグを 1 つだけ指定した場合

--list-tasks パラメーターと併用し、実行対象のタスクを確認します。タグを設定していないタスク (task#5)も実行対象になります。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags job1 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#2	TAGS: [job2]
      task#5	TAGS: []
      task#6	TAGS: [job3]
      task#7	TAGS: [job2, job3]
y_mrok@ctrl:~/code/exam16$ 

タグを 1 つだけ指定してプレイブックを実行したときのログです。上記で確認したタスクだけを実行しました。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags job1 tags.yml 

PLAY [How to use the 'tags' directive.] **************************************************************************************************************

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#7] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

複数のタグを指定した場合

--list-tasks パラメーターと併用し、実行対象のタスクを確認します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags job1,job3 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#2	TAGS: [job2]
      task#5	TAGS: []
y_mrok@ctrl:~/code/exam16$ 

複数のタグを指定してプレイブックを実行したときのログです。上記で確認したタスクだけを実行しました。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags job1,job3 tags.yml 

PLAY [How to use the 'tags' directive.] **************************************************************************************************************

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

-t / --tags パラメーターと --skip-tags パラメーターを併用

-t / --tags パラメーターと --skip-tags パラメーターを併用した場合、それぞれのパラメーターで絞り込んだタスクの and 条件になります。

--list-tasks パラメーターと併用し、実行対象のタスクを確認します。タグ job1 を設定したタスクです。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#1	TAGS: [job1]
      task#3	TAGS: [job1, job2]
      task#4	TAGS: [job1, job3]
y_mrok@ctrl:~/code/exam16$ 

タグ job2 を含まないタスクです。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags job2 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#1	TAGS: [job1]
      task#4	TAGS: [job1, job3]
      task#5	TAGS: []
      task#6	TAGS: [job3]
y_mrok@ctrl:~/code/exam16$ 

タグ job1 を含み かつ タグ job2 を含まないタスクです。上記 2 つの両方に含まれるタスクが対象になります。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1 --skip-tags job2 --list-tasks tags.yml 

playbook: tags.yml

  play #1 (database): How to use the 'tags' directive.	TAGS: []
    tasks:
      task#1	TAGS: [job1]
      task#4	TAGS: [job1, job3]
y_mrok@ctrl:~/code/exam16$ 

実行ログです。上記で確認したタスクだけを実行しました。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1 --skip-tags job2 tags.yml 

PLAY [How to use the 'tags' directive.] **************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#4] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$

特別なタグ

複数の特別なタグが用意されています。

【タスクに設定】

  • always タグ
    • このタグを設定したタスクは常に実行対象になります。
    • --skip-tags パラメーターでこのタグを指定したときは実行対象から除外できます。
  • never タグ
    • このタグを設定したタスクは常に実行対象から除外されます。
    • -t / --tags パラメーターでタグ never を指定したときは実行対象に含まれます。

【パラメーターに設定】

  • tagged タグ
    • -t / --tags パラメーター
      • タグを付けたすべてのタスクを実行対象にします。
      • never タグを付けたタスクは実行対象から除外します。
    • --skip-tags パラメーター
      • タグを付けたすべてのタスクを実行対象から除外します。
      • always タグが付いたタスクも実行対象から除外します。
  • untagged タグ
    • -t / --tags パラメーター
      • タグを付けていないすべてのタスクを実行対象にします。
      • always タグが付いたタスクは実行対象です。
    • --skip-tags パラメーター
      • タグを付けていないすべてのタスクを実行対象から除外します。
      • never タグが付いたタスクは実行対象から除外します。
  • all タグ
    • -t / --tags パラメーター
      • タグの有無に関係なくすべてのタスクを実行対象にします。
      • never タグを付けたタスクは実行対象から除外します。
    • --skip-tags パラメーター
      • タグの有無に関係なくすべてのタスクを実行対象から除外します。
      • always タグを付けたタスクは実行対象です。

次のプレイブックを使用して always タグの動作を確認します。

tags1.yml
---
- name: Examples of tag usage
  hosts: database
  gather_facts: no

  tasks:
    - name: task#1
      ansible.builtin.debug:
      tags: job1
    - name: task#2
      ansible.builtin.debug:
      tags: always
    - name: task#3
      ansible.builtin.debug:
      tags: job2
    - name: task#4
      ansible.builtin.debug:
      tags: never
    - name: task#5
      ansible.builtin.debug:
      tags: job2
    - name: task#6
      ansible.builtin.debug:

always タグ / never タグ

-t / --tags パラメーター

指定したタグと always タグを設定したタスクを実行します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t job1 tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

never タグもタグの一種なので -t / --tags パラメーターで指定すると実行対象になります。下記の実行ログでは never タグと always タグを付けたタスクが実行されました。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t never tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#4] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

--skip-tags パラメーター

指定したタグ以外のタグを設定したタスクとタグを設定していないタスク、 always タグを設定したタスクを実行します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags job1 tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

always タグもタグの一種なので --skip-tags パラメーターで指定すると実行対象から除外します。 always タグと never タグを付けたタスクを除いたタスクを実行します。タグを付けていないタスクも実行します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags always tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

tagged タグ / untagged タグ / all タグ

tagged タグ

-t / --tags パラメーター

タグが付いたすべてのタスクが実行対象です。ただし never タグが付いたタスクは実行対象から除外します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t tagged tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

--skip-tags パラメーター

タグが付いたすべてのタスクが実行対象から除外します。always タグを付けたタスクも実行対象から除外します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags tagged tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

untagged タグ

-t / --tags パラメーター

タグが付いていないすべてのタスクと always タグが付いたタスクが実行対象です。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t untagged tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

--skip-tags パラメーター

タグが付いていないタスクと never タグが付いたタスクを実行対象から除外します。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags untagged tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

all タグ

-t / --tags パラメーター

never タグが付いたタスクを除くすべてのタスクが実行対象です。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml -t all tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#1] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#3] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#5] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

TASK [task#6] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

--skip-tags パラメーター

always タグが付いたタスクだけが実行対象です。

y_mrok@ctrl:~/code/exam16$ ansible-playbook -i hosts.yml --skip-tags all tags1.yml 

PLAY [Examples of tag usage] *************************************************************************************************************************

TASK [task#2] ****************************************************************************************************************************************
ok: [oshikoji] => {
    "msg": "Hello world!"
}
ok: [oike] => {
    "msg": "Hello world!"
}

PLAY RECAP *******************************************************************************************************************************************
oike                       : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
oshikoji                   : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

y_mrok@ctrl:~/code/exam16$ 

演習問題

演習問題はこのリンクをクリックしてください。