saltstack执行模块

2024-05-16 02:38
文章标签 模块 执行 saltstack

本文主要是介绍saltstack执行模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(1)master中编写自定义模块

[root@server1 ~]# mkdir /srv/salt/_modules -p
[root@server1 ~]# cd /srv/salt/_modules/
[root@server1 _modules]# vim my_disk.py
#!/use/bin/env python
def df():return __salt__['cmd.run']('df -h')

刷新salt模块库

[root@server1 _modules]# salt '*' saltutil.sync_modules
server2:- modules.my_disk
server1:- modules.my_disk
server4:- modules.my_disk
server3:- modules.my_disk

推送自己的模块

[root@server1 _modules]# salt '*' my_disk.df
server3:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  1.1G   17G   6% /tmpfs                         246M   16K  246M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot
server4:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  1.1G   17G   6% /tmpfs                         372M   16K  372M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot
server2:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  990M   17G   6% /tmpfs                         246M   96K  246M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot
server1:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   19G  1.1G   17G   7% /tmpfs                         499M   76K  499M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot

函数存放位置

[root@server4 ~]# cd /var/cache/salt
[root@server4 salt]# tree
.
`-- minion|-- accumulator|-- extmods|   |-- grains|   |   |-- my_grains.py|   |   `-- my_grains.pyc|   `-- modules            #外部函数位置|       |-- my_disk.py|       `-- my_disk.pyc|-- files|   `-- base|       |-- _grains|       |   `-- my_grains.py|       |-- haproxy|       |   |-- files|       |   |   `-- haproxy.cfg|       |   `-- install.sls|       |-- keepalived|       |   |-- files|       |   |   |-- keepalived|       |   |   |-- keepalived-2.0.6.tar.gz|       |   |   `-- keepalived.conf|       |   |-- install.sls|       |   `-- service.sls|       |-- _modules|       |   `-- my_disk.py|       `-- top.sls|-- highstate.cache.p|-- module_refresh|-- pkg_refresh|-- proc`-- sls.p14 directories, 18 files

(2)salt中的常用模块ssh

<1>server4关闭salt-minion

<2>在server1上安装salt-ssh

 [root@server1 ~]# yum install -y salt-ssh

<3>在server上编辑ssh的配置文件

  [root@server1 ~]# vim /etc/salt/rosterserver3:host: 172.25.1.4       # 想要连接的主机user: root             # 该主机的超级用户passwd: redhat         # 该超级用户的密码

<4> 在server1中连通server4

salt-ssh 'server4' test.ping -i

<5>server1中执行命令,不启动minion

[root@server1 salt]# salt-ssh 'server4' cmd.run 'df -h'
server4:Filesystem                    Size  Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root   14G  1.1G   12G   9% /tmpfs                         499M   16K  499M   1% /dev/shm/dev/vda1                     485M   33M  427M   8% /boot

(3) salt-syndic功能

<1> 选server4作为top master,关闭server4的minion,server1中去掉server4的minion

 [root@server4 ~]# /etc/init.d/salt-minion stop[root@server4 ~]# chkconfig salt-minion off

<2> server4中安装salt-master

   [root@server4 ~]# yum install salt-master

<3>修改sevrer4中master配置文件

vim /etc/salt/master
857 order_masters: True    # 打开允许syndic功能

<4>server1中安装salt-syndic

[root@server1 ~]# yum install salt-syndic -y
[root@server1 ~]# vim /etc/salt/master
861 syndic_master: 172.25.1.4    # 设置top master为server4
[root@server1 ~]# /etc/init.d/salt-master restart
Stopping salt-master daemon:                               [确定]
Starting salt-master daemon:                               [确定]
[root@server1 ~]# /etc/init.d/salt-syndic start   #需要启动syndic否则无法交换公钥
Starting salt-syndic daemon:                               [确定]

<5> server4中发现server1

   salt-key -A[root@server4 ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
server1
Rejected Keys:
[root@server4 ~]# salt-key -A 
The following keys are going to be accepted:
Unaccepted Keys:
server1
Proceed? [n/Y] Y
Key for minion server1 accepted.

<6>sevrer4上执行推送,推送到了server1的各个minion端

[root@server4 ~]# salt '*' test.ping    #在top master可以看到master管理的节点,减轻了master端的压力
server1:True
server2:Trueserver3:True

这篇关于saltstack执行模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993638

相关文章

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详