SaltStack实战之配置管理-YAML编写技巧
2017-06-13 08:38
423 查看
SaltStack实战之配置管理-YAML编写技巧
@(学习)[SaltStack]SaltStack实战之配置管理-YAML编写技巧
概述和内容
YAML编写技巧
1 缩进
2 冒号
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实战之配置管理-YAML编写技巧
- SaltStack实战之配置管理-状态间关系
- SaltStack实战之配置管理-状态间关系
- SaltStack远程控制、配置管理与实战介绍
- SaltStack实战之配置管理-LAMP自动化部署
- SaltStack实战之配置管理-LAMP自动化部署
- SaltStack远程控制、配置管理与实战介绍
- 基于SaltStack完成LVS的配置管理
- 系统自动化配置和管理工具:SaltStack
- saltstack配置管理
- Salt Stack初探之另外一种用Python写的配置管理系统(saltstack实例)
- 基于SaltStack完成LVS的配置管理
- 关于Saltstack halite 配置管理及二次开发ui [原salt-ui] 推荐
- saltstack之(九)配置管理源码部署Nginx
- 配置管理工具Saltstack 之 自定义grains
- Saltstack配置管理之牛刀小试
- 实践SaltStack安装和配置管理
- SaltStack配置管理-业务引用keepalived
- Saltstack实战配置client_acl
- 运维自动化之Saltstack(五)配置管理