Saltstack的部署及其详解

https://repo.saltstack.com/
Saltstack简介:
salt是一个多平台基础设施管理工具通常只用在linux上,使用那个轻量级的通讯器,ZN用python写成的批量管理工具,完全开源,遵守Apache2协议,与puppet,chef功能,类似有一个强大的执行命令引擎,salt提供 了一个非常快速,灵活 并且容易使用的配置管理系统,称之为“saltstack”
salt.一种全新基础设施管理方式,部署轻松,在几分钟起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间妙极通讯
*一个配置 管理系统,能够维护预定义状态的远程节点(比如:确保指定的报文被安装,指定服务器在运行)
*一个分布式远程执行系统,用来在远程节点(可以是 单个节点,也可以是 任意规则挑选出来的节点)上执行命令和查询数据
开发的目的为了远程 执行提供最好的解决方案,并使远程执行变得更好 ,更快,更简单,既要考虑 大规模部署 ,又要考虑小规模系统,提供适应多种场合的应用让人沮丧,但salt非常
容易设置和维护,salt设计在任一数量的srver下都可以工作salt在几乎不改动配置的情况下就可以工作,也可以调整从而满足特定的需求并照顾执行
salt的核心功能
*使用命令 发送到远程系统上是并行,而不是串行
*使用安全加密协议,
*使用最少最快的网络载荷
*提供简单的编辑接口
salt同样更加细致化的领域控制系统来远程执行,使得系统成为目标,不止可以通过主机名,还可以通过系统属性
---------------------------------------------------------------------------------------------------------------------------
基本原理:
saltstack采用C/S模式,server端就是salt的master,clinet端minion,minion与master端之间通过zeroMQ消息列队 通信;
Minion上线后先于master端联系,把自己的pubkey发送过去
这是 master端通过salt-key-L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信;
Master可以发送任何指令让minion执行了,salt有很多可执行的模块,比如说cmd模块,
[root@localhost ~]# hostname Master.salt.com
root@Master ~]# vim /etc/hosts

[root@Minion ~]# hostname Minion.salt.com
[root@Minion ~]# vim /etc/hosts

关闭防火墙设置
[root@Master ~]# service iptables stop
[root@Master ~]# chkconfig iptables off
root@Minion ~]# service iptables stop
[root@Minion ~]# chkconfig iptables off
官方文档epel源
https://repo.saltstack.com/
Master端配置
1.1准备并配置epel源
[root@Master yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
[root@Master yum.repos.d]# sudo yum clean expire-cache #####更新缓存的
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: DVD epel salt-latest
3 metadata files removed
[root@Master yum.repos.d]# rpm -ql salt-master
/etc/rc.d/init.d/salt-master #启动脚本
/etc/salt/master #master配置文件
/usr/bin/salt #master的核心命令
/usr/bin/salt-cp #master的文件传输命令
/usr/bin/salt-key #salt文件传输命令
/usr/bin/salt-master #salt证书管理命令
/usr/bin/salt-run #master服务命令
/usr/bin/salt-unity
[root@Master ~]# vim /etc/salt/master

root@Master ~]# cat /etc/salt/master | grep ^interface
interface: 192.168.20.138
启动master
[root@Master ~]# service salt-master start
Starting salt-master daemon: [确定]
[root@Master ~]# ps -aux | grep salt

