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

[经验分享] (三)slatstack配置管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-21 09:38:52 | 显示全部楼层 |阅读模式
相关配置修改

在执行salt命令之前,我们需要对master的配置文件进行修改。

vim /etc/salt/master
第一步搜索fire_roots,并去掉之前的注释部分

# file_roots:
#   base:
#     - /srv/salt/
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
#   prod:
#     - /srv/salt/prod/services
#     - /srv/salt/prod/states
#

file_roots:
  base:
    - /srv/salt


在这里有个特别需要我们注意的问题,一定要确保file_roots前面没有空格,而base前两个空格-前面四个空格,在salt的配置里面空格十分重要,我们必须高度注意,否则及其容易造成实验不成功,之所以对空格敏感主要salt基于Python开发,并采用了yaml的语法.(注意注意注意,不要使用tab键)
有必要解释下相关配置内容:
base:代表环境(默认必须有),可就是说salt可以同时管理多个环境,比如测试、开发、生产等环境。其实从我们修改的行上方不难我们不难看出,salt拥有针对多环境的特点。至于底下的小- 则代表状态文件存放路径,可能有些同学对这个状态文件有些疑惑,我们拿软件安装来讲,我们想要批量安装,环境标准化。我们总得告诉系统,我们要安装什么,怎么安装。这时候我们就需要一个文件为系统指明,这个文件就是上面的状态文件。要注意-和后面的路径有中间有一个空格哦


第二步:创建状态文件存放目录
mkdir /srv/salt -p
第三步:状态文件编写(本次以安装Apache为例)
cd /srv/salt
vim apache.sls    #至于为什么以.sls结尾,在后面介绍将会告诉大家

[iyunv@master salt]# cat apache.sls  #-->配置文件的路径一定要是sls后缀
apache-install:                        #1-->这里只是设置一个名称
  pkg.installed:                #2-->这是一个方法,用来安装YUM软件的(前面两个空格)
    - names:                        #3-->以软件的名称方式安装(前面四个空格)
      - httpd                        #4-->指定安装的软件(前面六个空格)
      - httpd-devel                #5-->

apache-service:                        #6-->
  service.running:                #7-->
    - name: httpd                #8-->
    - enable: True                #9-->
    - reload: True                #10-->



上面apache.sls配置文件说明:

apache-install: #ID(唯一标识符)
 pkg.installed: #pkg为模块 installed为方法
  - names: # names为installed的参数 后面可以是要安装包的列表
  - httpd #安装程序包
  - httpd-devel #安装程序包
apache-service: #ID唯一标识
 service.running: #service为模块 running为方法
  - name: httpd #运行服务名称
  - enable: True #服务开机自动启动



配置文件说明:

1代表功能说明,这一行目的是方便用户使其他用户能够清楚认识该状态模块的功能,注意不要丢掉结尾的冒号
2代表采用pkg模块的installed方法。(为了方便理解我们可以把模块理解为职业而方法理解为这个职业拥有的技能),这里有必要说下install这个方法,这个方法在centos机器上会采用yum方式进行安装,而在Ubuntu上则采用apt方式安装,注意与开头空两个空格结尾有冒号
3是installed方法的参数,- names作用是指定安装包(注意结尾的冒号以及开头的4个空格)
4和5是要安装的软件包(注意开头的6个空格)
6789则和上面的信息有些类似
6同样代表功能说明,而7是代表采用了service的running方法。8代表要操作的服务名称9代表安装完成之后是否启动,10代表当配置文件修改之后,是否自动重载

第四步:重启master然后开始执行
salt '*' state.sls apache     #其中salt为命令不必多说 ‘*’代表在所有主机上,state则是模块而sls则是方法(这是由于这个方法所以我们之前所采用的后缀才为sls)而apache则是我们之前编写的状态文件名(不包含后缀),也是给前面传入的参数。所以这条命令就是在所有机器上执行apache这个状态
当执行此命令时,各个minion端将会开始工作,感兴趣的同学可以采用ps -ef|grep yum将会发现如下有趣的现象,发现yum自动工作了


上面命令的原理:
发送/src/salt/web/apache.sls到minion 端的/var/cache/salt/minion/extmods/files/base/apache.sls


第五步:验证返回=======

Summary
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3

从返回的数据可以看出都是正常返回,没有报错信息(报错信息默认红色显示)。可能有些小伙伴们会疑惑这个3是什么意思,其实我们可以回想一下,我们写了要安装httpd、httpd-devel以及在安装完成之后启动,还有在配置文件修改后重启。不过我们可以发现我们没有对配置文件进行任何操作,因此最后一项没有执行,所以才会显示Succeeded 3以及changed=3
接下来我们对网站进行验证





[iyunv@client ~]# netstat -lnptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      914/sshd
tcp        0      0 :::80                       :::*                        LISTEN      26645/httpd

可以访问测试一下客户端有没有安装成功httpd
http://192.168.1.160/




salt配置管理的高级状态
当然我们也可以根据不同的主机执行不同的状态配置文件,需要编辑top.sls即可实现(我们把这种状态称为高级状态)

#设置入口文件top.sls 实现根据不同的主机执行不同的配置文件



vim /srv/salt/top.sls
base:
  '*':      #要执行的主机
    - init  #需要执行的配置文件

#所有的minion都执行base目录下的init.sls,用init.sls进行系统的初始化配置

mkdir /srv/salt/files
cp /etc/resolv.conf /srv/salt/files

#文件管理
vim /srv/salt/init.sls
/etc/resolv.conf:
  file.managed:
    - source: salt://files/resolv.conf
    - mode: 644
    - user: root
    - group: root


#包管理
initpkgs:
  pkg.installed:
    - pkgs:
    - tree
    - lrzsz

# salt.states.user 和 salt.states.group 管理系统的用户和组
# 创建jboss 组,后创建 Jboss 用户
jboss:
  group.present:
    - gid: 501
  user.present:
    - fullname: jboss
    - password:          # 此处可以填写加密后的用户密码。即/etc/shadow 里面的 Hash 串。
    - shell: /bin/bash
    - home: /home/jboss
    - uid: 501
    - gid: 501
    - groups:
      - jboss

#服务启动管理
redis:
  service:
    - running
    - enable: True
    - reload: True
    - watch:
      - pkg: redis


可以指定哪台主机执行哪些配置
vim top.sls
base:
 'salt-client1.com':
  - apache
 'salt-client2.com':
  - apache



现在我们来根据不同主机执行不同的状态配置文件
[iyunv@master salt]# salt '*' state.highstate  #执行salt的高级状态



运维网声明 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-317214-1-1.html 上篇帖子: (二)slatstack远程执行 下篇帖子: (四)slatstack静态数据系统grains
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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