我想用Ansible自动化一些raspberry pi或oracle云的配置。
这些是任务序列:
ansible-playbook security.yml -u ubuntu - name: create a new safe user
user:
name: "{{ safe_user }}"
state: present
groups: "sudo"
password: "{{ password }}"
comment: "Safe user"
shell: /bin/bash
update_password: on_create它在步骤4-5上失败,因为它试图继续Ubuntu用户的所有下一个任务,而Ubuntu用户则从系统中删除。
是否可以在步骤5中指定与重新连接?
目前,我将所有任务分成两个文件,但我希望只有一个文件。
$ ansible-playbook security-1.yml -u ubuntu # will create safe_user
$ ansible-playbook security-2.yml -u safe_user # will delete ubuntu user您可能会问我为什么要删除用户ubuntu?
发布于 2022-02-16 13:26:43
我认为这是不可能的(不只是在ansible,但基本上),因为没有任何机制不承认或重新拥有一个正在运行的进程,或以某种方式模拟它。
如果可以在第二个用户中重命名,为什么需要创建一个新用户并删除另一个用户?我不知道在ansible中会是什么样子,但是shell命令应该是这样的:
usermod -l safe_user ubuntu如果无论如何要删除用户,可以将此操作移动到最后一步,因此删除后将不存在任何任务。或者在su -c '...' safe_user下执行额外脚本(剧本)中的剩余任务(不知道是否支持这种“嵌套”)。
另一个变体是禁用或锁定用户(usermod -L ubuntu)或其登录(usermod ubuntu -s /sbin/nologin),而不是完全删除。
https://unix.stackexchange.com/questions/690889
复制相似问题