saltstack:apache安装以及主文件修改

远程操做:html

salt ‘*’  cmd.run  "uptime"apache



一 实例操做:服务器


1 说明:yum安装apache 而且在master端同步httpd.conf文件,并且当这个文件修改时重启apacheide

2 结构目录测试

[root@slave salt]# tree htm

.对象

├── apachecmd

│   ├── apache.sls同步

│   └── httpd.confit

├── top.sls


top.sls:是salt的入口 执行的第一个文件

apache.sls:具体的操做写在这里

httpd.conf:须要同步到客户端的apache主配置文件



[root@slave salt]# cat top.sls
base:                     ##base语法告诉Salt这是基础配置文件
  '*':                    ## 被执行的对象 *表示全部的客户端 能够在这单独写某一个客户端的ID 如slave-142
    - apache.apache       ## 第一个apache是在/srv/salt/ 的目录 第二个实际上是apache.sls 可是这里能够直接写成apache
  'slave-142':            ## 单指一台期机器
    - ntp.sls




[root@slave salt]# cat apache/apache.sls
apache:                                      ##ID标识 能够随意取
  pkg:                                       ##安装包管理
    - name: httpd                   
    - installed               ##执行安装操做
  service:                                   ##服务管理
    - name: httpd                           
    - running                                ##保证上述的httpd服务启动
    - reload: True                           ##观察watch制定的文件 要是文件有修改 重启
    - enable: True                           ##服务开启启动
    - watch:
       - file: /etc/httpd/conf/httpd.conf    ##客户端的配置文件



/etc/httpd/conf/httpd.conf:            ##客户端的配置文件
  file.managed:                        ##文件管理
    - source: salt://apache/httpd.conf  ##服务器端本地的文件和路径  salt//这个配置在master中配置 默认是在/srv/salt/ 须要开启注视
    - user: root
    - group: root
    - mode: 644
    - backup: minion                    ##执行操做前备份



执行操做:

因为以前我过操做 httpd已经成功安装 此次测试的是修改了httpd.conf文件

[root@slave salt]# salt '*' state.highstate
68:
----------
          ID: apache
    Function: pkg.installed
        Name: httpd
      Result: True
     Comment: Package httpd is already installed
     Changes:  
----------
          ID: /etc/httpd/conf/httpd.conf
    Function: file.managed
      Result: True
     Comment: File /etc/httpd/conf/httpd.conf updated
     Changes:  
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1007,5 +1007,5 @@
                   #    ErrorLog logs/dummy-host.example.com-error_log
                   #    CustomLog logs/dummy-host.example.com-access_log common
                   #</VirtualHost>
                  -####hihi test###    修改的时候去掉了这行
                  -###test    #   修改的时候去掉了这行
                  +####20140414  test###  新添加行
                  +###test 2014   #新添加行
                       
----------
          ID: apache
    Function: service.running
        Name: httpd
      Result: True
     Comment: Service reloaded
     Changes:  
              ----------
              httpd:
                  True
Summary
------------
Succeeded: 3
Failed:    0
------------
Total:     3



当你在一个sls中写有多个操做可是要只操做一个   salt '*' state.highstate exclude="[{'id':'httpd'}]"  -t 60

当不须要操做全部的客户端 能够 salt 'slave-143'   state.highstate 只操做一台机器

当只想操做一个sls文件  salt 'slave-143' state.sls  httpd  ##对143这个客户端执行httpd.sls文件操做

相关文章
相关标签/搜索