运维自动化之Saltstack(四)Returners(返回)

Returners:

默认是标准输出到屏幕

当然可以输出到其他目标,如:

mysql

redis

这里说一下将Returners写入到Mysql

方法一:

在每个minion端安装软件包MySQL-python ,让每个minion主机自己把其返回的信息写入数据库

在每个minion端的主机主配置文件中添加如下内容:

tail    /etc/salt/minion

mysql.host: ‘192.168.124.1‘   # Myslq Server 的IP地址

mysql.user: ‘salt‘

mysql.pass: ‘salt‘

mysql.db: ‘salt‘

mysql.port: 3306

重启 salt-minion 服务

在mysql server中配置salt相关的数据库和表

MariaDB [(none)]>CREATE DATABASE  `salt`

DEFAULT CHARACTER SET utf8

DEFAULT COLLATE utf8_general_ci;

MariaDB [(none)]>use  salt;

MariaDB [salt]>CREATE TABLE `jids` (

`jid` varchar(255) NOT NULL,

`load` mediumtext NOT NULL,

UNIQUE KEY `jid` (`jid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

MariaDB [salt]>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;

MariaDB [salt]>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;

MariaDB [salt]>grant all on salt.* to [email protected]‘%‘ identified by ‘salt‘;   # 授权 salt 用户

MariaDB [salt]>exit;

验证:

在master端执行:

salt ‘*‘ test.ping --return mysql

之后在 Mysql Server 上查看表 salt_reture

MariaDB [(none)]> select * from salt.salt_returns\G

正常情况下会显示有内容

方法二:

只在master端安装软件包:MySQL-phyon ;在master端的主配置文件配置如下内容:

tail    /etc/salt/master

mysql.host: ‘192.168.124.1‘   # Myslq Server 的IP地址

mysql.user: ‘salt‘

mysql.pass: ‘salt‘

mysql.db: ‘salt‘

mysql.port: 3306

master_job_cache: mysql

# 以上是设置返回值有matser写入mysql数据库内,

重启 salt-master 服务

测试方法:

1. 先把原来的表内容清空

MariaDB [(none)]> truncate table salt.salt_returns;   # 清空表内容

MariaDB [(none)]> select * from salt.salt_returns\G   # 确认表内无内容

2. 在master端直接正常执行

[[email protected] stats]# salt ‘*‘ cmd.run ‘df -h‘

3. 再在 Mysql Server 中查看表内容

MariaDB [(none)]> select * from salt.salt_returns\G

时间: 2024-10-12 20:40:38

运维自动化之Saltstack(四)Returners(返回)的相关文章

运维自动化之Saltstack使用详解

概要 saltstack是基于Python开发的C/S架构的一款批量管理工具,底层采用动态的连接总线(ZeroMQ消息队列pub/sub方式通信),使用ssl证书签发的方式进行认证管理,使其可以用于编配, 远程执行, 配置管理等等.部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯.号称世界上最快的消息队列ZeroMQ使得saltstack非常快速的管理大量服务器,采用RSA Key方式确认身份,传输采用AES加密,安全性也非常有保障. Saltsta

运维自动化之Saltstack(五)配置管理

配置管理--终于到重点了 说到配置管理,不得不说一下下面谈到的几个概念,理解他们很重要. Salt是通过一个文件top.sls管理minion端的状态的. 这个文件top.sls在这里叫做入口文件,此文件里记录了一个或者几个环境,在某一个环境下需要管理的minion端ID. 以及记录了受管理的minion端需要去匹配的状态:状态一般会有多个状态. 说一下我理解的状态,状态就是一组配置,配置里包含了minion端需要安装的软件名和设置好的配置文件,salt是通过配置文件去声明的.这个配置文件名必须

运维自动化 SaltStack 安装

运维自动化 SaltStack SaltStack介绍:(略) 设置epel源 rpm -ivh 'http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm' yum安装master.minion Master主机安装: [[email protected]_1 yum.repos.d]# yum install salt-master 正在安装: salt-master             

自动化运维系列之SaltStack批量部署Apache服务

自动化运维系列之SaltStack批量部署Apache服务 saltstack原理 SalStack由master和minion构成,master是服务端,表示一台服务器:minion是客户端,表示多台服务器.在Master上发送命令给符合条件的minion,Minion就会执行相应的命令.Master和Minion之间是通过ZeroMQ(消息队列)进行通信的. SaltStack的Master端的监听端口是4505和4506,4505端口是Master和Minion认证通信端口:4506端口是

SaltStack (1)运维自动化部署

运维自动化saltstack是一个轻量简洁的运维自动化软件,下面说一下我的安装过程: 首先第一步就是关闭你的防火墙或者是selinux,如果开启的话就给开放个端口. 一:master和agent端软件安装 master 控制端: rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum update yum install salt-master /etc/init.d/salt-mast

<zz>Ansible 运维自动化 ( 配置管理工具 )

from http://www.cnblogs.com/wangxiaoqiangs/p/5685239.html 简介: 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible.SaltStack.Puppet.Fabric 等. Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立. Ansible 基于 Python 语言实现,由 Pa

实战:基于Python构建运维自动化平台

导语: 今天与大家一起探讨如何基于Python构建一个可扩展的运维自动化平台,也希望能与大家一起交流,共同成长. 此次分享将通过介绍OMServer.OManager具备的功能.架构设计.模块定制.安全审计.C/S结构的实现等几个方面的内容来展开. 为什么选择Python? 默认安装且跨平台 可读性好且开发效率高 丰富的第三方库(开发框架.各类API.科学计算.GUI等) 社区活跃&众多开发者. Python在腾讯的现状,根据去年内部提交组件语言统计,除去2.3.4前端技术,Python在高级编

如何基于Python构建一个可扩展的运维自动化平台

嘉宾简介 刘天斯 从事互联网运维工作已13年,目前就职于腾讯-互动娱乐部,负责游戏大数据的运营,曾就职于天涯社区,担任首席架构师/系统管理员. 热衷开源技术的研究,包括系统架构.运维开发.负载均衡.缓存技术.数据库.NOSQL.分布式存储.消息中间件.大数据及云计算.Mesos.Docker.DevOps等领域.擅长大规模集群的运维工作,尤其在自动化运维方面有着非常丰富的经验.同时热衷于互联网前沿技术的研究,活跃在国内社区.业界技术大会,充当一名开源技术的传播与分享者. 导言 受 Reboot

运维自动化之ansible

项目场景: 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试. 技术说明: ansible聚集以上部署和命令执行于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量中型规模,再大的规模用puppet. ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,an