目录
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 -y rpm -qa salt-master
3.设置saltstack开机自动启动 chkconfig salt-master on
4.配置/etc/salt/master文件 [iyunv@m01 ~]# vim /etc/salt/master -------#修改位置1 file_roots: 将此处的注释取消 (406行) base: 前面必须有两个空格 (407行) –/srv/salt 前面必须有四个空格 (408行) -------#修改位置2 pillar_roots: 将此处的注释取消 (529行) base: 前面必须有两个空格 (530行) - /srv/pillar 前面必须有四个空格
5.将saltstack服务启动 [iyunv@m01 ~]# /etc/init.d/salt-master start Starting salt-masterdaemon: [ OK ] 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 -y rpm -q salt-minion
3.配置/etc/salt/minion文件 [iyunv@nfs01 /]# 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/minion sed -i '78i id: web01' /etc/salt/minion
4.设置saltstack客户端开机自启动 chkconfig salt-minion on chkconfig --list salt-minion
5.将minion服务进行启动 [iyunv@web01 ~]# /etc/init.d/salt-minion start Starting salt-miniondaemon: [ OK ]
6.当我们回到master管理端执行salt-key命令就可以看到被找到的客户端 [iyunv@m01 ~]# salt-key Accepted Keys: Denied Keys: Unaccepted Keys: web01 Rejected Keys:
以上结果显示,等待管理的主机有web01 8:salt-key命令的使用
常见参数:
这里我们使用-A参数,同意并管理saltstack的所有客户端的主机 [iyunv@m01 ~]# salt-key -A The following keys are going to be accepted: Unaccepted
Keys: web01 Proceed? [n/Y] Y 这里配置选择同意 Key for minion web01 accepted.
[iyunv@m01 ~]# salt-key 当我们再次查看的时候就会发现已经被管理 Accepted
Keys: web01 表示已经被saltstack master端管理 Denied Keys: Unaccepted Keys: Rejected Keys: 状态说明: 9:saltstack远程执行命令
命令简单语法:salt “目标” 模块.方法 “命令”
--------增加一台机器,web02 一:检查主机存活状态 下面我们来执行第一个远程命令(利用test模块来ping以下是否成功管理) [iyunv@m01 ~]# sasalt "*" test.ping web01: True web02: True
salt“*” test.ping #注意这里支持通配符哦,*表示所有,当然依旧也可以指定主机,在这里面test表示模块而ping则是方法。注意这里面的ping可不是Linux里面ICMP协议的ping是salt自己独有的东西,True表示成功
二:批量执行命令
查看所有被管理端的磁盘利用率(批量执行命令) [iyunv@m01/]# salt "*" cmd.run "df -h" web01: Filesystem Size Used Avail 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 web02: Filesystem Size Used Avail Use% Mounted on /dev/sda3 6.2G 1.5G 4.4G 26% / tmpfs 242M 12K 242M 1% /dev/shm /dev/sda1 190M 36M 145M 20% /boot
通过远程执行命令查看客户端的内存使用情况 [iyunv@m01/]# salt "*" cmd.run "free -h" web01: total used free shared buffers cached Mem: 475M 313M 161M 236K 19M 198M -/+ buffers/cache: 95M 379M Swap: 767M 0B 767M web02: total used free shared buffers cached Mem: 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参数。因此这个模块非常之强大。
二:批量传输复制文件 [iyunv@m01 /]# 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这个模块这个缺点,不支持交互式的命令 [iyunv@m01 ~]# salt “*” cmd.run “vim /etc/hosts”
|