博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的例子了解states
阅读量:5371 次
发布时间:2019-06-15

本文共 1726 字,大约阅读时间需要 5 分钟。

 在大规模的配置管理工作中,我们要编写大量的states.sls文件。top.sls是states系统的入口文件,它负责指定哪些设备调用哪些states.sls文件。statse的默认工作目录是在/srv/salt目录下:

[root@master salt]# vim /etc/salt/master

599 file_roots:

600 base:
601 - /srv/salt/

 接下来我们以一个简单的例子来了解一下states文件。

<1>创建nginx目录,并且区分生产环境目录和测试环境目录。

[root@master salt]# pwd

/srv/salt
[root@master salt]# tree
.
├── nginx
│   ├── produced                                              //生产环境目录
│   │   ├── nginx.conf                             
│   │   └── nginx.sls
│   └── testing                                                  //测试环境目录
│   ├── nginx.conf
│   └── one.sls
└── top.sls                                                       //入口文件

 

<2>编辑一下states入口文件

[root@master salt]# vim top.sls

base:

'minion-1':                                           //代表匹配minion-1
- nginx.produced.nginx                       //引用nginx/produced/nginx.sls文件
'minion-2':                                           //代表匹配minion-2
- nginx.testing.nginx                           //引用nginx/testing/nginx.sls文件

 

<3>编辑生产环境的sls文件

[root@master salt]# vim nginx/produced/nginx.sls

/usr/local/nginx/config/nginx.conf:                                            //远端的需要管理的文件及路径

file.managed:
- source: salt://nginx/produced/nginx.conf                               //本地的文件地址
- user: root                                                                               //文件属主
- group: root                                                                             //文件属组
- mode: 755                                                                             //权限

 

<4>编辑nginx.conf文件以区别和测试环境的差异,在此我们就修改第一行

[root@master salt]# vim nginx/produced/nginx.conf

1 user  nginx nginx;

 

<5>编辑测试环境的sls文件

 [root@master salt]# vim nginx/testing/nginx.sls

/usr/local/nginx/config/nginx.conf:

file.managed:
- source: salt://nginx/testing/nginx.conf
- user: www
- group: www
- mode: 755

 

<6>编辑nginx.conf文件以区别和生产环境的差异,在此我们也修改第一行

[root@master salt]# vim nginx/testing/nginx.conf 

1 user  www www;

 

<7>执行生产环境的sls文件

[root@master salt]# salt 'minion-1' state.highstate

 

<8>去minion-1主机上看一下nginx.conf文件内容

[root@minion-1 ~]# vim /usr/local/nginx/config/nginx.conf

1 user nginx nginx;

 

<9>再执行测试环境的sls文件

[root@master salt]# salt 'minion-2' state.highstate

 

<10>去测试环境服务器上看一下nginx.conf文件

[root@minion-2 ~]# vim /usr/local/nginx/config/nginx.conf 

1 user  www www;

转载于:https://www.cnblogs.com/89mc/p/7457824.html

你可能感兴趣的文章
解决响应式布局下兼容性的问题
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
[工具] Sublime Text 使用指南
查看>>
Web服务器的原理
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
Data Structure 基本概念
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
core--线程池
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
PKUWC2018 5/6
查看>>
As-If-Serial 理解
查看>>
洛谷P1005 矩阵取数游戏
查看>>
在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
查看>>