在CentOS7下使用ansible管理Deepin20.5
环境介绍
ansible端
系统:centos7.9
配置:单核1G内存5G硬盘
被控端
系统:Deepin20.5
配置:4核4G内存70G硬盘
被控端为普通用户
1、安装
ansible端:
设置主机名为ansible方便识别
hostnamectl set-hostname ansible
安装epel源
yum install epel-release -y yum install ansible -y
查看版本
ansible --version
2、配置
ansible端:
deepin被控端是普通用户
想要管理被控端,还需增加被控端的分组和IP地址到ansible下的hosts文件下
vi /etc/ansible/hosts
在末尾增加如下内容
[deepin] 10.10.10.11 10.10.10.12 10.10.10.13 [deepin:vars] ansible_user=admin ansible_password=密码 #以下注释行为配置sudo权限 #ansible_become=true #ansible_become_method=sudo #ansible_become_user=root #ansible_become_pass=密码
3、ansible管理验证
ansible验证管理被控端是否成功
ansible deepin -m ping
反馈有一个pong的回应代表成功,但是上面会有几行红色警告信息,这是PYTHON版本报错提示,不影响结果但看着不舒服
4、解决python报错及knows_hosts提示
编辑配置文件
vi /etc/ansible/ansible.cfg
增加如下一行到28行后面[defaults]模块下的#module_set_locale = False后面
interpreter_python = auto_legacy_silent host_key_checking = False
再次执行
ansible -m ping deepin
此时,将只有绿色SUCCESS部分,不再有红色的告警
同时结果也不会出现know hosts无权限的提示了,当然你ssh时先手动输入yes一次也可以。
6、ansible使用方法
ansible + hosts(主机IP、分组、all)+模块(ping、user、yum、service等)+参数
在deepin分组下使用ls命令
ansible deepin -a ls ansible deepin -a pwd ansible deepin -a uptime ansible deepin -m shell -a 'curl --head baidu.com'
查看公网IP
ansible deepin -a 'curl ifconfig.me' ansible deepin -m shell -a 'curl ifconfig.me'
被控端为root用户
7、配置root用户,设置免秘钥登录
被控端:
设置root密码,并且允许root ssh登录
sudo passwd
密码设置好之后就去修改sshd配置文件,开启root登录
sudo nano /etc/ssh/sshd_config
将这行注释掉,在下面添加一行
#PermitRootLogin prohibit-password PermitRootLogin yes
重启ssh服务
sudo systemctl restart ssh
此时deepin系统就可以用root用户ssh登录了
ansible端:
设置免秘钥登录
ssh-keygen ssh-copy-id root@10.10.10.11
验证一下免秘钥登录
ssh-keyscan 10.10.10.11 > ~/.ssh/known_hosts ssh root@10.10.10.11
此时ssh过去就不需要输入密码了
想要管理被控端,还需增加被控端的分组和IP地址到ansible下的hosts文件下
vi /etc/ansible/hosts
在最后一行添加如下分组
[deepin] 10.10.10.11 10.10.10.12 10.10.10.13
保存退出
5、取消免秘钥登录
取消免秘钥登录之后,ansible也将失效
登录到被控端,删除ansible主机的秘钥
ssh root@10.10.10.11 rm -rf .ssh/* exit
此时ansible端再次ssh就需要输入密码了
发表评论