gpt4 book ai didi

ansible - 如何按标签顺序运行 Ansible playbook 任务

转载 作者:行者123 更新时间:2023-12-01 19:34:58 25 4
gpt4 key购买 nike

我想按照 --tags 中给出的标签顺序在 ansible playbook 中运行任务

我的 Ansible 剧本

---
- hosts: all
remote_user: root
vars:
file_path: '{{filename}}'
tasks:
- name: Delete user
user:
name: "{{username}}"
state: absent
remove: yes
tags:
- delete_user

- name: Create user
user:
name: "{{username}}"
shell: /bin/bash
groups: "{{groupname}}"
password: "{{ password |password_hash('sha512') }}"
tags:
- create_user

- name: Add ssh key
authorized_key:
user: "{{username}}"
key: "{{lookup('file', 'file_path')}}"
exclusive: yes
tags:
- add_ssh_key

运行 Ansible

ansible-playbook createuser.yml --extra-vars "username=hello password=helloworld groupname=something filename=/path/to/filename" --tags=create_user,add_ssh_key,delete_user

预期输出

TASK: [Create user] *********************************************************** 
changed: [ip address]

TASK: [Add ssh key] ***********************************************************
changed: [ip address]

TASK: [Delete user] ***********************************************************
ok: [ip address]

输出来了

TASK: [Delete user] *********************************************************** 
ok: [ip address]

TASK: [Create user] ***********************************************************
changed: [ip address]

TASK: [Add ssh key] ***********************************************************
changed: [ip address]

给定标签的顺序

创建用户、添加 ssh_key、删除用户

但按顺序执行

删除用户、创建用户、添加_ssh_key、

最佳答案

这不是标签的用途,而且在 Ansible 中也没有办法做到这一点。任务始终按照任务文件中定义的顺序和/或角色添加到剧本/剧本的顺序执行。

如果您想要定位特定任务,以便可以使用应用的单个标签多次调用剧本。

ansible-playbook ... --tags=create_user
ansible-playbook ... --tags=add_ssh_key
ansible-playbook ... --tags=delete_user

您可以编写一个简单的 bash 脚本来自动执行此操作。 (当您有更复杂的设置并且必须处理多个标签时,通常都会得到这样的结果)

关于ansible - 如何按标签顺序运行 Ansible playbook 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34508323/

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