SaltStack自动化运维——YAML语法、SaltStack部署httpd服务、SaltStack源码安装nginx

一、YAML语法

默认的SLS文件的renderer是YAML renderer。 YAML是一个有很多强大特性的标记性语言。 Salt使用了一个YAML的小型子集,映射非常常用的数据结构,像列表和字典。YAML renderer的工作是将YAML数据格式的结构编译成为Python数据结构给Salt使用。

1、缩进

YAML使用固定的缩进表示数据层结构关系。Salt需要每个缩进级别由两个空格组成。不要使用tabs。

2、冒号

Python的字典当然理所当然是简单的键值对。其他语言的用户应该知道这个数据类型叫哈希表或者关联数组。

字典的keys在YAML中的表现形式是一个以冒号结尾的字符串。Values的表现形式冒号下面的每一行,用一个空格隔开:

my_key: my_value

在Python中,上面的将映射为:

{
   'my_key': 'my_value'}

另一种选择,一个value可以通过缩进与key联接。

my_key:
  my_value

注解

上面的语法是有效的YAML,但是在SLS文件罕见,因为通常情况下,一个key的value不是单一的,而是一个 列表 的values。

在Python中,上面的将映射为:

{
   'my_key': 'my_value'}

字典可以被嵌套:

first_level_dict_key:
  second_level_dict_key: value_in_second_level_dict

在Python中:

{
   
    'first_level_dict_key': {
   
        'second_level_dict_key': 'value_in_second_level_dict'
    }
}

3、短横杠

想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分。

  • list_value_one
  • list_value_two
  • list_value_three

列表可以可以作为一个键值对的value。这个在Salt很常见:

my_dictionary:

  • list_value_one
  • list_value_two
  • list_value_three

在Python中,上面的将映射为:

{
   'my_dictionary': ['list_value_one', 'list_value_two', 'list_value_three']}

二、部署httpd服务

1、查看默认寻找目录/srv/salt

[root@server1 salt]# vim /etc/salt/master
 534 file_roots:
 535   base:
 536     - /srv/salt    #安装脚本的基础位置,默认寻找目录为/srv/salt
 
[root@server1 ~]# mkdir /srv/salt
[root@server1 ~]# systemctl restart salt-master
[root@server1 ~]# cd /srv/salt/
[root@server1 salt]# mkdir apache

2、编写数据配置文件 install.sls以.sls结尾

[root@server1 salt]# cd /srv/salt/apache
[root@server1 apache]# cat install.sls
apache-install:      #id名称不能重复
  pkg.installed:      #安装的软件
    - pkgs:   
      - httpd
      - httpd-tools 

  file.managed:        #对文件的管理
    - name: /etc/httpd/conf/httpd.conf     #将source中的文件推送到name的位置
    - source: salt://apache/file/httpd.conf  
    	#source:来源  salt:/--salt服务端基于目录/srv/salt
    
  service.running:    #关于服务的启动
    - name: httpd     #启动httpd服务
    - enable: true     #开机自动启动
    - reload: true      #重启,每次修改配置文件,都会触发重启,可以声明以reload方式重启。
    - watch:		 #监控文件,如果有变化则服务重启
      - file: /etc/httpd/conf/httpd.conf   #到apache-install唯一性文件声明中找file定义

3、执行:salt server3 state.sls apache.install

[root@server1 apache]# ls
apache.sls  files
[root@server1 apache]# salt server3 state.sls apache.apache  
	###调用状态模块的sls方法,执行apache目录下的apache文件,install.sls文件的sls后缀可不写
server3:
----------
          ID: apache-install
    Function: pkg.installed
      Result: True
     Comment: All 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值