收藏 分享(赏)

saltstack state.sls常用功能模板 Master-控制中心,salt命令运行和资源状态管理端.docx

上传人:依依 文档编号:1284715 上传时间:2018-06-21 格式:DOCX 页数:7 大小:21.92KB
下载 相关 举报
saltstack state.sls常用功能模板 Master-控制中心,salt命令运行和资源状态管理端.docx_第1页
第1页 / 共7页
saltstack state.sls常用功能模板 Master-控制中心,salt命令运行和资源状态管理端.docx_第2页
第2页 / 共7页
saltstack state.sls常用功能模板 Master-控制中心,salt命令运行和资源状态管理端.docx_第3页
第3页 / 共7页
saltstack state.sls常用功能模板 Master-控制中心,salt命令运行和资源状态管理端.docx_第4页
第4页 / 共7页
saltstack state.sls常用功能模板 Master-控制中心,salt命令运行和资源状态管理端.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、saltstack 常用功能模块编写一简介Master - 控制中心,salt 命令运行和资源状态管理端Minions - 需要管理的客户端机器,会主 动去连接 Master 端,并从 Master 端得到资源状态信息,同步资源管理信息States - 配置管理的指令集Modules- 包含命令行下运行的指令,和在配置文件里面使用的指令模块可以的函数可以在命令行下运行Grains - minion 端的变量,静态pillar - minion 端的变量,动态,可自定 义highstate - 给 minion 永久添加状 态,从 sls 配置文件读取到salt schedule - 自动保持客

2、户端配置二常用功能执行命令 cmd.runSls 模板 state.slsPillar自定义模块三State.sls本文主要介绍 state.sls 常用基础功能写法,主要包含通过 sls 模板实现以下几块的管理:1. 用户管理2. 文件管理3. 目录管理4. 安装包管理5. 计划任务用户管理:用户管理分为创建和删除用户,分别对应 user.present 和 user.absent,如下 sls 模板,如用户不存在,则新建用户 admin 和 admin1,并设置相关属性:root# cat init.sls admin:user.present:- shell: /bin/bash- ho

3、me: /home/admin- uid: 888admin1:user.present:- uid: 1111如下则是删除用户admin:user.absent:- purge: True- force: TruePurge:为 True 指删除该用户家目录以及下面的文件,类似于 userdel rForce:为 True 指即使该用户当前在线也强制删除添加用户的模板一般用于其他 sls 调用,如安装 mysql 的 sls 模板可以先调用此模板新建 mysql 用户 。如果是临时需要新建用户,直接用 cmd.run 即可文件管理:文件管理主要分为文件的上传和文件附加内容文件上传管理一般通过

4、 file.managed,如下 sls,即为 在 minion 端备份 gz 包之后,将 gz 包传到 minion 目录/usr/local 下,并设置相关属性root# cat init.sls/usr/local/nginx-2.1.2.tar.gz:file.managed:- source: salt:/nginx/nginx-xxx.xxx.tar.gz- user: root- group: root- mode: 755- backup: minion- template: jinja先备份在 minion 端的目录/var/cache/salt/minion/file_ba

5、ckup 下,然后上传, 长期使用备份目录会增大,恢复可用 salt 命令恢复或者直接手动考备份文件均可file.append 用于追加文件,如下,用于安装完 jdk 之后将 环境变量追加入profile 文件里面(假设 jdk 安装目录为下),用于 jdk 安装模块调用:/etc/profile:file.append:- text:- “export JAVA_HOME=/usr/local/jdk1.6.0_13“- “export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH“- “export CLASSPATH=$JAVA_HOME/li

6、b/:$JAVA_HOME/jre/lib:$CLASSPATH“目录管理file.recurse 将目录下的所有文件覆盖到目标 minion 目录,目录递归复制, 类似于 rsync,如果 master 端减少了文件,minion 端默认不会删除,如下将本地conf 目录的文件全部同步到 线上 conf,并 设置相关属性/usr/local/nginx/conf:file.recurse:- source: salt:/nginx/conf- user: root- group: root- file_mode: 644- dir_mode: 755- template: jinja- ba

7、ckup: minion- makedirs: True- include_empty: True- recurse:- user- group- mode以上模板注意空格调整成一致,一般缩进空 2 格新建目录,如新建/web/logstash 目录,并 设置相关属性,一般用于其他模板调用/web/logstash:file.directory:- user: web- group: web- file_mode: 644- dir_mode: 755- makedirs: True- include_empty: True- template: jinja- backup: minion包管

8、理如下,如在 linux 下即调用系统 yum 命令安装相关包,常用于初始化环境或者其他模块调用依赖包,如 nginx 的 pcre-devel 等installpackages:pkg.latest:- pkgs:- aspell- ncurses- ncurses-devel- pcre-devel- telnet- libcurl- libcurl-devel计划任务添加计划任务 salt xxx cron.set_job root 0 3 * * * “echo abc“ “mytest“删除计划任务 salt xxx cron.rm_job root “echo abc“第二种方式就

9、是写 sls 也可做 计划任务/usr/local/test.sh /var/log/test.log 2&1:cron.present:- identifier: test cron #计划任务描述,同上面的 mytest- user: root- minute: 0- hour: 4/usr/sbin/ntpdate :cron.present: - identifier: ntpdate rsync - user: root - minute: */30如下是一个完整的 nginx 安装模板:整个模板的功能就是 讲 nginx 安装包通过file.managed 上传到相关目 录, 调用

10、 cmd.run 执行安装命令,调用用户管理模板新建用户,调用目录管理上传配置文件目录以及目录内部配置文件。#用 include 调用引入外部模板,用于新建 nginx 需要的用户,新建用 户模板见上面用户管理include: - nginx_user#安装 nginxinstall_nginx:cmd.run:- name: tar -zxvf nginx-2.1.2.tar.gz & cd nginx-2.1.2 & sh configure -prefix=/usr/local/nginx -with-http_ssl_module -with-http_stub_status_modu

11、le & make & make install- cwd: /usr/local #执行上面的命令需要在此目录- unless: test -f /usr/local/nginx/sbin/nginx #测试 nginx 此文件不存在,则执行上面 name 后面的命令- require:- file: /usr/local/nginx-2.1.2.tar.gz #执行之前需要先 执行此模块,此模块写在下面#上传 nginx 安装包模块/usr/local/nginx-2.1.2.tar.gz:file.managed:- source: salt:/nginx/nginx-2.1.2.tar

12、.gz- unless: test -f /usr/local/nginx-2.1.2.tar.gz- user: root- group: root- mode: 755- template: jinja- require:- sls: nginx_user#上传 nginx 配置文件模块/usr/local/nginx/conf:file.recurse:- source: salt:/nginx/conf- user: root- group: root- file_mode: 644- dir_mode: 755- template: jinja- backup: minion- makedirs: True- include_empty: True- recurse:- user- group- mode- require:- cmd: install_nginx注意上面用到的依赖关系和模板外部调用方法,如下,这里不做详解,可自行查询 include- modulename require- file:- cmd:- sls:此外还有:变量使用Watch 用法Pillar 自定义变量以及模块开发等,此文不做详述,后面文章可能会写到

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报