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

以下用一些实例说明salt一些常用的模块,进一步熟悉salt使用。

模块参考地址:http://docs.saltstack.cn/zh_CN/latest/ref/states/all/index.html

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:周

 

时间: 2024-11-03 17:16:14

SaltSack入门(四)Salt常用模块使用的相关文章

四种常用HTML5移动应用框架的比较

中介交易 SEO诊断 淘宝客 云主机 技术大厅 [编者按]本文译者范小虎,对于Mobile Web来说,现在是快速成长时代.由于采用了HTML5和CSS3技术,移动浏览器的性能加强了许多,同时,移动app的框架也扩展了,这意味着为移动设备创建丰富的互动的web体验的可行性又提升了. 本文通过对四种常用的框架进行比较,看看新技术带来了哪些改变. 采用诸如PhoneGap这样的封装软件,您就可以使用native app Store以及单个代码库,就可以分布式部署iPhone,iPad和Android

Thinkphp入门 四 —布局、缓存、系统变量 (48)

原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法   [页面跳转] [变量调节器] Smarty变量调节器 TP变量调节器:普通的php函数 (count  strlen   str_replace) 定义:前者的输出,是后者的输入 [子模板包含] 当前模块彼此包含        <include  file="模板名称"  /> [使用布局layout] 1. 开启布局,

iOS开发入门:iOS常用设计模式–委托模式案例实现

我们以UITextFieldDelegate为例来说明一下委托的使用. UITextFieldDelegate是控件UITextField的  委托,控件的委托主要负责响应控件事件或控制其他对象.除了UITextField,WebView.UITableView等控件也有相应的委托对象. 打开UITextFieldDelegate的API文档,其中有4个有关编辑的方法,还要3个其它方法. 开发入门:iOS常用设计模式–委托模式案例实现-"> 这里我们在编辑过程中消息的发送,UITextFi

Excel中四种常用类型图表的创建方法

Excel中四种常用类型图表的创建方法   上图中的四种不同类型的图表都是根据同一个表格创建的,也就是说,这四种常用的图表是没有特定的数据限制的. 一.创建柱形图 1.将光标定位到要创建图表的数据区域内,然后切换到"插入"选项卡,在"图表"组的"柱形图"下选择一种需要的柱形图类型进行创建. 2.现在工作表中已经插入了一个选择的柱形图. 二.创建条形图 1.将光标定位到表格区域内,然后选择一个合适的条形图类型进行创建. 2.现在工作表中已经插入了一

AppleWatch开发入门四——Table视图的应用

AppleWatch开发入门四--Table视图的应用 一.Watch上的Table         WatchOS中的TableView和iOS中的TableView还是有很大的区别,在开发之前,首先我们应该明白WatchOS中的Table有哪些局限性和特点.下面几点是我总结WatchOS中Table的特殊之处: 1.Table只有行的概念,没有分区的概念,没有头尾视图的概念. 2.可以通过创建多个Table,来实现分区的效果. 3.因为Watch上是通过Gruop进行布局适应的,所以没有行高

DevExpress XtraReports 入门四 创建 Web 报表

原文:DevExpress XtraReports 入门四 创建 Web 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助更多的人不会像我这样浪费时间才写的这篇文章,高手不想的看请路过 本文内容来DevExpress XtraReports帮助文档,如看过类似的请略过. 废话少说 开始正事 一.创建 Web 报表并绑定数据  启动 MS Visual Studio (2005.2008.或 2010). 新建一个 ASP.NET Web

apache常用模块介绍

mod_actions 基于媒体类型或请求方法,为执行CGI脚本而提供 mod_alias 提供从文件系统的不同部分到文档树的映射和URL重定向 mod_asis 发送自己包含HTTP头内容的文件 mod_auth_basic 使用基本认证 mod_auth_digest 使用MD5摘要认证(更安全,但是只有最新的浏览器才支持) mod_authn_alias 基于实际认证支持者创建扩展的认证支持者,并为它起一个别名以便于引用 mod_authn_anon 提供匿名用户认证支持 mod_auth

四个常用的.NET的SQLHELPER方法实例_实用技巧

本文所述实例有别于网上常见的由代码生成器生成的sqlhelper,比如动软.CodeSmith等生成的.其实代码生成器生成的sqlhelper很多的方法在实际开发中都是用不到的,考虑初学者如果封装类的方法太多,会造成一定的困扰,也会给他们增加负担,所以本文列举出了再实际运用中总结的四个比较常用的方法,其实,最常用的应该是两个,就是查和增删改,其它两个也是用的比较少的. 需要说明的是,sqlhelper在winform的开发中用的比较多,在asp.net和mvc的项目中用的封装类跟winform有

Python常用模块用法分析_python

本文较为详细的讲述了Python中常用的模块,分享给大家便于大家查阅参考之用.具体如下: 1.内置模块(不用import就可以直接使用) 常用内置函数: help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的nam