如何在Ansible中正确记录一次性更改?
我已经开始使用如何在Ansible中正确记录一次性更改?,ansible,Ansible,我已经开始使用Ansible进行服务器配置。我将Ansible相关文件存储在git存储库中,它工作得非常好 我的问题是:使用Ansible记录一次性任务的方法是什么。例如,删除旧用户帐户时,我是运行单个任务来删除帐户,还是在我的site.yml中包含user=john state=缺席行 这方面有最佳实践吗?如果我把它包括在我的站点.yml中,它将继续增加。如果我将其作为一次性任务运行,则团队的其他成员不知道此任务已运行。我将向您的playbook中添加几个任务以删除不必要的用户: - shel
Ansible
进行服务器配置。我将Ansible相关文件存储在git
存储库中,它工作得非常好
我的问题是:使用Ansible记录一次性任务的方法是什么。例如,删除旧用户帐户时,我是运行单个任务来删除帐户,还是在我的site.yml
中包含user=john state=缺席行
这方面有最佳实践吗?如果我把它包括在我的
站点.yml中,它将继续增加。如果我将其作为一次性任务运行,则团队的其他成员不知道此任务已运行。我将向您的playbook中添加几个任务以删除不必要的用户:
- shell: "getent passwd | awk -F: '$3 > 900 {print $1}' | grep -v nobody"
register: passwd_res
changed_when: false
- user:
name: "{{ item }}"
state: absent
with_items: "{{ passwd_res.stdout_lines | difference(required_users) }}"
考虑到必需的\u用户
是一个将要出现的用户列表,我们将获得UID>900的目标系统上除无人
之外的所有用户,并确保删除存在但不需要的用户。在vars/users.yml中,我将有一个您希望可用的用户列表和一个不再需要的用户列表。现在,您已经对用户状态的源代码进行了版本控制
以下内容未经测试
---
users:
active:
- jon
- sansa
- arya
legacy:
- ned
- joffrey
然后你的剧本看起来像
- name: add active users
user:
name: "{{ item }}"
state: present
with_items: "{{users['active']}}"
- name remove legacy users
user:
name: "{{ item }}"
state: absent
with_items: "{{users['legacy']}}"
一旦你知道joffrey早就不在了(你呢?),你就可以将他从遗留名单中删除,这样你就不能确保他离开你的组织后的第四个季度不在了
他仍然在版本控制中,所以你可以随时参考他被添加和删除的时间