关闭

SaltStack实战之配置管理-YAML编写技巧

标签: yamlsaltstack
588人阅读 评论(0) 收藏 举报
分类:

SaltStack实战之配置管理-YAML编写技巧

@(学习)[SaltStack]

1. 概述和内容

salt包含一个健壮且灵活的配置管理框架,它构建在远程执行核心上。这个框架运行于minion上,它通过特定呈现语言的state文件,即可轻松地同时配置成千上万的主机。

后面配置管理所介绍的内容有:
* file_roots
设置状态文件的位置

  • env
    Base环境
    开发、测试、预生产环境、生产环境

  • SLS
    YAML
    Jinja
    编写技巧

  • state模块
    file
    pkg
    service
    cmd

  • state关系
    require
    require_in
    watch
    watch_in
    unless
    onlyif

  • 实践案例
    LAMP
    LNMP
    Zabbix
    Haproxy+keepalived

  • 项目实战
    OpenStack自动化部署

2. YAML编写技巧

2.1 缩进

  • YAML使用一个固定的缩进风格表示数据层结构关系。salt需要每个缩进级别使用2个空格。
  • 不要使用table键。

2.2 冒号

冒号2边表示key和value。

my_key: my_value
    second_key: second_value

2.3 短横线

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

my_dictionary:
  - list_value_one
  - list_value_two
  - list_value_three

3. 同步文件实战

下面介绍同步Linux下dns配置文件/etc/resolv.conf

vim /etc/salt/master

state_top: top.sls

file_roots:
  base:
    - /srv/salt
  dev:
    - /srv/salt/dev
  test:
    - /srv/salt/test
  prod:
    - /srv/salt/prod
[root@salt-master112 salt]# mkdir dev test prod
[root@salt-master112 salt]# cat top.sls 
yaml
base:
  '*':
    - init.dns
[root@salt-master112 salt]# cat init/dns.sls 
/etc/resolv.conf:
  file.managed:
    - source:
      - salt://init/files/resolv.conf
    - user: root
    - group: root
    - mode: 644
[root@salt-master112 salt]# cat init/files/resolv.conf 
nameserver 10.1.0.2
nameserver 114.114.114.114

执行文件同步

[root@salt-master112 salt]# salt '*' state.highstate
node1.test.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 17:50:20.016276
    Duration: 39.221 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,3 +1,2 @@
                  -# Generated by NetworkManager
                   nameserver 10.1.0.2
                   nameserver 114.114.114.114

Summary for node1.test.com
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  39.221 ms
master.test.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 01:47:36.747919
    Duration: 32.041 ms
     Changes:   
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1,3 +1,2 @@
                  -# Generated by NetworkManager
                   nameserver 10.1.0.2
                   nameserver 114.114.114.114

Summary for master.test.com
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  32.041 ms
node2.test.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 17:50:20.642481
    Duration: 58.623 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,3 +1,2 @@
                  -# Generated by NetworkManager
                   nameserver 10.1.0.2
                   nameserver 114.114.114.114

Summary for node2.test.com
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  58.623 ms
[root@salt-master112 salt]# .test.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 01:40:04.210096
    Duration: 29.966 ms
     Changes:   
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1,2 +1,3 @@
                   # Generated by NetworkManager
                   nameserver 10.1.0.2
                  +nameserver 114.114.114.114

Summary for master.test.com
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  29.966 ms
node1.test.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 17:42:47.647214
    Duration: 50.04 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,2 +1,3 @@
                  -
                  +# Generated by NetworkManager
                   nameserver 10.1.0.2
                  +nameserver 114.114.114.114

Summary for node1.test.com
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  50.040 ms
node2.test.com:
----------
          ID: /etc/resolv.conf
    Function: file.managed
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 17:42:48.218295
    Duration: 70.125 ms
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -1,2 +1,3 @@
                  -
                  +# Generated by NetworkManager
                   nameserver 10.1.0.2
                  +nameserver 114.114.114.114

Summary for node2.test.com
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  70.125 ms

在minion端查看下/etc/resolv.conf

[root@im109 ~]# cat /etc/resolv.conf
nameserver 10.1.0.2
nameserver 114.114.114.114
[root@im109 ~]# 

发现文件已更新。

0
0
查看评论

实践SaltStack安装和配置管理

1
  • picture1213
  • picture1213
  • 2015-01-22 15:06
  • 793

saltstack配置管理

vim /etc/salt/master mkdir /srv/salt -p
  • xiegh2014
  • xiegh2014
  • 2016-08-07 13:12
  • 668

SaltStack实战之配置管理-Jinja2模板

SaltStack实战之配置管理-Jinja2模板 1. Salt yaml配置文件使用Jinja2模板介绍 1.1 File状态使用template参数 1.2 模板文件里面变量使用{{ 名称 }} 1.3 变量列表 2. 实战应用
  • ygqygq2
  • ygqygq2
  • 2017-06-16 10:02
  • 657

自动化管理工具Saltstack之Pillar篇(11)

相对于Grains的静态参数,Pillar可以配置更灵活的参数,熟练地运用Pillar可以十分强大的发挥Saltstack的威力。 Pillar的配置设定在/srv/pillar目录下,使用Pillar须有/srv/pillar/top.sls文件,下面通过实例来熟悉Pillar的用法 1.设定管理...
  • hnhuangyiyang
  • hnhuangyiyang
  • 2015-12-27 20:58
  • 2660

SaltStack实战之配置管理-LAMP自动化部署

SaltStack实战之配置管理-LAMP自动化部署 1. 部署思路 2. 编写lamp.sls
  • ygqygq2
  • ygqygq2
  • 2017-06-15 10:11
  • 381

SaltStack实战之配置管理-状态间关系

SaltStack实战之配置管理-状态间关系 1. 状态相关模块 1.1 pkg 1.2 file 1.3 service 1.4 requisites 2. 实际应用
  • ygqygq2
  • ygqygq2
  • 2017-06-16 09:00
  • 287

SaltStack实战应用

Saltstack是基于Python开发的一套C/S架构配置管理工具,轻松管理上万台服务器,服务器之间实现秒级通讯。
  • qq_30004245
  • qq_30004245
  • 2017-11-02 11:14
  • 372

配置管理工具Saltstack 之 自定义grains

salt master配置 # cat /etc/salt/master|grep -v '#' interface: 192.168.xxx.xxx worker_threads: 15 auto_accept: True file_roots: b...
  • qq942477618
  • qq942477618
  • 2016-12-13 11:51
  • 492

Saltstack配置状态同步管理

SaltStack State的数据有两种表现形式,分别是High State与Low State。High State是用户可见的数据,而Low State则是由Salt提取并使用的数据。其它这是同一份数据,只不过在不同场合使用了不同的展示形式。 服务、安装包或配置文件的状态同步,是State模...
  • watermelonbig
  • watermelonbig
  • 2017-09-15 08:56
  • 275

用开源自动化运维工具 SaltStack 在云平台中实现各主机统一配置管理

本文将主要介绍开源软件 SaltStack 自动化运维工具在大型云计算环境中,如何帮助管理员快速完成运维任务,降低运维工作量,提高效率。根据不同业务特性,进行配置,实现集中化管理、分发文件、采集服务器数据,规范业务等功能。原题:自动化运维工具 SaltStack 在云计算环境中的实践随着云计算技术的...
  • a26r2kF967hGAi
  • a26r2kF967hGAi
  • 2017-12-25 00:00
  • 110
    个人资料
    • 访问:53597次
    • 积分:1048
    • 等级:
    • 排名:千里之外
    • 原创:92篇
    • 转载:3篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论