saltstack优化

作者: print("") 分类: linux 发布时间: 2017-12-27 23:18


saltstack优化

文档salstack 优化 调整timeout的时间
在master 主配置文件
vim /etc/salt/master
timeout: 30
如果是内网中。建议在30s 之内。如果是外网环境。那么就60s 之内
 
Salt也可以运行在无master的状态
#file_client: remote
改为
file_client: local
去掉#后面把file_roots打开
# file_roots:
#   base:
#     – /srv/salt/
 
也可以做一个master的代理  syndic
Syndic运行在一个Master上面,。并且连接在另一个Master(比他更高级)上面
我们把liang 主机改为syndic
yum install salt-master salt-syndic
只需要改主配置文件一个就够了
[root@liang ~]# vim /etc/salt/master
syndic_master: 192.168.57.132
后面重启一下master (这里的是liang的master 就是以前的一台minion)
[root@liang ~]# /etc/init.d/salt-master restart
Stopping salt-master daemon: [失败]
Starting salt-master daemon: [确定]
[root@liang ~]# /etc/init.d/salt-syndic start
Starting salt-syndic daemon: [确定]
需要在主master 要修改一下
vim /etc/salt/master
order_masters: Ture
重启一下master
[root@agent ~]# /etc/init.d/salt-master restart
Stopping salt-master daemon: [确定]
Starting salt-master daemon: [确定]
先关闭一下两台minion ,后面修改一下master server 这个参数。
[root@liang ~]# /etc/init.d/salt-minion stop
Stopping salt-minion daemon: [确定]
master: 192.168.57.130
重启minion
后面在syndic  同意两台机器加入到对方的名下
[root@liang salt]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
dome_1
liang
Proceed? [n/Y] y
Key for minion dome_1 accepted.
Key for minion liang accepted.
 
在主master中也把名下的minion添加进来
[root@liang salt]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
dome_1
liang
Proceed? [n/Y] y
Key for minion dome_1 accepted.
Key for minion liang accepted.
测试一下能不能控制syndic 下面的minion
[root@liang salt]# salt ‘*’ test.ping
dome_1:
True
liang:
True
已经显示被控制了。

 
 
 
Saltstsck 二次开发
首先查看grains的存储位置,
file_roots:
base:
– /srv/salt/base
就是定义的这个files_roots 的base位置
新建一个这个_grains 目录
mkdir _grains
进入目录可以写一个模块  。这个模块是用python写的。
[root@agent _grains]# cat my_grains.py
#!/usr/bin/env python
def my_grains():
”’
My Custom Grains
”’
grains = {‘hehe1′:’hah1′,’hehe2′:’haha2’}
return grains
那么把这个放入导入到minion中
[root@agent _grains]# salt ‘*’ saltutil.sync_grains
liang:
dome_1:
查看一下这个模块
[root@agent _grains]# salt ‘*’ grains.item my_grains
liang:
———-
my_grains:
dome_1:
———-
my_grains:
minion端的这个文件是放在哪里呢?
存储在 这个目录下面
[root@dome_1 grains]# pwd
/var/cache/salt/minion/extmods/grains
my_grains.py  my_grains.pyc
[root@dome_1 grains]# ll
总用量 8
-rw——-. 1 root root 134 12月  9 23:12 my_grains.py
-rw——-. 1 root root 383 12月  9 23:17 my_grains.pyc
 
 
写一个模块
新建一个模块存放目录  _modules
mkdir /srv/salt/base/_modules
###后面可以新建一个模块。
[root@agent _modules]# cat my_disk.py
def list():
cmd = ‘df -h’
ret = __salt__[‘cmd.run’](cmd)
return ret
后续把模块下发过去
[root@agent _modules]# salt ‘*’ saltutil.sync_modules
liang:
– modules.my_disk
dome_1:
– modules.my_disk
 
执行一下这个模块
[root@agent _modules]# salt ‘*’ my_disk.list
liang:
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/vg_liang-lv_root   18G  4.8G   12G  29% /
tmpfs                         499M  240K  498M   1% /dev/shm
/dev/sda1                     485M   35M  426M   8% /boot
/dev/sr0                      4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/sr0                      4.2G  4.2G     0 100% /mnt
dome_1:
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_zabbix-lv_root   18G  4.8G   12G  30% /
tmpfs                          499M  240K  498M   1% /dev/shm
/dev/sda1                      485M   35M  426M   8% /boot
/dev/sr0                       4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/sr0                       4.2G  4.2G     0 100% /mnt
 
利用salt 覆盖原文件
[root@agent ~]# salt-cp ‘*’ install.log /tmp/install.log
{‘dome_1’: {‘/tmp/install.log’: True}, ‘liang’: {‘/tmp/install.log’: True}}
 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

说点什么

avatar
  Subscribe  
提醒