设为首页 收藏本站
查看: 1430|回复: 0

[经验分享] SaltStack基础入门

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-29 10:37:11 | 显示全部楼层 |阅读模式
目录
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

wKiom1fANJaCv24nAACIJGtfnVI971.jpg

                           

不过有必要提一点salt对Windows支持可能不太好,并且没有Windows的master端,因此十分不建议大家在windows上使用salt

6:安装配置saltstack(master端)


1.安装saltstack需要配置epel源

wget -O /etc/yum.repos.d/epel.repo
spacer.jpg
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
spacer.jpg
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

同意并接受全部主机

-a

指定接收的主机,支持通配符操作

-D

删除全部已被管理主机(但是不建议这么做)

-d

指定主机,不在管理的指定主机


这里我们使用-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:

状态说明:

主机状态

中文解释

Unaccepted Keys:

未被接受或同意的主机key

Denied Keys:

已经被拒绝的主机key

Rejected Keys:

明确拒绝的key,主接收任何通信

Accepted Keys:

已经同意被管理的主机key

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”


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-264653-1-1.html 上篇帖子: 配置普通用户可以运行saltstack的模块 下篇帖子: 部署自动化运维工具SaltStack
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表