Directorio de artículos
1. Dos formas de regresar al trabajo
Documento oficial de trabajo: docs.saltstack.cn/topics/jobs/
- El resultado en caché está en el lado maestro / var / cache / salt / master / jobs / Abajo, el valor predeterminado es 24 horas para borrar
1.1 Regreso a la base de datos desde el final del minion
- Ventajas: Al almacenar datos, no supondrá ninguna carga adicional para el Salt Master.
- Desventajas: Cada Salt Minion está conectado a un caché de trabajo externo, lo que puede provocar una gran cantidad de conexiones. Se requieren otras configuraciones para obtener la configuración del módulo de retorno en todos los Salt Minions.
Configuración del lado de los minions:
yum install -y MySQL-python
: El host que devuelve el trabajo a la base de datos debe estar instaladovim /etc/salt/minion
mysql.host: '192.168.17.1'#数据库主机IP
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306
systemctl restart salt-minion
: Reiniciar
Configuración del lado de la base de datos:
yum install -y mariadb-server
: Instalar la base de datossystemctl start mariadb
: Envim salt.sql
: Compila archivos para crear bases de datos y tablas
CREATE DATABASE `salt`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
USE `salt`;
-- Table structure for table `jids`
DROP TABLE IF EXISTS `jids`;
CREATE TABLE `jids` (
`jid` varchar(255) NOT NULL,
`load` mediumtext NOT NULL,
UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Table structure for table `salt_returns`
DROP TABLE IF EXISTS `salt_returns`;
CREATE TABLE `salt_returns` (
`fun` varchar(50) NOT NULL,
`jid` varchar(255) NOT NULL,
`return` mediumtext NOT NULL,
`id` varchar(255) NOT NULL,
`success` varchar(10) NOT NULL,
`full_ret` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
KEY `id` (`id`),
KEY `jid` (`jid`),
KEY `fun` (`fun`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Table structure for table `salt_events`
DROP TABLE IF EXISTS `salt_events`;
CREATE TABLE `salt_events` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
`data` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`master_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `tag` (`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql < salt.sql
: Importar la base de datos de salmysql -e "grant all on salt.* to salt@'%' identified by 'westos';"
: Autorización
prueba:
salt server3 test.ping --return mysql
: Ejecuta salt en el lado maestromysql -e "select * from salt.salt_returns;"
: Ver los resultados devueltos en el lado de la base de datos
1.2 Regreso del maestro a la base de datos
- Ventaja: se requiere una sola conexión a un sistema externo. Esto se prefiere para bases de datos y sistemas similares.
- Desventajas: Aporta una carga adicional a tu Salt Master.
lado maestro:
yum install -y MySQL-python
: El host que devuelve el trabajo a la base de datos debe estar instaladovim /etc/salt/master
master_job_cache: mysql
mysql.host: 'localhost'#数据库主机IP,这里使用本机
mysql.user: 'salt'
mysql.pass: 'westos'
mysql.db: 'salt'
mysql.port: 3306
systemctl restart salt-master
Lado de la base de datos:
yum install -y mariadb-server
: Instalar la base de datossystemctl start mariadb
: Envim salt.sql
: Escriba el archivo para crear la base de datos y la tabla (igual que el archivo salt.sql en 1.1 de este artículo)mysql < salt.sql
mysql -e "grant all on salt.* to salt@'localhost' identified by 'westos';"
prueba:
salt '*' test.ping
: Ejecución del lado maestromysql -e "select * from salt.salt_returns;"
: Vea los resultados en el lado de la base de datos
2. salt-ssh
- Ejecute los comandos y el estado de salt a través de ssh sin instalar salt-minion
- El sistema Salt SSH no reemplazará al sistema de comunicación Salt estándar, solo proporciona una alternativa basada en SSH, sin ZeroMQ ni agentes remotos.
- Dado que toda la comunicación con Salt SSH se realiza a través de SSH, es mucho más lento que el Salt estándar
Configuración:
yum install -y salt-ssh
vim /etc/salt/roster
: Editar archivo de lista
server2:
host: 192.168.17.2
user: root
passwd: westos
prueba:
-
Cierre el servicio salt-minion de server2:
systemctl stop salt-minion.service
-
lsof -i :4505
: Compruebe que solo el servidor3 esté conectado
- La prueba ssh es exitosa en el lado maestro, ¡pero la velocidad es muy lenta!
salt-ssh '*' test.ping
salt-ssh '*' cmd.run df
3. sal-síndico
top-master 端 : servidor4 : 192.168.17.4
síndico + maestro: : servidor1: 192.168.17.1
- síndic debe ejecutarse en el maestro
3.1 Configuración del agente síndico
-
El servidor1 ha descargado el maestro antes, no es necesario configurar el maestro
-
Instalar salt-syndic
yum install -y salt-syndic
- Edite el archivo para que apunte al lado superior del maestro
vim /etc/salt/master
syndic_master: 192.168.17.4#top master端IP
systemctl restart salt-master
: Reinicia el servicio maestrosystemctl enable --now salt-syndic
: Activa el servicio proxy
3.2 configuración de maestro superior
- Configurar el almacén de software
[salt-3000]
name=SaltStack 3000 Release Channel for Python 2 RHEL/Centos $releasever
baseurl=https://mirrors.aliyun.com/saltstack/yum/redhat/7/$basearch/3000
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key, file:///etc/pki/rpm-gpg/centos7-signing-key
- Instalar salt-master
yum install -y salt-master
- Edite el archivo maestro y cámbielo a maestro superior
vim /etc/salt/master
order_masters: True
- Servicio maestro abierto
systemctl enable --now salt-master
- Clave de paso
salt-key -L
: Muestra las claves en espera de autenticación
salt-key -A
: Pasar todas las claves
- prueba
salt '*' test.ping