使用Ansible停用当前Ansible用户
在使用Ansible设置新的Raspberry Pi时,我要执行以下操作:使用Ansible停用当前Ansible用户,ansible,Ansible,在使用Ansible设置新的Raspberry Pi时,我要执行以下操作: 使用默认的piuser,创建一个名为my\u new\u admin 使用新的my\u new\u admin用户,停用默认的pi用户 继续以my\u new\u admin 我发现单凭一本剧本很难做到这一点。甚至可以在Ansible中这样切换活动用户吗 #inventory.yaml --- 全部: 儿童: rpis: 主持人: myraspberrypi.example.com: 回答用户:我的新管理员还是“pi
- 使用默认的
user,创建一个名为pi
my\u new\u admin
- 使用新的
用户,停用默认的my\u new\u admin
用户pi
- 继续以
my\u new\u admin
#inventory.yaml
---
全部:
儿童:
rpis:
主持人:
myraspberrypi.example.com:
回答用户:我的新管理员还是“pi”应该在这里?
...
#initialize.yaml
-主持人:rpis
远程用户:'pi'
变成:真的
任务:
-名称:“创建新用户”
用户:
姓名:“我的新管理员”
附加:true
组:
-“sudo”
-名称:“将SSH密钥添加到我的新管理员”
*剪断*
-名称:“锁定默认用户”
远程用户:“我的新管理员”
用户:
名称:'pi'
过期:{(“1970-01-02 00:00:00”| to_datetime).timestamp()| float}
密码锁定:true
...
如果您想切换用户,最简单的解决方案是重新开始播放。例如,以下剧本将以用户pi
的身份运行第一个剧本,以用户root
的身份运行第二个剧本:
- hosts: pi
gather_facts: false
remote_user: pi
tasks:
- command: whoami
register: whoami
- debug:
msg: "{{ whoami.stdout }}"
- hosts: pi
gather_facts: false
remote_user: root
tasks:
- command: whoami
register: whoami
- debug:
msg: "{{ whoami.stdout }}"
在这本剧本中,我对两个剧本中的remote\u user
都有明确的说明,但您也可以在库存中设置一个用户,并仅在必要时覆盖它。例如,如果我有:
pi ansible_host=raspberrypi.local ansible_user=root
然后我可以像这样重写上面的剧本:
- hosts: pi
gather_facts: false
vars:
ansible_user: pi
tasks:
- command: whoami
register: whoami
- debug:
msg: "{{ whoami.stdout }}"
- hosts: pi
gather_facts: false
tasks:
- command: whoami
register: whoami
- debug:
msg: "{{ whoami.stdout }}"
请注意,我在这里设置的是
ansible\u user
变量,而不是使用remote\u user
,因为看起来ansible\u user
具有优先权。当然!我不知道每个剧本可以有多个剧本。既然你这么说了,就很清楚了。非常感谢。