您的位置:首页 > 其它

saltstack的状态文件

2017-02-18 21:55 281 查看
saltstack状态文件设定:
编辑/etc/salt/master,修改其中关于“设置文件的目录”的设置:




说明:注意语法格式,顶格/冒号/两个空格

state_top: top.sls
# The state system uses a "top" file to tell the minions what environment to
# use and what modules to use. The state_top file is defined relative to the
# root of the base environment as defined in "File Server settings" below.
#state_top: top.sls
[root@master ~]# mkdir -p /etc/salt/states
[root@master ~]# vim /etc/salt/states/top.sls
[root@master ~]# sed -i '329s/#//' /etc/salt/master
state_top: top.sls
说明:将329行的注释取消
进入base环境下,并配置下top.sls

[root@master ~]# cd /etc/salt/states/
[root@master states]# mkdir -p init
[root@master states]# mkdir -p prod
[root@master states]# vim top.sls
[root@master states]# cat top.sls
base:
'node01.saltstack.com':
-init.pkg
说明:base是指定一个名称,init为文件夹的名称,pkg为pkg.sls

[root@master states]# ll
总用量 12
drwxr-xr-x 2 root root 4096 2月  15 14:16 init
drwxr-xr-x 2 root root 4096 2月  15 14:16 prod
-rw-r--r-- 1 root root   46 2月  15 14:17 top.sls
[root@master states]# cd init/
[root@master init]# vim pkg.sls
[root@master init]# cat pkg.sls
pkg.init:
pkg.installed:
- names:
- lrzsz
- mtr
- nmap
案例1:使用salt初始化系统模块:
[root@master init]# salt '*' state.sls init.pkg
node01.saltstack.com:
----------
ID: pkg.init
Function: pkg.installed
Name: mtr
Result: True
Comment: Package mtr is already installed.
Started: 14:56:02.574416
Duration: 11389.014 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: nmap
Result: True
Comment: Package nmap is already installed.
Started: 14:56:13.963968
Duration: 3.619 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: lrzsz
Result: True
Comment: Package lrzsz is already installed.
Started: 14:56:13.967979
Duration: 1.042 ms
Changes:
Summary
------------
Succeeded: 3
Failed:    0
------------
Total states run:     3
案例2:saltstack修改内核参数:

[root@master ~]# cd /etc/salt/states/init/
[root@master init]# tree
.
└── pkg.sls
0 directories, 1 file
[root@master init]# mkdir -p files
[root@master init]# cd files/
[root@master init]# vim limit.sls
limit-conf-config:
file.managed:
- name: /etc/security/limits.conf
- source: salt://init/files/limits.conf
- user: root
- group: root
- mode: 644
[root@master files]# cd /etc/security/
[root@master security]# ls
access.conf       console.perms    limits.d        opasswd           time.conf
chroot.conf       console.perms.d  namespace.conf  pam_env.conf
console.apps      group.conf       namespace.d     pam_winbind.conf
console.handlers  limits.conf      namespace.init  sepermit.conf
[root@master security]# cp limits.conf /etc/salt/states/init/files/
[root@master files]# vim limits.conf
*               soft    core            0
*               hard    rss             10000
[root@master states]# pwd
/etc/salt/states
注意:要将新的模块添加到top.sls中,不然会有其它报错
[root@master states]# cat top.sls
base:
'*':
- init.pkg
- init.limit
[root@master init]# salt '*' state.highstate
node01.saltstack.com:
----------
ID: pkg.init
Function: pkg.installed
Name: mtr
Result: True
Comment: Package mtr is already installed.
Started: 17:42:55.479576
Duration: 7120.831 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: nmap
Result: True
Comment: Package nmap is already installed.
Started: 17:43:02.601307
Duration: 2.278 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: lrzsz
Result: True
Comment: Package lrzsz is already installed.
Started: 17:43:02.603841
Duration: 0.952 ms
Changes:
----------
ID: limit-conf-config
Function: file.managed
Name: /etc/security/limits.conf
Result: True
Comment: File /etc/security/limits.conf updated
Started: 17:43:02.612678
Duration: 19.256 ms
Changes:
----------
diff:
---
+++
@@ -39,8 +39,8 @@
#<domain>      <type>  <item>         <value>
#

-#*               soft    core            0
-#*               hard    rss             10000
+*               soft    core            0
+*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
Summary
------------
Succeeded: 4 (changed=1)
Failed:    0
------------
Total states run:     4
客户端测试:
[root@node01 security]# egrep -v '#|^$' limits.conf
*               soft    core            0
*               hard    rss             10000


