saltstack的jinja模

[[email protected] ~]# cd /srv/salt/base/
[[email protected] base]# ll
总用量 12
-rw-r--r-- 1 root root 172 11月 14 21:26 apache.sls
-rw-r--r-- 1 root root 128 11月 16 00:12 dns.sls
drwxr-xr-x 2 root root 25 11月 16 00:23 files
-rw-r--r-- 1 root root 28 11月 16 00:22 top.sls
[[email protected] base]# vim dns.sls
[[email protected] base]# cat dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://files/resolv.conf
- user: root
- group: root
- mode: 777
- template: jinja
- defaults: #定义变量
DNS_SERVER: 192.168.43.118

[[email protected] base]# vim files/resolv.conf
[[email protected] base]# cat files/resolv.conf
#jjjjjjjjjjjjjjjjjj
nameserver {{ DNS_SERVER }} #2个大括号表示变量

[[email protected] base]# salt ‘*‘ state.highstate
192.168.43.118:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 00:43:27.222821
Duration: 21.809 ms
Changes:
----------
diff:
---
+++
@@ -1,2 +1,3 @@
#jjjjjjjjjjjjjjjjjj
-nameserver 192.168.43.1
+nameserver 192.168.43.118
+

Summary
------------
Succeeded: 1 (changed=1)
Failed: 0

[[email protected] base]# vim files/resolv.conf
[[email protected] base]# cat files/resolv.conf
#jjjjjjjjjjjjjjjjjj
# {{ grains[‘fqdn_ip4‘] }}
nameserver {{ DNS_SERVER }}
[[email protected] base]# salt ‘*‘ state.highstate
192.168.43.118:
----------
ID: /etc/resolv.conf
Function: file.managed
Result: True
Comment: File /etc/resolv.conf updated
Started: 00:47:03.799795
Duration: 32.514 ms
Changes:
----------
diff:
---
+++
@@ -1,3 +1,3 @@
#jjjjjjjjjjjjjjjjjj
+# [‘192.168.43.118‘]
nameserver 192.168.43.118
-

Summary
------------
Succeeded: 1 (changed=1)
Failed: 0

系统初始化配置:

[[email protected] base]# pwd
/srv/salt/base
[[email protected] base]# mkdir init
[[email protected] base]# mv apache.sls dns.sls files/ /tmp/
[[email protected] base]# tree
.
├── init
└── top.sls

1 directory, 1 file

[[email protected] base]# cp /tmp/dns.sls init/
[[email protected] base]# ll
总用量 4
drwxr-xr-x 2 root root 21 11月 16 00:55 init
-rw-r--r-- 1 root root 28 11月 16 00:22 top.sls
[[email protected] base]# cd init/
[[email protected] init]# ls
dns.sls

[[email protected] init]# vim dns.sls
[[email protected] init]# cat dns.sls
/etc/resolv.conf:
file.managed:
- source: salt://init/files/resolv.conf
- user: root
- group: root
- mode: 777

[[email protected] init]# mkdir files
[[email protected] init]# cp /etc/resolv.conf files/
[[email protected] init]# cp /etc/resolv.conf files/
[[email protected] init]# vim history.sls
[[email protected] init]# cat history.sls
/etc/profile:
file.append: #file模块的追加方法
- text:
- export HISTTIMEFORMAT="%F %T ‘whoami‘"

[[email protected] init]# export PROMPT_COMMAND=‘ { msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[‘pwd‘]"$msg";} ‘
[[email protected] init]# who
root pts/0 2018-11-16 00:29 (desktop-4a0ohej)
root pts/1 2018-11-16 00:38 (desktop-4a0ohej)
[[email protected] init]# tail -f /var/log/messages
Nov 16 01:01:01 master systemd: Starting Session 34 of user root.
Nov 16 01:10:01 master systemd: Started Session 35 of user root.
Nov 16 01:10:01 master systemd: Starting Session 35 of user root.
Nov 16 01:14:00 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]export PROMPT_COMMAND=‘ { msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[‘pwd‘]"$msg";} ‘
Nov 16 01:14:04 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]uptime
Nov 16 01:14:39 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]tail -f /var/log/messages
Nov 16 01:14:42 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]uptime
Nov 16 01:15:06 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]tail -f /var/log/messages
Nov 16 01:15:12 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]tail -f /var/log/messages
Nov 16 01:15:17 master root: [euid=root]:root pts/0 2018-11-16 00:29 (desktop-4a0ohej):[pwd]who

[[email protected] init]# ll
总用量 12
-rw-r--r-- 1 root root 172 11月 16 01:17 audit.sls
-rw-r--r-- 1 root root 137 11月 16 00:57 dns.sls
drwxr-xr-x 2 root root 25 11月 16 00:58 files
-rw-r--r-- 1 root root 88 11月 16 01:03 history.sls
[[email protected] init]# cat audit.sls
/etc/bashrc:
file.append:
- text:
- export PROMPT_COMMAND=‘ { msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[‘pwd‘]"$msg";} ‘

[[email protected] init]# cat sysctl.sls
vm.swappinese: #尽量不适用swap分区
sysctl.present:
- value: 0