Minion端配置
[root@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
[root@Minion yum.repos.d]# sudo yum clean expire-cache
[root@Minion yum.repos.d]# yum -y install salt-minion
1.2-编辑主配置文件
[root@Minion ~]# rpm -ql salt-minion
/etc/rc.d/init.d/salt-minion #启动脚本
/etc/salt/minion #配置文件
/etc/salt/minion.d
/etc/salt/pki/minion
/etc/salt/proxy
/usr/bin/salt-call #拉取命令
/usr/bin/salt-minion #minion服务命令
/usr/bin/salt-proxy
[root@Minion ~]# vim /etc/salt/minion
[root@Minion ~]# grep "^master" /etc/salt/minion
Minion端配置
[root@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
[root@Minion yum.repos.d]# sudo yum clean expire-cache
[root@Minion yum.repos.d]# yum -y install salt-minion
1.2-编辑主配置文件
[root@Minion ~]# rpm -ql salt-minion
/etc/rc.d/init.d/salt-minion #启动脚本
/etc/salt/minion #配置文件
/etc/salt/minion.d
/etc/salt/pki/minion
/etc/salt/proxy
/usr/bin/salt-call #拉取命令
/usr/bin/salt-minion #minion服务命令
/usr/bin/salt-proxy
[root@Minion ~]# vim /etc/salt/minion

[root@Minion ~]# grep "^master" /etc/salt/minion
master: 192.168.20.138 #### 表示我们要连接的是saltstack的master是192.168.20.138
[root@Minion ~]# service salt-minion start
Starting salt-minion:root:Minion.salt.com daemon: OK
接下来我们需要测试saltsack
Master端配置
Saltstack使用SSL签证 方式进行安全认证
1.查看 minion列表
root@Master ~]# salt-key –L #查看当前证书的签证情况

2.接受所有key
salt-key -a 'key-name' ##接受该key
或者salt-key -A ##接受所有key
[root@Master ~]# salt-key -A

3.简单的测试
测试1
[root@Master ~]# salt '*' test.ping

详细解析:
‘*’代表的是target是指在那些minion上操作
‘test’是一个执行模块
‘ping’是执行模块下的函数
测试2
[root@Master ~]# salt '*' cmd.run 'df -h' #检查目标主机挂载

测试3.
所有minion安装ftp服务
[root@Master ~]# salt '*' pkg.install ftp
[root@Master ~]# salt '*' pkg.install vsftpd

参数详解:
Pkg是一个执行模块
Install是一个模块下面的参数
ftp是函数的参数(arg),有的函数需要参数,有的则不需要
------------------------------------------------------------------------------------------------------------------------------
Saltstack的部署及其详解的更多相关文章
- t持久化与集群部署开发详解
Quartz.net持久化与集群部署开发详解 序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我 ...
- centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解
centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...
- Kubernetes 部署策略详解-转载学习
Kubernetes 部署策略详解 参考:https://www.qikqiak.com/post/k8s-deployment-strategies/ 在Kubernetes中有几种不同的方式发布应 ...
- OpenVPN CentOS7 安装部署配置详解
一 .概念相关 1.vpn 介绍 vpn 虚拟专用网络,是依靠isp和其他的nsp,在公共网络中建立专用的数据通信网络的技术.在vpn中任意两点之间的链接并没有传统的专网所需的端到端的物理链路,而是利 ...
- 2、Redis 底层原理:Cluster 集群部署与详解
Redis 简介 Redis 提供数据缓存服务,内部数据都存在内存中,所以访问速度非常快. 早期,Redis 单应用服务亦能满足企业的需求.之后,业务量的上升,单机的读写能力满足不了业务的需求,技术上 ...
- OpenStack 部署步骤详解(mitaka/ocata/一键部署)
正文 OpenStack作为一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,开放源代码项目的云计算管理平台项目.具体知识我会在后面文章中做出介绍,本章主要按步骤给大家演示在C ...
- VS2013安装部署过程详解
注意:缺少安装部署的小伙伴,看上一篇有详细介绍 程序在“Release”平台下编译运行没有错误 第一步:“新建”------“项目”------“其他项目类型”------“安装部署”------“I ...
- 自动化运维工具Ansible的部署步骤详解
本文来源于http://sofar.blog.51cto.com/353572/1579894,主要是看到这样一篇好文章,想留下来供各位同僚一起分享. 一.基础介绍 ================= ...
- Openstack 实现技术分解 (1) 开发环境 — Devstack 部署案例详解
目录 目录 前言 系统环境 Devstack 下载源码 配置文件 local.conf & localrc 简易的环境脚本 openrc 部署 Devstack 自动化部署流程 部署案例 单节 ...
随机推荐
- CYQ.Data V5 分布式自动化缓存设计介绍(二)
前言: 最近一段时间,开始了<IT连>创业,所以精力和写的文章多数是在分享创业的过程. 而关于本人三大框架CYQ.Data.Aries.Taurus.MVC的相关文章,基本都很少写了. 但 ...
- 【Android Developers Training】 74. 序言:通过无线连接设备
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- hadoop伪分布式环境搭建
环境:Centos6.9+jdk+hadoop1.下载hadoop的tar包,这里以hadoop2.6.5版本为例,下载地址https://archive.apache.org/dist/hadoop ...
- 在SOUI中使用网格布局
在实现网格布局前,SOUI支持两种布局形式:相对布局,和线性布局,其中线性布局是2017年2月份才支持的布局. 这两年工作都在Android这里,Android里有号称5大布局(RelativeLay ...
- CSS3学习系列之布局样式(二)
使用盒布局 在CSS3中,通过box属性来使用盒布局,例子如下: <!DOCTYPE html> <html lang="en"> <head> ...
- JDBC02 利用JDBC连接数据库【使用数据库连接池】
目录 1/2/3 Statement 和 Preparedstatement 的区别 4 读取properties配置文件 5 数据库连接池 6 利用数据库连接池连接数据库 1 使用Statemen ...
- 【Linux相识相知】bash的基础特性
命令历史 shell进程会记录用户提交执行过的命令 可以是用history查看: [root@localhost dev]# history ss -tnl ifconfig vi /etc/sysc ...
- 常见的排序算法总结(JavaScript)
引言 排序算法是数据结构和算法之中的基本功,无论是在笔试还是面试,还是实际运用中都有着很基础的地位.这不正直七月,每年校招的备战期,所以想把常见的排序算法记录下来.在本篇文章中的排序算法使用 Java ...
- 软考 程序员 下午考题 c语言 笔记
1. 数组名 是表示数组空间首地址的指针常量,程序中不允许对常量赋值. 如 int a[]; a就是数组名,表示数组控件首地址的指针常量 a = 0;是错误的,不允许对指针常量赋值 &a ...
- JavaScript中闭包实现的私有属性的getter()和setter()方法
注意: 以下的输出都在浏览器的控制台中 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...