首页 > 代码库 > 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简单使用