net.ipv4.ip_local_port_range:
sysctl.present:
- value: 10000 65000

fs.file-max: #最大打开文件数
sysctl.present:
- value: 100000

[[email protected] init]# vim env_init.sls
[[email protected] init]# cat env_init.sls
include:
- init.dns
- init.history
- init.audit
- init.sysctl

[[email protected] init]# cd ..
[[email protected] base]# ls
init top.sls
[[email protected] base]# vim top.sls
[[email protected] base]# cat top.sls
base:
‘*‘:
- init.env_init #在base路径下去init目录找env_init文件并执行

[[email protected] base]# salt ‘*‘ state.highstate test=True 测试不执行
[[email protected] base]# salt ‘*‘ state.highstate

原文地址:http://blog.51cto.com/13399294/2324553

时间: 2024-08-04 23:31:07

saltstack的jinja模的相关文章

saltstack之jinja,解决生产发布问题

最近换了工作,刚入职领导给我一个听着特复杂的需求,要实现自动发布:需求是这样的:一个程序包,分发到60台机器上,每台机器有两个这样的应用,但是路径和程序名都不一样.即分发过去全部都要重命名,当我了解了环境的详细情况之后,决定采用saltstack的jinja模版的方式,如下: {% if grains['fqdn_ip4'][0] == '10.1.10.86' %} #先判断ip,然后set2个不同的变量 {% set motd = ['/opt/eth-btc-match/eth2btc',

SaltStack配置管理-jinja模板

上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://docs.jinkan.org/docs/jinja2/ 两种分隔符: {% ... %} 和 {{ ... }} .前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上. 如何知道salt配置文件是一个模板 需要在sls配置文件里面定义 apache.init.sls 修改配置h

saltstack集合

saltstack集合 saltstack(一):   saltstack简介 saltstack(二):   saltstack安装及配置 saltstack(三):   saltstack远程执行 saltstack(四):   saltstack配置管理-常用模块介绍 saltstack(五):   saltstack配置管理-minion端安装apache简单样例 saltstack(六):   saltstack配置管理-高级状态top.sls saltstack(七):   salt

自动化运维-自动化扩容介绍加etcd部署

saltstack -----  haproxy  ------jinja cd /usr/local/src/ rz -y tar xf etcd-v2.2.1-linux-amd64.tar.gz cd etcd-v2.2.1-linux-amd64 cp etcd etcdctl /usr/local/bin/ etcd --version mkdir -p /data/etcd nohup etcd --name auto_scale --data-dir /data/etcd/ --l

自动化运维Saltstack系列(四)之States配置管理和jinja模板的使用

States配置管理 States是Saltstack中的配置语言,在日常进行配置管理时需要编写大量的States SLS文件,而编写这些SLS文件的一般步骤也就是我们平时手动配置一台服务器的步骤:首先安装源码包,然后管理一个配置文件,最后再保证这个服务的开机启动及正常运行.其中使用到的states模块功能需要我们一边学习一边实践加强理解. 接下来,我们通过一个简单的例子来理解Saltstack配置管理的基本原理--安装keepalived 1)修改master配置文件的file_roots根目

SaltStack配置语法-YAML和Jinja

系统规划:1 系统初始化   2 功能模块    3 业务模块 YAML语法及jinja模版: YAML语法: JINJA语法: 用jinja模版来修改文件的一个实例: [[email protected] ~]# cat /srv/salt/base/dns.sls /etc/resolv.conf: file.managed: - source: salt://files/resolv.conf - user: root - group: root - mode: 644 - templat

saltstack入门之一:saltstack安装

一.salt简介 saltstack是一个基于C/S架构的集中化管理平台,具备配置管理.远程执行.监控等功能.使用saltstack可以一键批量部署服务.远程执行命令,在大规模的服务集群中大大提高了运维人员的工作效率. saltstack基于python语言开发,使用轻量级消息队列(ZeroMQ)pub/sub进行通信. minion在首次时,会在/etc/salt/pki/minion/(该路径可在/etc/salt/minion中设置)下自动生成minion.pem(私钥)和minion.p

saltstack学习记录

安装 pip 安装 注意  依赖到zeromq3 minion过一段时间去请求master salt-api  可以访问salt去远程执行 ruby puppet   DSL配置   erb文件  模块  加载  模板支持最差 chef     定义直接是ruby代码   erb模板系统   原生支持 python saltstack   yaml配置文件    python程序模板   模板支持很好 python写模块 ipc 进程间通信 都使用key认证    安全 salt-key  -L

SaltStack与Python配合实现系统用户自动化管理

背景需求: 随意业务的发展,服务器数据也是越来越多,开发人员,运维人员也是越来越多.这时候如果有大量的人需要登录到服务器的话,那么我们就很有必要对用户进行管理.传统的方式是登录到每台服务器创建一个用户,工作重复性太大,如果有 1000台怎么办?甚至有的公司用户都不创建直接让所有人以root登录,这样更危险!!!,那么聪明一点的运维人员会写个创建用户的脚本来实现半自动化的创建用户.这些方法都不适合管理大批量的机器,接下来给大家带来其于SaltStack和Python脚本实现的自动化用户管理. 实现