许多企业使用云服务,自动化运维的工具也越来越火,安装和使用了三种自动化运维工具
puppet、saltstack、ansible个人的一点心得看法;
puppet c/s构架 服务端puppet master 客户端puppet agent进程 启动程序使用ruby进程
有监听端口master 8140 agent 8139
原理 agent客户端puppet.conf配置master服务端的IP地址、runinterval = 10(客户端每10秒向master发送请求接收执行)、listen = true,当master 和agent服务都启动后
agent客户端自动发送一个认证到master服务器 puppet cert list 可以看到agent发来的认证请求,需要master端sign(签名)后,master端才能开始对agent进行操作:文件发送、目录发送、服务开启/关闭、制定任务计划、执行shell脚本
puppet cert list -all --//查看已签名agent
master服务器的puppet目录下有三个目录environments manifests modules一开始都是空的
manifests下创建一个site.pp(系统默认) 里面配置全局变量
modules 下创建web 模块, web模块包含三个子目录files manifests templates其实就是对应puppet下的三个目录
files--放分发的文件、 目录
manifests--创建一个init.pp输入远程执行的操作命令 将命令关联到site.pp上就可以了
客户端agent会自动监控master的改动每10s做出一次调整
saltstatck c/s构架 采用pathon进程 服务端是salt-master客户端salt-minion
只有master端开启监控端口,而且是两个4505/4506
认证机制和puppet差不多 salt-key查看认证key Accepted Keys:下的key对应的agent都可以正常通信
puppet能实现的功能saltstack都能实现
优于puppet的方面:
1,可以直接对agent发送指令
salt ‘*‘ cmd.run ‘w‘ 查看所有agent的负载情况 salt ‘*‘ test.ping
2,grains 用于对服务器进行分组
grains是在minion启动时收集到的一些信息,比如操作系统类型、网卡ip等。 使用命令
salt ‘test.com.cn‘ grains.ls 列出所有的grains项目名字
salt ‘test.com.cn‘ grains.items 列出所有grains项目以及值
grains的信息并不是动态的,并不会时时变更,它只是在minion启动时收集到的。
grains可以做配置管理
举例单独对10台web服务器进行统一管理 在 在每个web服务器下
vim /etc/salt/grains
添加role:web
重启salt-minion服务
在master服务器执行 salt -G reole:web cmd.run ‘w‘ ---//实现对着10台web的单独管理
ansible 相比与前两个更加轻便
首先他不是c/s构架不需要客户端 只要安装服务端就可以
而且在/etc/ansible/hosts里直接可以对客户端进行分组
也支持直接执行命令
ansible testhosts -m command -a ‘w‘ --//testhosts是我创建的分组
对比上面三种ansible应该算是最优的自动化工具
本文出自 “10999243” 博客,请务必保留此出处http://11009243.blog.51cto.com/10999243/1767253
puppet 、saltstack 、ansible个人使用的一点比较
原文地址:http://11009243.blog.51cto.com/10999243/1767253