SaltStack(四) 配置管理

一、配置管理

Salt使用State模块文件进行配置管理,使用YAML编写,以.sls结尾,如果进行配置管理首先需要再Master的配置文件中指定“file roots”的选项,Salt支持的环境的配置,比如开发环节、测试环境、生产环境,但是base环境时必须的,而且base环境必须包含入口文件top.sls

第一步:设置file_roots

        修改Master配置文件,指定Flie_roots
        [[email protected]-server ~]# vim /etc/salt/master
        file_roots:
           base:
             - /srv/salt/
        创建相应的目录
            [[email protected]-server ~]# mkdir /srv/salt/ -p
        重启Salt_Master
            [[email protected]-server ~]# /etc/init.d/salt-master restart
            Stopping salt-master daemon:                               [确定]
            Starting salt-master daemon:                               [确定]

第二步:设置top.sls
        在top.sls入口文件设置环境(如生产、开发、测试对应不同的minion和模块)
            [[email protected] ~]# cat /srv/salt/top.sls
            base:
              ‘*‘:
              - apache
        解释:所有的Minion均执行base目录下的init模块下的pkg-int.sls,我们可以把很多的sls放在一个目录中,方便管理,在top.sls只需要指定目录结构即可。
    第三步:编写状态文件
        [[email protected] ~]# cat /srv/salt/apache.sls
        apache-install:
          pkg.installed:
            - names:
              - httpd
              - httpd-devel
        apache-service:
          service.running:
            - enable: True
            - reload: True
    第四步:执行状态
            [[email protected] ~]# salt ‘*‘ state.highstate
            salt-client:
            ----------
                      ID: apache-install
                Function: pkg.installed
                    Name: httpd
                  Result: True
                 Comment: The following packages were installed/updated: httpd
                 Started: 05:04:09.754956
                Duration: 32117.267 ms
                 Changes:
                          ----------
                          apr-util-ldap:
                              ----------
                              new:
                                  1.3.9-3.el6_0.1
                              old:
                          httpd:
                              ----------
                              new:
                                  2.2.15-55.el6.centos.2
                              old:
                          httpd-tools:
                              ----------
                              new:
                                  2.2.15-55.el6.centos.2
                              old:
            ----------
                      ID: apache-install
                Function: pkg.installed
                    Name: httpd-devel
                  Result: True
                 Comment: The following packages were installed/updated: httpd-devel
                 Started: 05:04:41.879147
                Duration: 31723.148 ms
                 Changes:
                          ----------
                          apr-devel:
                              ----------
                              new:
                                  1.3.9-5.el6_2
                              old:
                          apr-util-devel:
                              ----------
                              new:
                                  1.3.9-3.el6_0.1
                              old:
                          cyrus-sasl-devel:
                              ----------
                              new:
                                  2.1.23-15.el6_6.2
                              old:
                          db4-cxx:
                              ----------
                              new:
                                  4.7.25-20.el6_7
                              old:
                          db4-devel:
                              ----------
                              new:
                                  4.7.25-20.el6_7
                              old:
                          expat:
                              ----------
                              new:
                                  2.0.1-13.el6_8
                              old:
                                  2.0.1-11.el6_2
                          expat-devel:
                              ----------
                              new:
                                  2.0.1-13.el6_8
                              old:
                          httpd-devel:
                              ----------
                              new:
                                  2.2.15-55.el6.centos.2
                              old:
                          openldap-devel:
                              ----------
                              new:
                                  2.4.40-12.el6
                              old:
            ----------
                      ID: apache-service
                Function: service.running
                  Result: False
                 Comment: The named service apache-service is not available
                 Started: 05:05:13.606430
                Duration: 16.255 ms
                 Changes:
            
            Summary
            ------------
            Succeeded: 2 (changed=2)
            Failed:    1
            ------------
            Total states run:     3
        根据上面的设置,执行完状态后。Salt会检查Minion上是否有上面编写的三个软件包。如果没有就会自动使用Yum安装上。
        启动httpd服务
        [[email protected] ~]# salt ‘*‘ cmd.run ‘/etc/init.d/httpd start‘
        salt-client:
            Starting httpd: httpd: apr_sockaddr_info_get() failed for salt-client
            httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName
            ?[60G[?[0;32m  OK  ?[0;39m]
    
    第五步:操作练习
    
    下面是我生产安装Haproxy的案例,使用的源码,你参考下。
    
    
    haproxy-install:
    file.managed:
    - name: /usr/local/src/haproxy-1.5.3.tar.gz
    - source: salt://haproxy/files/haproxy-1.5.3.tar.gz
    - mode: 755
    - user: root
    - group: root
    cmd.run:
    - name: cd /usr/local/src && tar zxf haproxy-1.5.3.tar.gz && cd haproxy-1.5.3 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
    - unless: test -d /usr/local/haproxy
    - require:
    - file: haproxy-install
    
    /etc/init.d/haproxy:
    file.managed:
    - source: salt://haproxy/files/haproxy.init
    - mode: 755
    - user: root
    - group: root
    - require:
    - cmd: haproxy-install
    
    net.ipv4.ip_nonlocal_bind:
    sysctl.present:
    - value: 1
    
    haproxy-config-dir:
    file.directory:
    - name: /etc/haproxy
    - mode: 755
    - user: root
    - group: root
    
    haproxy-init:
    cmd.run:
    - name: chkconfig --add haproxy
    - unless: chkconfig --list | grep haproxy
            - require:
            - file: /etc/init.d/haproxy

时间: 2025-01-13 04:28:05

SaltStack(四) 配置管理的相关文章

Saltstack API 配置管理

Saltstack是个运维自动化管理工具 在运维当中还是相当不错的 批量管理 分发软件 安装软件部署 也可以收集一些 服务器的信息 可以做CMDB资产管理 还有salt提供了很方便的API 提供给第三方使用 salt api安装 在已经安装好的主salt master上面 安装api yum -y install salt-api 安装完成之后 获取token curl -k http://10.20.0.100:8080/login -H "Accept: application/x-yaml

4、SaltStack之配置管理

配置管理小试 这里有三个环境,base环境,测试环境,生产环境 注意: 1.base环境一定要有 2.top.sls(topfile)是入口文件,必须放在base环境下 # vim /etc/slat/master ... file_roots: base: - /srv/salt/base test: - /srv/salt/test prod: - /srv/salt/prod ... # systemctl restart salt-master 创建对应的环境目录 # mkdir /sr

saltstack之(九)配置管理源码部署Nginx

场景:rpm包安装的nginx服务,无法满足定制模块的需求,故线上环境使用nginx源码进行安装.本片文章详细介绍如何使用saltstack的配置管理功能实现nginx软件的源码安装. 下载源码:pcre下载源码:nginx 1.修改master配置文件,指定环境为prod. [[email protected] prod]# egrep -A 6 ^file_roots /etc/salt/master file_roots: base: - /srv/salt/base dev: - /sr

saltstack之(八)配置管理部署LAMP

场景:公司有10台服务器需要安装lamp测试环境,使用saltstack编写state文件进行批量部署,可以提高工作效率,减少人为出错的可能性,保证环境的一致性. saltstack之配置管理lamp实战案例: 1.修改master配置文件,指定dev环境. [[email protected] dev]# egrep -A 4 ^file /etc/salt/master file_roots: base: - /srv/salt/base dev: - /srv/salt/dev 2.编写s

SaltStack (一)

SaltStack介绍 saltstack是一个开源的批量分发管理工具,具有非常强大的管理功能,能同时管理上万台服务器.由python语言编写,并提供API. saltstack有四种运行方式:Local, Master/Minion, Salt SSH,Syndic saltstack有三大功能:远程执行,配置管理(状态),云管理. saltstack支持多种常见的操作系统,包括Windows(只能做为minion). saltstack是依赖于ZeroMQ来实现的(订阅发布模式),监听450

saltstack安装部署与入门使用

一.saltstack简介 SaltStack 一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion.SaltStack 具备配置管理.远程执行.监控等功能,一般可以理解为是简化版的 Puppet 和加强版的 Func.SaltStack 本身是基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ 与 Python 第三方模块(Pyzmq.PyCrypto.Pyjinjia2.python-msgpack 和 PyYAML

Saltstack自动化运维工具 实战与部署

自动化工具比较 Puppet也许是四款工具中最深入人心的.就可用操作.模块和用户界面而言,它是最全面的.Puppet呈现了数据中心协调的全貌,几乎涵盖每一个运行系统,为各大操作系统提供了深入的工具.初始设置比较简单,只需要在需要加以管理的每个系统上安装主服务器和客户端代理软件.命令行接口(CLI)简单直观,允许通过puppet命令下载和安装模块.然后,需要对配置文件进行更改,好让模块适合所需的任务;应接到指令的客户端与主服务器联系时,会更改配置文件,或者客户端通过立即触发更改配置文件的推送(pu

saltstack集合

saltstack集合 saltstack(一):   saltstack简介 saltstack(二):   saltstack安装及配置 saltstack(三):   saltstack远程执行 saltstack(四):   saltstack配置管理-常用模块介绍 saltstack(五):   saltstack配置管理-minion端安装apache简单样例 saltstack(六):   saltstack配置管理-高级状态top.sls saltstack(七):   salt

saltstack 自动化运维神器(二)

文件同步: 其实在做openstack的运维对一些文件的同步其实是很繁琐.有一个配置项或者一行代码的源码文件进行同步.那么现在我们就开始介绍saltstack的文件同步功能 环境说明:操作系统版本:rhel6.5x64 1.master配置同步根目录 在开始saltstack的配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作 ## 首先修改master的配置文件,指定根目录,注意缩进全部使用两个空格来代替Tab(python规范)## 确定指定的目录是否