saltstack之return与job管理
1. saltstack组件之return
return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL、MongoDB、Redis、Memcache等,通过return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供了数据来源。目前官方已经支持30种return数据存储与接口,我们可以很方便的配置与使用它。当然也支持自己定义的return,自定义的return需由python来编写。在选择和配置好要使用的return后,只需在salt命令后面指定return即可。
[root@master ~]# salt node1 sys.list_returners
node1:
- carbon
- couchdb
- etcd
- highstate
- local
- local_cache
- mattermost
- multi_returner
- pushover
- rawfile_json
- slack
- slack_webhook
- smtp
- splunk
- sqlite3
- syslog
- telegram
[root@master ~]#
1.1 return流程
return是在Master端触发任务,然后Minion接受处理任务后直接与return存储服务器建立连接,然后把数据return存到存储服务器。关于这点一定要注意,因为此过程都是Minion端操作存储服务器,所以要确保Minion端的配置跟依赖包是正确的,这意味着我们将必须在每个Minion上安装指定的return方式依赖包,假如使用Mysql作为return存储方式,那么我们将在每台Minion上安装python-mysql模块。
1.2 使用mysql作为return存储方式
在node1minion上安装Mysql-python
模块
[root@node1 ~]# yum list all|grep -i 'mysql'|grep python
python2-PyMySQL.noarch 0.8.0-10.module_el8.4.0+642+1dc4fb01 AppStream
python3-PyMySQL.noarch 0.10.1-2.module_el8.4.0+666+456f5f48 AppStream
python38-PyMySQL.noarch 0.10.1-1.module_el8.4.0+677+b84873a2 AppStream
python39-PyMySQL.noarch 0.10.1-2.module_el8.4.0+680+7b309a77 AppStream
[root@master ~]# salt node1 pkg.install python3-PyMySQL
node1:
----------
python3-PyMySQL:
----------
new:
0.10.1-2.module_el8.4.0+666+456f5f48
old:
[root@master ~]# salt node1 cmd.run 'rpm -qa|grep python3-PyMySQL'
node1:
python3-PyMySQL-0.10.1-2.module_el8.4.0+666+456f5f48.noarch
[root@master ~]#
部署一台mysql服务器用作存储服务器,此处就直接在192.168.8.137这台主机上部署
//部署mysql
[root@localhost ~]# yum -y install mariadb*
[root@localhost ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@localhost ~]#
//创建数据库和表结构
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE `salt`
-> -> DEFAULT CHARACTER SET utf8
-> -> DEFAULT COLLATE utf8_general_ci;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-> DEFAULT CHARACTER SET utf8
-> DEFAULT COLLATE utf8_general_ci' at line 2
MariaDB [(none)]>
MariaDB [(none)]> CREATE DATABASE `salt`
-> -> DEFAULT CHARACTER SET utf8
-> DEFAULT COLLATE utf8Ctrl-C -- exit!
Aborted
[root@localhost ~]#
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or