ansible安装
pip install ansible
ansible配置
生成sshkey
注意: 怕出错, 可以生成前先备份原来的.ssh(避免替代原来key) ($ mv /root/.ssh /root/.ssh-bak)
mkdir -p /etc/ansible # 创建配置文件
ssh-keygen -t rsa -P ‘’ -f /etc/ansible/id_rsa_storm 或
ssh-keygen -t rsa -C "your_email@example.com" -f /etc/ansible/id_rsa_storm
生成公钥/私钥, -f:这里指定位置/etc/ansible和命名, 生成id_rsa_storm和id_rsa_storm.pub
开启ssh服务
检查所有服务器ssh服务是否开启: sudo ps -e |grep ssh
如没有则安装:
sudo apt-get update # 更新资源库
sudo apt-get install openssh-server # 安装openssh-server
(sudo apt-get install openssh-client # 客户端, 只能用于登录其他电脑)
service ssh start 或 sudo systemctl start ssh.service # 启动ssh服务
sudo ps -e |grep ssh # 查看安装成功
ifconfig 或 ifconfig -a # 查看ip地址
写入信任文件, 用于ssh登录
将/etc/ansible/id_rsa_storm.pub 和 /etc/ansible/id_rsa_storm分发到其他服务器对于位置, 并在所有服务器上执行如下指令:
cat /etc/ansible/id_rsa_storm.pub >> /root/.ssh/authorized_keys # 将公钥加入访问权限
chmod 600 /root/.ssh/authorized_keys # 设置权限
ansible默认配置
vim /etc/ansible/ansible.cfg # 设置以下内容
[defaults]
; 设置远程链接端口, 默认22
; remote_port = 36000
; 远程访问秘钥
private_key_file = /etc/ansible/id_rsa_storm
; 设置默认用户
ansible_ssh_user=root
; 服务器路径
inventory=/etc/ansible/hosts
; 日志路径
log_path = /var/log/ansible/ansible.log ;日志
; 中文编码
;module_lang = zh_CN.UTF-8
;module_set_locale = True
[ssh_connection]
; 避免首次连接时让输入yes/no部分的提示
ssh_args=-o StrictHostKeyChecking=no
vim /etc/ansible/hosts # 设置多台服务器内容
[storm_cluster]
127.0.0.1
172.17.0.3
# 或 127.0.0.1:22
# 或 172.17.0.3:22 ansible_ssh_user=root ansible_ssh_private_key_file=/etc/ansible/id_rsa_storm is_master=yes
# 不使用默认
最后测试是否成功:
ansible storm_cluster -m command -a ‘uptime’
附 git多地址多ssh配置
把上面的id_rsa_storm 配置到指定网站
vim /root/.ssh/config
Host github.com
HostName github.com
User test
IdentityFile /etc/ansible/id_rsa_storm
可配置多个不同网站, 不同ssh
把id_rsa_storm.pub的内容放到git网站的ssh
例如: gitlab
点击头像 -> 设置 -> ssh密钥 -> 复制pub内容 -> 增加