SaltSack入门(四)Salt常用模块使用

  1. 云栖社区>
  2. 博客>
  3. 正文

SaltSack入门(四)Salt常用模块使用

技术小阿哥 2017-11-13 15:54:00 浏览422 评论0

摘要: pkg模块: 1、安装一个软件 1 2 3 vim:   pkg.installed:     - name: vim-enhanced 2、安装多个软件 1 2 3 4 5 vim:   pkg.

pkg模块:

1、安装一个软件

1
2
3
vim:
  pkg.installed:
    - name: vim-enhanced

2、安装多个软件

1
2
3
4
5
vim:
  pkg.installed:
    - names:            #多个值时,要修改为复数,names
      - vim-enhanced
      - lrzsz

service模块:

1、安装apache,并启动

1
2
3
4
5
6
7
8
httpd:
  pkg.installed:
    - name: httpd
  service.running:
    enable: True
    - require:         
    #一个声明,用于定义状态之间的依赖,说明httpd如果安装了,才执行service.running模块
      - pkg: httpd     # pkg代表用的什么模块

2、将配置文件分发到apache服务器

1
2
3
file.managed:
  - name: /etc/httpd/conf/httpd.conf
  source: salt://apache/conf/httpd.conf

3、如果apache配置文件有变动,就重新加载配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
httpd:
  pkg.installed:
    - name: httpd
  file.managed:
    - name: /etc/httpd/conf/httpd.conf
    source: salt://test/httpd.conf
    - require:
      - pkg: httpd
  service.running:
    enable: True
    - reload: True
    watch:             
    #监控httpd.confp文件是否发生变化,是就重新加载httpd服务
      file/etc/httpd/conf/httpd.conf
    - require: 
      - pkg: httpd

cmd模块:

1、编译安装nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
nginx_source:
  file.managed:
    - name: /tmp/nginx-1.6.2.tar.gz
    - unless: test -f /tmp/nginx-1.6.2.tar.gz    
    #在这里用到了unless,就是做了个判断,判断有没有这个文件,如果没有就执行nginx_source ID,否则跳过
    source: salt://test/nginx-1.6.2.tar.gz
nginx_unzip:
  cmd.run:
    - cwd: /tmp
    - names: tar zxf nginx-1.6.2.tar.gz
    - unless: test -d /tmp/nginx-1.6.2
    - require:
      file: nginx_source
nginx_pkg:
  pkg.installed:
    - names:
      - gcc
      make
      - openssl-devel
      - pcre-devel
      - zlib-devel
nginx_install:
  cmd.run:
    - cwd: /tmp/nginx-1.6.2
    - name: ./configure --prefix=/usr/local/nginx1.6 && make && make install && /usr/local/nginx1.6/sbin/nginx   
    #这一块为什么不用names呢,我也想用,可是他不是按顺序执行的,而是随机执行里面的命令的,容易造成了混乱。
    - require:     
    #依赖两个ID状态,也就是必须有/tmp/nginx-1.6.2这个目录,和安装了gcc、make、pcre等这些依赖包,才执行nginx_install这个ID
      - cmd: nginx_unzip                
      - pkg: nginx_pkg
    - unless: test -d /usr/local/nginx1.6

在这里介绍编译安装nginx思路,其中用到了file、cmd.run、pkg模块。

file模块:

1、文件分发

1
2
3
4
file_cp:
  file.managed:
   - name: /etc/httpd/conf/httpd.conf
   source: salt://test/httpd.conf

2、目录分发

1
2
3
4
tmp_cp:
  file.recurse:
    - name: /tmp
    source: salt://tmp

3、创建目录并赋予权限

1
2
3
4
5
6
/opt/tmp:
  file.directory:
    - user: nginx
    - group: nginx
    - file_mode: 744
    - makedirs: True

user模块:

1、创建用户nginx

1
2
3
4
5
6
7
8
9
create_user:
  user.present:  #用户不存在则创建,否则管理用户属性
    - name: nginx
    #- uid: 1501
    #- gid: 1501
    - createhome: False
    - shell: /sbin/nologin
    #- groups:
    #  - nginx

2、删除用户nginx

1
2
3
del_user:
  user.absent:
    - name: abc

group模块:

1、创建组abc

1
2
3
4
5
6
7
8
9
10
create_group:
  group.present:
    - name: abc
    #- gid: 1501
    - addusers:     #添加哪些用户到此组
      - user1
      - user2
    #- delusers:     #从此组中删除哪些用户
    #  - u1
    #  - u2

2、删除组abc

1
2
3
del_group:
  group.absent:
    - name: abc

cron模块:

1、添加定时任务计划

1
2
3
4
5
6
script_cron:
  cron.present:
    - name: /bin/bash /opt/tmp/test.sh
    - user: root
    - minute: 01
    - hour: 0

注:minute:分

hour:时

daymonth:日

month:月

dayweek:周



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1679684,如需转载请自行联系原作者

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论