Ansible Playbook:使用ROOT用户或普通用户远程执行playbook
一、简介
很多时候,在生产环境中,root用户是不一定是可以直接登录的。那么,针对此种场景,我们该如何使用ansible实现自动化批量操作呢?
具体,可分为以下几种场景:
类型 | 主控端用户 | 被控端用户 | 被控端用户是否需要sudo提权 |
---|---|---|---|
场景一 | ROOT用户 | ROOT用户 | 不需要 |
场景二 | ROOT用户 | 普通用户 | 需要 |
场景三 | 普通用户 | ROOT用户 | 不需要 |
场景四 | 普通用户 | 普通用户 | 需要 |
二、场景一
说明:在一些场景中,主控端和被控端的root用户都是可以直接登录的。
方法一:在主机清单文件中定义被控端主机用户、密码、ssh端口
1、ansible.cfg配置文件:
[defaults]
#每次执行ansible命令是否使用需要提示输入SSH密码
ask_pass = false
#不进行host_key检查,省去目标key发生变化时输入(yes/no)的步骤
host_key_checking = False
2、主机清单文件:
#公钥认证
[jumpserver]
192.168.9.194
#密码认证---新方法
[hadoop]
192.168.9.191 ansible_user=root ansible_pass=asdwhl@0 ansible_port=22
192.168.9.192 ansible_user=root ansible_pass=asdwhl@0 ansible_port=22
192.168.9.193 ansible_user=root ansible_pass=asdwhl@0 ansible_port=22
#密码认证---旧方法
[web]
192.168.9.197 ansible_ssh_user=