Salt States 入门三篇
2017-06-02 15:46
169 查看
如何使用 Salt State?
Extend:扩展被引用的SLS数据 include: - apache extend: apache: service: - watch: - pkg: mod_python mod_python: pkg.installed yaml_jinja: 默认的渲染器 moosefs/chunk.sls 简单介绍Python和PyDSL渲染器 运行和调试 Salt States salt '*' state.apply salt-call state.aply -l debug minion还可以直接在前台以debug模式运行:salt-minion -l debugSalt States 基本法之一
使用 Salt 配置一个 minion,使之运行 Apache 服务器,并确保该服务正常运行。 准备 top 文件 base: '*': - webserver top 文件可以区分多个运行环境(这个以后会再详细论述),默认的运行环境是 base。在 base 环境下,定义了一系列的 minion,对于上面这个例子来说,它适用于所有(*) minion 主机。 salt '*' state.apply master 通知所有的目标 minions 来执行 state.apply 方法。当 state.apply方法不带任何 sls 文件作为参数时,minion 将下载 master 的 top 文件并尝试去匹配里面的表达式(top.sls 的第 2 行),如果匹配上,它将下载对应的 sls 文件(webserver.sls),编译(还记得yaml_jinja 吗?),运行 SLS命名空间 webserver/dev.sls 可以用 webserver.dev 表示 webserver_1.0 将匹配webserver_1/0.sls salt -t 60 salt-minion -l debug # On the minion salt '*' state.apply -t 60 # On the masterSalt States 基本法之三
首先熟悉以下的命令 更新所有的minion的状态 salt '*' state.highstate salt-call '192.168.0.100' state.sls webserver 调试 salt-minion -l debug 设置默认超时 salt '*' state.highstate -t 60 grains salt 'linux-node1*' grains.ls salt 'slaver.test.com' grains.item role env myname salt 'slaver.test.com' pillar.items salt '*' saltutil.refresh_pillar salt -I 'conf:/etc/123.conf' test.ping 主机匹配 salt -G roles:cgt cmd.run 'uptime' 介绍如何使用 file_roots 来建立一套可同时用于研发、测试、生产线的运行环境。 /etc/salt/master: file_roots: base: - /srv/salt/ prod: - /srv/salt/prod dev: - /srv/salt/dev 实用案例 /srv/salt/prod/top.sls: base: 'web*prod*': - webserver.foobarcom qa: 'web*qa*': - webserver.foobarcom dev: 'web*dev*': - webserver.foobarcom 通过 pillar,给不同的主机设置不同的角色 /srv/pillar/top.sls: base: 'web*prod*': - webserver.prod 'web*qa*': - webserver.qa 'web*dev*': - webserver.dev /srv/pillar/webserver/prod.sls: webserver_role: prod 最后,是部署网站的 sls 文件: /srv/salt/prod/webserver/foobarcom.sls: {% if pillar.get('webserver_role', '') %} /var/www/foobarcom: file.recurse: - source: salt://webserver/src/foobarcom - saltenv: {{ pillar['webserver_role'] }} - dir_mode: 755 - file_mode: 644 {% endif %} salt '*' pillar.items salt '*' saltutil.refresh_pillar salt -I 'webserverrole:dev' state.apply webserver.foobarcom saltenv=prod salt -I 'webserverrole:prod' state.apply webserver.foobarcom saltenv=prod上面的例子说明,后面的source可以引用非prod的file。
相关文章推荐
- Redis入门到精通只需要三篇博客
- Redis入门到精通只需要三篇博客
- 进入DRF和ANGULAR的整合学习,这三篇入门内容一定要学好的
- Delphi xe7并行编程快速入门(三篇)
- sping web mvc快速入门 三篇
- JNI入门(上)
- C# 3.0 入门系列(一)
- MINA 快速入门指南(收藏)
- ASP.NET MVC 入门(2) 项目的目录结构与核心的DLL
- C# Socket 入门1
- 艾伟_转载:Visual Studio DSL 入门 2
- 这则表达式30分钟入门教程
- WCF入门教程:WCF基础知识问与答(转)
- Visual C++/MFC入门教程 + 控件说明
- Inno Setup入门(十八)——Inno Setup类参考(4)
- Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)
- 【cocos2d-x入门实战】微信飞机大战之十四:背景音乐和音效
- hdu 3062+1824(2-sat入门)
- [寒江孤叶丶的CrossApp之旅_05][入门系列]CrossApp如何创建一个新的window(窗口)
- UniversalImageLoader源码分析之一、开发入门