为什么要用自动化配置管理工具?
由于企业不断发展,传统运维已经跟不上步伐,现在都在招运维开发工程师,薪资也高不少,像我们这传统的运维显然遇到了瓶颈,薪资也是提不上去,所以要面临转型。
时不我待,转起大脑,向DevOPS迈进,首先熟练使用一个自动化配置管理工具,凭自己的了解,这样的工具有Puppet、Saltstack、Ansible、Fabric等,种类这么多,该学习哪个呢?于是在网上找一些招聘信息,寻找企业用的最多的一个工具,经了解,Puppet用的是最多的,可是学习成本相对较高,而且基于Ruby语言开发,比较陌生;SaltStack企业用的也不少,功能也强大,是Python开发的,还好自身也有一定的Python语言基础,学习起来相对好些。其他的用的比较少,就先不考虑了。开始行动吧!
SaltSack是什么?
由Python语言开发,因此安装配置很简单,具有很强的可扩展性;Salt和Puppet类似,分为管理端(master)和被管理端(minion),他们之间通过高性能的ZaroMQ通讯,能够管理上万台服务器。
SaltSack为我们做些什么?
系统软件安装和初始化、配置文件管理、定期执行任务、批量部署应用、远程执行命令等等,足够系统自动化运维了吧!
开始安装部署,尝试使用下,我这里使用的是Ubuntu系统,安装方式与RedHat系统不同,但操作命令都是一样的。
CentOS6安装方式:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum update
# yum install salt-master
# yum install salt-minion
1、安装管理端(Salt-master)
1
2
3
4
5
6
|
# sudo apt-get install python-software-properties
# sudo apt-get install software-properties-common
# echo deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudotee /etc/apt/sources.list.d/saltstack.list #添加salt网络源
# wget -q -O-"http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6"| sudo apt-key add - #添加秘钥
# sudo apt-get update
# apt-get install salt-master
|
2、安装被管理端(Salt-minion)
1
2
3
4
5
6
|
# sudo apt-get install python-software-properties
# sudo apt-get install software-properties-common
# echo debhttp://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudotee /etc/apt/sources.list.d/saltstack.list
# wget -q -O- "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6"| sudo apt-key add –
# sudo apt-get update
# apt-get install salt-minion
|
3、配置被管理端(管理端不用配置)
1
2
3
4
|
# vi /etc/salt/minion
master:192.168.1.10
#指定master地址
id
:host1
#唯一标识ID,用于在master显示
# /etc/init.d/salt-minion restart #重启minion生效
|
#管理端重启:/etc/init.d/salt-master restart
minion重启后,minion会尝试去master进行认证,minion第一次启动会在/etc/salt/pki/minion目录下生成minion.pem(私钥)和minion.pub(公钥),然后将minion.pub发给master,master通过salt-key -A命令接收公钥,并保存在/etc/salt/pki/master/minions目录
4、添加minion与master认证(以下基本都在master操作了)
#先在master查看所有认证主机
1
2
3
4
5
|
# salt-key -L
Accepted Keys:
host1
#此时颜色是红色的,说明通信没问题
Unaccepted Keys:
Rejected Keys:
|
#这时我们接收所有的认证请求
1
2
3
4
5
6
|
# salt-key –A
# salt-key -L
Accepted Keys:
host1
#此时颜色变绿,认证成功
Unaccepted Keys:
Rejected Keys:
|
5、测试是否运行正常
#执行一个内置test.ping命令,以下说明正常
#命令格式: 命令 对象 执行模块 参数
# salt '*' test.ping
host1:
True
#也可以运行Bash命令
# salt '*' cmd.run 'df -h'
本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1638043,如需转载请自行联系原作者