首页 > 代码库 > ansible和saltstack简单使用
ansible和saltstack简单使用
总结的都是一些自己用到的比较简单的知识,关于state.sls和playbooks等知识还在学习当中。。。
ansible
轻量级自动化运维工具,基于ssh,无需客户端
安装和配置
1、主控端装ansible(yum install -y ansible)
2、将主控端的公钥导入到受控端
3、主控端/etc/ansible/hosts文件里写入受控端IP/域名(加-i参数可以指定hosts文件)
4、注意/etc/ansible/ansible.cfg配置文件里的端口号和私钥文件路径是否和实际环境一致,即 remote_port= 和private_key_file=
如果对密钥进行了加密 会提示:private keyfile is encrypted。加-k参数即可
报错:Error reading SSH protocol banner是被控端拒绝连接。查看iptables或者/etc/hosts.allow文件。
ansible all -i IP.txt -m ping -k 测试连通性
ansible all -i IP.txt -m shell -a "w" -k 在被控端执行命令
ansible all -i IP.txt -m copy -a "src=http://www.mamicode.com/tmp/test.sh dest=/tmp/test.sh" -k 复制本地文件到各节点
ansible all -i IP.txt -m service -a "name=vsftpd state=restarted" 重启各节点上的某个服务器(例vsftpd)
saltstack
C/S架构
安装和配置
1、主控端装salt-master,受控端装salt-minion
2、minion端修改/etc/salt/minion配置文件,写入master和id
3、开启salt-master。salt-key -L 可查看当前此master的minion端认证情况
4、在master端salt-key -A -y 接受所有已配置此master的机器 或 salt-key -a IP接受单个
5、salt "*" test.ping 测试连通性
认证相当于交换公钥,由于master和minion通过RSAKEY的方式确认身份,主控端重装过salt-master或者某一受控端重装过salt-minion,都会双方无法连接minion did not return并且minion端的salt-minion程序秒挂。
解决方法:(重装master)删掉minion端的/etc/salt/pki/minion/minion_master.pub
(重装minion)无法连接时会使minion端被添加到master的minions_denied目录下,需删掉/etc/salt/pki/master/minions和/etc/salt/pki/master/minions_denied目录里的此节点IP
/var/log/salt/minion 记录日志,可查看错误原因
-N参数可指定一组IP,需在/etc/salt/master文件里配置组名和包含的IP:nodegroups
salt "*" cmd.run "w" 在节点上执行命令
salt "*" cmd.script salt://test.sh 在节点上执行test.sh脚本。salt://的家目录在master配置文件中配置,一般为/srv/salt/目录
ansible和saltstack简单使用