Ansible实战部署
三台虚拟机
Rsync01 192.168.0.10 被管理的机器
Nfs01 20 被管理的机器(配置好ssh服务 以及关闭防火墙等)
M01 30 管理的机器
Ansible 管理机器 30
选择yum自动化安装 阿里云,epel原 ,前提得配置好
yum -y install epel-release
yum install ansible libselinux-python -y
被管理的机器10 20
yum -y install epel-release libselinux-python
查看你ansible的包在哪里30
rpm -ql ansible | grep -E '^/etc|^/usr/bin' 查看ansible的包
ansible –version 查看版本好
ansible 的管理方式 两种
传统 的ssh 密码验证
密钥管理
配置好 ansible 的配置文件 添加被管理的机器ip 地址或者主机名
备份现有的配置文件 (cp)
Vim hosts
[sever]
192.168.0.10
192.168.0.20
Ssh 密码认证方式管理机器
Ansible 是直接利用Linux本地的ssh 服务,以及一些远程的ssh操作,一般客户端的ssh都是开启的无需额外管理
30
-m 指定功能模块 默认就是comand
-a 告诉模块执行的参数
-k 询问密码验证
-u 指定运行的用户
例告诉被管理的机器,你要执行什么 ,以及用什么用户去执行
Ansible server -m command -a“hostname” -k -u root
如上的操作一般会有红色文字报错 只需要手动ssh对主机进行一次链接即可使用ansible命令
Ssh [email protected] 链接确认 yes 输入链接的主机密码即可
Ansible 认证之批量免密登录
每次执行ansible 命令的时候都需要输入对应的主机密码这样就很繁琐 因此我们可以设置免密登录的快捷方式
修改hosts文件 来实现ssh认证
可以在 /etc/ansible/hosts 定义好密码即可
192.168.0.10 ansible_user=root ansible_ssh_pass=123123
192.168.0.20 ansible_user=root ansible_ssh_pass=123123
Ansible_host 主机地址
Ansible_port 端口,默认是22端口
ansible_user 认证用户
ansible_ssh_pass 用户密码
以上的这个免密方式 如果 主机被攻陷 从机的信息也会被共攻陷的人拿到,所以我们需要ssh 密钥的方式批量管理主机 这个方式比hosts 文件更安全放心
创建shell 脚本文件 来 执行公私钥免密登录
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
-ssh-keygen 密钥生成的命令
-f 把私钥文件写到用户的家目录下的.shh目录当中,把私钥的信息写入到 id_rsa中
-p 指定空字符串 把空的密码写到私钥rsa中
把输出的信息(正确或者错误)重定向到dev/null 写道黑洞&1当中
此时检查公私要文件 cd /.shh 然后查看是否存在id_rsa这个文件
然后 创建一个脚本文件
命令如下
#!/bin/bash
rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
SSH_Pass=123123
Key_Path=~/.ssh/id_rsa.pub
for ip in 30 40 (你的从机地址)
do
sshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o StrictHostKeyChecking=no"192.168.0.$ip
done
~
-o ‘ StrictHostKeyChecking=no’: 登录不需要确认
连接主机就是
Ssh o ‘ StrictHostKeyChecking=no’’要登陆的主机号’
总结
在生产环境中,ansible 的连接方式 最好就是配置 ssh公私要免密登录
如果生产环境要求较高 可以用普通用户执行 在提权操作
标签:运维,ansible,rsa,192.168,Ansible,ssh,自动化,id From: https://www.cnblogs.com/smile020420/p/16908343.html