案例3:同步某个计划任务
最近发现很多服务器上没有配置ntp服务器指向,简单写个计划任务,然后通过状态文件下发
思路:
a)准备好需要下发的文件
b)编辑sls文件
c)修改top.sls,添加信息进去
[root@master ~]# cat /var/spool/cron/root
*/5 * * * * /usr/sbin/ntpdate -u 202.120.2.101>/dev/null 2>&1
[root@master ~]# cd /etc/salt/states/
[root@master states]# ls
init  prod  top.sls
[root@master states]# cd init/
[root@master init]# ls
files  limit.sls  pkg.sls
[root@master init]# cp limit.sls ntp-crontab.sls
[root@master init]# ls
files  limit.sls  ntp-crontab.sls  pkg.sls
[root@master init]# cd files/
[root@master files]# cp /var/spool/cron/root .
[root@master files]# pwd
/etc/salt/states/init/files
[root@master files]# cat root
*/5 * * * * /usr/sbin/ntpdate -u 202.120.2.101>/dev/null 2>&1
[root@master files]# mv root ntp-crontab.conf
[root@master files]# cat ntp-crontab.conf
*/5 * * * * /usr/sbin/ntpdate -u 202.120.2.101>/dev/null 2>&1
[root@master files]# cd ..
[root@master init]# ls
files  limit.sls  ntp-crontab.sls  pkg.sls
[root@master ~]# cat /etc/salt/states/init/ntp-crontab.sls
ntp-crontab-config:
file.managed:
- name: /var/spool/cron/root
- source: salt://init/files/ntp-crontab.conf
- user: root
- group: root
- mode: 644
计划任务更新执行结果:
[root@master init]# salt '*' state.highstate
node01.saltstack.com:
----------
ID: pkg.init
Function: pkg.installed
Name: mtr
Result: True
Comment: Package mtr is already installed.
Started: 21:09:06.608808
Duration: 4265.514 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: nmap
Result: True
Comment: Package nmap is already installed.
Started: 21:09:10.874647
Duration: 0.685 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: lrzsz
Result: True
Comment: Package lrzsz is already installed.
Started: 21:09:10.875446
Duration: 0.583 ms
Changes:
----------
ID: limit-conf-config
Function: file.managed
Name: /etc/security/limits.conf
Result: True
Comment: File /etc/security/limits.conf is in the correct state
Started: 21:09:10.879350
Duration: 4.1 ms
Changes:
----------
ID: ntp-crontab-config
Function: file.managed
Name: /var/spool/cron/root
Result: True
Comment: File /var/spool/cron/root updated
Started: 21:09:10.883639
Duration: 9.342 ms
Changes:
----------
diff:
New file
mode:
0644
Summary
------------
Succeeded: 5 (changed=1)
Failed:    0
------------
Total states run:     5
node02.saltstack.com:
----------
ID: pkg.init
Function: pkg.installed
Name: mtr
Result: True
Comment: Package mtr is already installed.
Started: 21:09:07.831431
Duration: 4292.2 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: nmap
Result: True
Comment: Package nmap is already installed.
Started: 21:09:12.123977
Duration: 0.714 ms
Changes:
----------
ID: pkg.init
Function: pkg.installed
Name: lrzsz
Result: True
Comment: Package lrzsz is already installed.
Started: 21:09:12.124798
Duration: 0.426 ms
Changes:
----------
ID: limit-conf-config
Function: file.managed
Name: /etc/security/limits.conf
Result: True
Comment: File /etc/security/limits.conf is in the correct state
Started: 21:09:12.128235
Duration: 5.165 ms
Changes:
----------
ID: ntp-crontab-config
Function: file.managed
Name: /var/spool/cron/root
Result: True
Comment: File /var/spool/cron/root updated
Started: 21:09:12.133621
Duration: 8.761 ms
Changes:
----------
diff:
New file
mode:
0644
Summary
------------
Succeeded: 5 (changed=1)
Failed:    0
------------
Total states run:     5
检查结果:
[root@node01 spool]# cd /var/spool/cron/
[root@node01 cron]# ls
root
[root@node01 cron]# cat root
*/5 * * * * /usr/sbin/ntpdate -u 202.120.2.101>/dev/null 2>&1
[root@node02 ~]# cat /var/spool/cron/root
*/5 * * * * /usr/sbin/ntpdate -u 202.120.2.101>/dev/null 2>&1
通过对比会发现,与master的下发文件一致
案例4:同步内网的hosts文件(适用于内网没有建立独立DNS的情况)
[root@master ~]# cd /etc/salt/states/init/
[root@master init]# ll
总用量 16
drwxr-xr-x 2 root root 4096 2月  18 21:01 files
-rw-r--r-- 1 root root  168 2月  18 17:42 limit.sls
-rw-r--r-- 1 root root  169 2月  18 21:08 ntp-crontab.sls
-rw-r--r-- 1 root root   79 2月  15 14:55 pkg.sls
[root@master init]# cd files/
[root@master files]# vim hosts.conf
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.140    master  master.saltstack.com
10.10.10.141    node01  node01.saltstack.com
10.10.10.142    node02  node02.saltstack.com
10.10.10.143    node03  node03.saltstack.com
[root@master init]# cat hosts.sls
hosts-config:
file.managed:
- name: /etc/hosts
- source: salt://init/files/hosts.conf
- user: root
- group: root
- mode: 644
说明:下发文件到/etc/hosts,源文件
[root@master states]# cat /etc/salt/states/top.sls
base:
'*':
- init.pkg
- init.limit
- init.ntp-crontab
- init.hosts
[root@master states]# salt '*' state.highstate
----------前面的部分我直接省略了--------------
----------
ID: hosts-config
Function: file.managed
Name: /etc/hosts
Result: True
Comment: File /etc/hosts updated
Started: 21:31:43.644962
Duration: 13.119 ms
Changes:
----------
diff:
---
+++
@@ -3,3 +3,4 @@
10.10.10.140 mastermaster.saltstack.com
10.10.10.141 node01node01.saltstack.com
10.10.10.142 node02node02.saltstack.com
+10.10.10.143  node03node03.saltstack.com
Summary
------------
Succeeded: 6 (changed=1)
Failed:    0
------------
Total states run:     6
客户端进行测试:
[root@node01 cron]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.140 master master.saltstack.com
10.10.10.141 node01 node01.saltstack.com
10.10.10.142 node02 node02.saltstack.com
10.10.10.143 node03 node03.saltstack.com
[root@node02 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.140 master master.saltstack.com
10.10.10.141 node01 node01.saltstack.com
10.10.10.142 node02 node02.saltstack.com
10.10.10.143 node03 node03.saltstack.com
如果此时我在master端修改hosts.conf文件
[root@master init]# pwd
/etc/salt/states/init
[root@master init]# cat files/hosts.conf
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.140 master master.saltstack.com
10.10.10.141 node01 node01.saltstack.com
10.10.10.142 node02 node02.saltstack.com
10.10.10.143 node03 node03.saltstack.com
10.10.10.144 openstack01 openstack01.saltstack.com
10.10.10.145 openstack02 openstack02.saltstack.com
[root@master init]# salt '*' state.highstate
----------前面的部分我直接省略了--------------
----------
ID: hosts-config
Function: file.managed
Name: /etc/hosts
Result: True
Comment: File /etc/hosts updated
Started: 21:37:50.679328
Duration: 78.269 ms
Changes:
----------
diff:
---
+++
@@ -4,3 +4,5 @@
10.10.10.141node01node01.saltstack.com
10.10.10.142node02node02.saltstack.com
10.10.10.143node03node03.saltstack.com
+10.10.10.144openstack01openstack01.saltstack.com
+10.10.10.145openstack02openstack02.saltstack.com
Summary
------------
Succeeded: 6 (changed=1)
Failed:    0
------------
Total states run:     6
客户端进行测试:
[root@node01 cron]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.140 master master.saltstack.com
10.10.10.141 node01 node01.saltstack.com
10.10.10.142 node02 node02.saltstack.com
10.10.10.143 node03 node03.saltstack.com
10.10.10.144 openstack01 openstack01.saltstack.com
10.10.10.145 openstack02 openstack02.saltstack.com
[root@node02 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.140 master master.saltstack.com
10.10.10.141 node01 node01.saltstack.com
10.10.10.142 node02 node02.saltstack.com
10.10.10.143 node03 node03.saltstack.com
关于salt批量配置hosts文件:http://www.ttlsa.com/linux/salt-modules-hosts/

这里我只写一个添加hosts文件的例子,更多内容可以参考上面的链接(干货很多)
[root@master ~]# salt '*' hosts.set_host 10.10.10.145 openstack02.saltstack.com
node02.saltstack.com:
True
node01.saltstack.com:
True
[root@master ~]# salt '*' hosts.set_host 10.10.10.143 openstack03.saltstack.com
node02.saltstack.com:
True
node01.saltstack.com:
True
[root@master ~]# salt-ssh '*' cmd.run 'tail -2 /etc/hosts'
node02:
10.10.10.144 openstack01 openstack01.saltstack.com
10.10.10.145 openstack02.saltstack.com
node01:
10.10.10.144 openstack01 openstack01.saltstack.com
10.10.10.145 openstack02.saltstack.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  services system states