saltstack自动化运维

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了saltstack自动化运维相关的知识,希望对你有一定的参考价值。

Saltstack自动化运维工具使用

一、Saltsatck简介:

   Saltstack是基于python语言开发的一套C/S架构配置管理工具。它底层使用zeromq消息队列pub/sub方式通信,使用ssl证书签发的方式进行认证管理。由于zeromq消息队列,使得saltstack可以快速在成千台服务器上进行操作,而且采用RSAkey方式确认身份,传输采用AES加密传输,使得安全得到保障。

     Saltstack支持docker相关模块,配合saltstackMine实时发现功能。

1. 配置管理工具:

1 puppet1. 采用C/S星状结构 2. 没有远程执行的工具)、

Puppet原理:puppet的目的是让你只集中于你要管理的目标,而忽略实现的细节,例如命令名,参数或者文件格式. puppet把系统里面的用户,软件包,服务 看作是"资源", puppet的作用就是管理这些资源以及资源之间的相互联系.

Puppet工作方式与流程:

  puppet既可以在单机上使用,也可以以c/s结构使用.在大规模使用puppet的情况下,通常使用c/s结构.在这种结构中puppet客户端只是指运行puppet的服务器,puppet服务器端是只运行puppetmaster的服务器.

  puppet客户端首先会连接到puppet服务器端,并且通过facter工具把客户端的基本配置信息发送给服务器端. 服务器端通过分析客户端的主机名,通过node 定义,找到该主机的配置代码,然后编译配置代码,把编译好的配置代码发回客户端,客户端执行代码完成配置.并且把代码执行情况反馈给puppet服务器端。

2ansible1. python开发 2. 轻量级,不需要安装agent   3. 被红帽所收购,4.  Ansible是串行的)

简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppetcfenginecheffuncfabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

基本内容:

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;

(2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

3saltstack

2.  Saltstack 四大功能:远程执行、配置管理、事件驱动基础设施、salt cloud(云管理)。

3. Saltstack网址:https://docs.saltstack.com/en/latest/

阿里云repo网址:http://repo.aliyun.com/

4. Saltstack基本配置:

技术分享

5.  Salt组件:Salt MasterSalt MinionsExecution Modules(执行模块)、Formulas (States)执行状态、GrainsPillarTop FileRunnersReturnersReactorSalt Cloud / Salt VirtSalt SSH

6.  salts tack服务端成为master,客户端成为minion

7. Saltstack配置需要关注的事情

通用配置项、网络监听、配置文件配置、安全相关、性能相关

 

二、安装部署saltstack

环境介绍:

ip地址:192.168.56.11

作为master(同时安装salt-mastersalt-minion

192.168.56.12  (安装salt-minion)

两台CentOs 7.2

CentOS Linux release 7.2.1511 (Core)

网址:http://repo.saltstack.com/#rhel

1. 安装repo源。

yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm

技术分享

或使用阿里云的repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

技术分享

1.  salt master安装:

yum install salt-master

技术分享

salt minion安装

yum install salt-minion

技术分享

注意:一台master服务器需要安装masterminion

另一台服务器安装minion服务

1. 启动salt-master

systemctl start salt-master 

技术分享

注意:salt-master启动会生成pki

4. 修改salt配置文件,配置minion并启动

两个minion配置一样或者说是所有的minion都是一样的配置)

修改/etc/salt/minion文件,修改16行将#master salt改为master  192.168.56.11 master ip或者fqnd注意master后面的空格)

注意格式:配置文件中,多一个或者少一个空格都是会报错的,对于格式很严格

vim /etc/salt/minion 

技术分享

技术分享

master ip地址

78行:minion id (为定义minionID,如果ID不设置会默认设置fqdn,详细请看自己的配置文件中,可以自行翻译。)

技术分享

不用修改id

5. 启动minion(启动master上的minion

systemctl  start salt-minion.service

6. 在另一台上修改同样位置:(修改minion上的配置文件,修改完毕后,并启动minion上的服务。)

yum install -y salt-minion

技术分享

安装到这里就结束了,下面我们介绍一下masterminion的认证过程,认证方式应该和ssh认证方式差不多都有公钥和私钥。

以上是saltstack的简单理论,下次会给大家更新saltstack如何通信的!希望可以帮助到大家!谢谢

本文出自 “卢春宁” 博客,谢绝转载!

以上是关于saltstack自动化运维的主要内容,如果未能解决你的问题,请参考以下文章

Ansible vs SaltStack 谁才是自动化运维好帮手?

saltstack自动化运维

基于CMDB与SALTSTACK的运维自动化之路

Linux学习总结(七十三)自动化运维之saltstack

saltstack自动化运维

Saltstack自动化运维