第四章:SaltStack使用模块安装配置启动

  • A+
所属分类:SaltStack

 

模块使用方法:https://www.unixhot.com/docs/saltstack/ref/states/all/index.html#all-salt-states

  

本文通过写salt模块来了解服务的安装配置启动三个最常用的模块,在最后只启动http来测试。


使用以下三个最常用的模块安装LAMP

Ø   pkg:软件包安装(它是虚拟的,调用对应的包安装工具去安装我们需要的软件包)

Ø   file:文件管理

Ø   service:服务管理

  

  slsid有两种写法

     1. 自己声明一个id

     2. 自己可以不声明id,它会把路径作为id,建议统一起名管理。

  

开始写一个状态模块(模块里面默认是重上往下执行)

注意:一个id下面一个id只允许一个状态出现一次

  1. [root@linux-node1 web]# cat lamp.sls   
  2. lamp-install:        #注意:一个id只允许状态出现一次(自定义)  
  3.   pkg.installed:    #检测我们服务的状态,不存在就会去下载安装  
  4.     - pkgs:            #pkgs是installed方法的一个参数,将所有要装的包流出来(names=pkgs)  
  5.       - httpd  
  6.       - php  
  7.       - php-pdo  
  8.       - php-mysql  
  9.       - mariadb  
  10.       - mariadb-server  
  11.   
  12. apache-config:  
  13.   file.managed:       #推送文件  
  14.     - name: /etc/httpd/conf/httpd.conf      #master要推送覆盖的minion端的文件路径  
  15.     - source: salt://web/files/httpd.conf    #要推送的master端文件路径  
  16.     - user: root        #文件所属用户  
  17.     - group: root      #文件所属用户组  
  18.     - mode: 644      #文件读写权限  
  19.   
  20. apache-conf:  
  21.   file.recurse:       #推送目录  
  22.     - name: /etc/httpd/conf.d     #master端推送到minion端的路径  
  23.     - source: salt://web/files/apache-conf.d    #从master端那个路径下进行推送  
  24.   
  25. /etc/php.ini:         #如果使用路径作为这里的id,managed方法就不需要使用name这个参数啦  
  26.   file.managed:    #推送文件  
  27.     - source: salt://web//files/php.ini  
  28.     - user: root  
  29.     - group: root  
  30.     - mode: 644  
  31.   
  32. lamp-service:  
  33.   service.running:     #这里我们光启动httpd服务查看结果即可  
  34.     - name: httpd  
  35.     - enable: True  

    

#插小广告:文件内容的追加方法

  1. [root@linux-node1 base]# vim append.sls   
  2. /etc/profile:               #id路径  
  3.   file.append:            #模块和方法  
  4.     - text:  
  5.       - "#abcde-test"   #追加的内容  

 

提示:默认salt是有缓存的,文件必须改动缓存才会重新生成,缓存路径:/var/cache/salt/

   

执行过程过程说明:当masterminion执行时,会将你再master端写的文件发送到minion/etc/salt/minion/files/目录下,然后minion端再去执行。

lamp.sls边写完之后这里我不执行,再编写个高级状态,然后执行高级状态(当然也乐意直接使用state.sls去执行),top.sls文件内容如下:

  1. [root@linux-node1 base]# cat top.sls   
  2. base:  
  3.   'linux-node1.example.com':  
  4.     - web.lamp  
  5.   'linux-node2.example.com':  
  6.     - web.lamp  

    

执行前先进行测试执行是否成功:

  1. [root@linux-node1 base]# salt '*' state.highstate test=True  
  2. [root@linux-node1 base]# salt '*' state.highstate       #执行成功后查看结果  

  

    

zhaoyulin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: