自动化运维的好处
- 提高效率
- 减少人为出错的可能性
- 支持数据化管理数据化追源
Ansible介绍:ansible是一个可以同时管理多个远程主机的软件,必须是可以通过ssh登录的机器
管理及和被管理机:
#时间同步
yum -y install ntp
ntpdate ntp.aliyun.com
管理机:
#安装ansible
yum install epel-release -y
yum install ansible libselinux-python -y
#检查ansible软件安装情况
rpm -ql ansible | grep -E '^/etc|^/usr/bin'
#检查ansible版本
ansible --version
被管理机器:
#安装ansible所需系统板块
yum install epel-release libselinux-python -y
ansible管理方式
- 传统的输入ssh密码验证
- 密匙管理
准备:
#备份ansible配置文件
cp /etc/ansible/hosts{,.ori}
#向/etc/ansible/hosts添加需要管理的机器地址
[tao]
192.168.66.138
ssh密码认证方式:
执行命令前需要手动ssh对主机进行一次连接
#ssh连接
ssh root@ip
#管理机执行命令
ansible tao -m command -a "hostname" -k -u root
-m 指定功能模块,默认command模块
-a 执行参数
-k 询问密码验证
-u 指定运行的用户
配置免密登录:
#在/etc/ansible/hosts中
vim /etc/ansible/hosts
[Taoge]#自定义
192.168.178.138 ansible_user=root ansible_ssh_pass=111111
192.168.178.139 ansible_user=root ansible_ssh_pass=111111
参数:
ansible_host 主机地址
ansible_port 端口,默认22
ansible_user 认证的用户
ansible_ssh_pass 用户认证的密码
#验证
ansible tao -m command -a "ifconfig ens33"
ssh密匙方式批量管理主机:
公匙分发发脚本:
#!/bin/bash
rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
SSH_Pass=密码
Key_Path=~/.ssh/id_rsa.pub
for ip in 128 129
do
sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o StrictHostKeyChecking=no" 192.168.66.$ip
done
通过 -o StrictHostKeyChecking=no 跳过ssh连接确认信息
#测试无需输入密码即可连接
ansible chaoge -m command -a "uname -a
总结:在生产环境中,最好是配置ssh公匙免密登录,如果生产环境的要求更高,可以用普通用户去执行,在提权操作,sudo