lukyjyt 发表于 2016-8-29 10:37:11

SaltStack基础入门

目录
1:自动化运维可以实现的功能-----------------------------------------1
2:自动化发展的阶段-------------------------------------------------2
3:saltstack三大功能------------------------------------------------3
4:salt三种运行模式-------------------------------------------------4
5:salt支持的系-----------------------------------------------------5
6:安装配置saltstack(master端)------------------------------------6
7:安装配置saltstack(monion端)------------------------------------7
8:salt-key命令的使用-----------------------------------------------8
9:saltstack远程执行命令--------------------------------------------9

1:自动化运维可以实现的功能

(0)需求分析(1)机房设备上下架(2)系统初始化(3)应用环境初始化(4)应用的部署调试配置……………….(saltstack)(5)代码的发布(jenkins + ant + svn)(6)服务监控应用(7)数据备份虚拟化的优势:弹性,扩展性,充分利用硬件资源。 2:自动化发展的阶段1、标准化的制定,软件环境版本的统一。如果想做自动化必须要制定标准化,不然会产生很多问题。2、文档化:将搭建文档进行标准化2、工具化:使用统一的工具进行管理3、web化:4、平台化:5、服务化:6、智能化: 3:saltstack三大功能1.远程执行2.配置管理3.云管理 4:salt三种运行模式(1)local(本地,一台机器玩耍,不建议)(2)Master、Minion(通过server/agent的方式进行管理)1000台机器 25秒搞定(3)Salt SSH (通过SSH方式进行管理,效率很低)1000台机器 83秒搞定在这里有必要提一下salt的云管理,salt拥有强大的云管理功能,更支持如阿里云、亚马逊等一系列公有云的管理,so以后在创建阿里云主机的时候,就可以不需要登录相关账号密码,只需要一条命令即可创建。此外salt对openstack支持的也相当不错,同样能够管理openstack创建的虚拟机 5:salt支持的系统从官网来看salt支持的系统有很多,如下所示CentoS,RedHat,Fedora,Gentoo,Debian,MAC OS X,Ubutun,suse,freeBSD,OpenBSD                             不过有必要提一点salt对Windows支持可能不太好,并且没有Windows的master端,因此十分不建议大家在windows上使用salt 6:安装配置saltstack(master端)
1.安装saltstack需要配置epel源wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum repolist
2.安装master管理端yum install salt-master -yrpm -qa salt-master
3.设置saltstack开机自动启动chkconfig salt-master on
4.配置/etc/salt/master文件# vim /etc/salt/master-------#修改位置1file_roots:      将此处的注释取消   (406行) base:         前面必须有两个空格    (407行)    –/srv/salt    前面必须有四个空格    (408行)-------#修改位置2pillar_roots:      将此处的注释取消    (529行) base:            前面必须有两个空格    (530行)   - /srv/pillar   前面必须有四个空格
5.将saltstack服务启动# /etc/init.d/salt-master startStarting salt-masterdaemon:                   7:安装配置saltstack(monion端)
1.安装saltstack需要配置epel源wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum repolist
2.安装minion客户端yum install salt-minion -yrpm -q salt-minion
3.配置/etc/salt/minion文件# vim /etc/salt/minion# Set the location of the salt master server. Ifthe
master server cannot be# resolved, then the minion will fail to start.master: 172.16.1.61 将此行取消注释,并填写master管理端的IP地址(16行),冒号前必须空格
# Explicitly declare the id for this minion to use,
if left commented the id# will be the hostname as returned by the python
call: socket.getfqdn()# Since salt uses detached ids it is possible torun
multiple minions on the# same machine but with different ids, this can be
useful for salt compute# clusters.id: web01   将此行取消注释,这里是本机在管理端显示的名称(第78行 冒号前必须空格

当然要想简单也可以采用如下方法sed -i '17i master: 172.16.1.61' /etc/salt/minionsed -i '78i id: web01' /etc/salt/minion
4.设置saltstack客户端开机自启动chkconfig salt-minion onchkconfig --list salt-minion
5.将minion服务进行启动# /etc/init.d/salt-minion startStarting salt-miniondaemon:                     
6.当我们回到master管理端执行salt-key命令就可以看到被找到的客户端# salt-keyAccepted Keys:Denied Keys:Unaccepted Keys:web01Rejected Keys:
以上结果显示,等待管理的主机有web01 8:salt-key命令的使用
常见参数:
参数解释
-A同意并接受全部主机
-a指定接收的主机,支持通配符操作
-D删除全部已被管理主机(但是不建议这么做)
-d指定主机,不在管理的指定主机

这里我们使用-A参数,同意并管理saltstack的所有客户端的主机# salt-key -AThe following keys are going to be accepted:Unaccepted
Keys:web01Proceed? Y         这里配置选择同意Key for minion web01 accepted.
# salt-key   当我们再次查看的时候就会发现已经被管理Accepted
Keys:web01               表示已经被saltstackmaster端管理Denied Keys:Unaccepted Keys:Rejected Keys:状态说明:
主机状态中文解释
Unaccepted Keys:未被接受或同意的主机key
Denied Keys:已经被拒绝的主机key
Rejected Keys:明确拒绝的key,主接收任何通信
Accepted Keys:已经同意被管理的主机key
9:saltstack远程执行命令

命令简单语法:salt “目标” 模块.方法 “命令”
--------增加一台机器,web02一:检查主机存活状态下面我们来执行第一个远程命令(利用test模块来ping以下是否成功管理)# sasalt "*" test.pingweb01:    Trueweb02:    True
salt“*” test.ping    #注意这里支持通配符哦,*表示所有,当然依旧也可以指定主机,在这里面test表示模块而ping则是方法。注意这里面的ping可不是Linux里面ICMP协议的ping是salt自己独有的东西,True表示成功
二:批量执行命令
查看所有被管理端的磁盘利用率(批量执行命令) # salt "*" cmd.run "df -h"web01:Filesystem      SizeUsed   AvailUse%Mounted on/dev/sda3      6.2G1.5G4   4G    26%    /tmpfs         242M12K    242M   1%   /dev/shm/dev/sda1      190M36M    145M   20%   /bootweb02:Filesystem      Size   UsedAvail   Use%   Mounted on/dev/sda3      6.2G   1.5G4.4G    26%    /tmpfs         242M   12K   242M    1%   /dev/shm/dev/sda1      190M   36M   145M    20%    /boot
通过远程执行命令查看客户端的内存使用情况 # salt "*" cmd.run "free -h"web01:         total    used    free   shared    buffers   cachedMem:       475M   313M    161M    236K   19M       198M-/+ buffers/cache:   95M   379MSwap:   767M   0B   767Mweb02:         total    used   free   shared    buffers   cachedMem:       475M   316M   159M    236K      22M       198M-/+ buffers/cache:   95M      379M Swap:      767M   0B      767M
salt"*" cmd.run "free -h"#其中cmd为模块,而run是方法df -h则是传入的参数.此时就能够返回各个主机的磁盘使用情况。cmd下的run方法后面可以接任何shell参数。因此这个模块非常之强大。
二:批量传输复制文件# salt-cp "*" /test.txt / 'web01':{'/test.txt': True}, 'web02':{'/test.txt': True}}
salt-cp "*" /test.txt /#这是批量执行拷贝传输文件的命令,是将master的test.txt文件复制到所有monion端的根(/)下'/test.txt': True 表示成功
----------------------------------------------------------------------# 针对cmd.run这个模块这个缺点,不支持交互式的命令# salt “*” cmd.run “vim /etc/hosts”
页: [1]
查看完整版本: SaltStack基础入门