您的位置:首页 > 其它

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

2017-06-13 08:41 435 查看

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

学习
SaltStack
SaltStack实战之配置管理-YAML编写技巧
1. 概述和内容

2. YAML编写技巧
2.1 缩进

2.2 冒号

2.3 短横线

3. 同步文件实战

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 ~]#
发现文件已更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  saltstack