gpt4 book ai didi

ansible - 如何在不标记的情况下跳过所有角色并运行所有任务

转载 作者:行者123 更新时间:2023-12-01 22:57:49 25 4
gpt4 key购买 nike

当我编写剧本时,我需要重复运行所有任务。我可以标记所有 tasks(和/或 roles)以使用 --tags 有选择地运行它们。但是,如果我只想运行所有 tasks 而跳过所有 roles 怎么办?没有不需要标记所有内容的捷径吗?

给定一个剧本:

---
- name: example playbook
become: true
hosts:
- worker

roles:
- dev-sec.ssh-hardening
- iptables

tasks:
- name: install pip3
apt: name=python3-pip state=present

- name: install kas via pip
pip:
name: kas
state: present

有点像

ansible-playbook -i hosts.yml my-example-playbook.yml --skip-all-roles

跳过所有角色,只运行剧本 my-example-playbook.ymltasks,而不标记任务。

最佳答案

其他两种方式 - 第二种方式无需任何更改即可工作,但预设了特定的剧本结构:

  1. 请注意,您可以标记一个 block ,而不是标记一堆任务:
    - hosts: worker
    become: true

    roles:
    - dev-sec.ssh-hardening
    - iptables

    tasks:
    - block:
    - name: install pip3
    apt:
    name: python3-pip
    state: present

    - name: install kas via pip
    pip:
    name: kas
    state: present

    tags: only-tasks
    并且,运行它
    ansible-playbook play.yml --tags only-tasks
  2. 在不改变任何东西的情况下,假设你的角色总是在你的任务之前,并且你知道第一个任务的名称,你可以使用 --start-at-task标志,所以在你的情况下:
    ansible-playbook play.yml --start-at-task "install pip3"

关于ansible - 如何在不标记的情况下跳过所有角色并运行所有任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72614880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com