saltstack的配置使用
介绍
认证管理,使其可以用于编配, 远程执行, 配置管理等等。部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。
号称世界上最快的消息队列ZeroMQ使得saltstack非常快速的管理大量服务器,采用RSA Key方式确认身份,传输采用AES加密,安全性也非常有保障。
saltstack三个功能如下:远程执行、配置管理和云管理。
支持平台: 几乎所有平台。
注:Master不可以安装到win平台,agent端可以。
saltstack架构
saltstack是基于C/S服务模式,在该架构中,服务器端叫做Master,客户端叫做Minion。传统的C/S模式我们这样理解,客户端发送请求给服务器端,服务器端接受到来自客户端的请求并处理完成后再返回客户端。 在saltstack架构中,不仅有传统的C/S服务模式,而且有消息队列中的发布与订阅(pub/sub)服务模式。目前我们一般用其C/S架构做批量管理工具。
saltstack工作原理如下:在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受minion请求)和publish_port(发布消息)的端口。当Minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。默认客户端请求id是socket.getfqdn()取到的值,也可以在Minion启动之前修改Minion的id值。关于整个启动通信过程,大家可以使用debug查看详细记录。
C/S架构如下:
Master端:SaltStack@Master: salt-master -l debug
SaltStack@Master: ss -a|egrep ‘4505|4506’
Minion端:SaltStack@Minion: salt-minion -l debug
SaltStack 除了传统的C/S架构外,其实还有Masterless架构,如果采用Masterless架构,我们就不需要单独安装一台SaltStack Master机器,只需要在每台机器上安装Minion,然后采用本机只负责对本机的配置管理工作机制服务模式,同时还有ssh协议实现方式。
基本环境
六台虚拟机
172.25.254.130 --- node1(master)
172.25.254.131 --- node2
172.25.254.132 --- node3
172.25.254.133 --- node4
172.25.254.134 --- node5
172.25.254.135 --- node6
安装yum源
使用的saltstack包,配置的私有仓库,在所有节点配置yum源,参考https://www.cnblogs.com/zyxnhr/p/10637533.html
安装matser包,并启动
[root@node1 yum.repos.d]# yum install salt-master
[root@node1 yum.repos.d]# systemctl start salt-master
[root@node1 yum.repos.d]# systemctl enable salt-master
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-master.service to /usr/lib/systemd/system/salt-master.service.
安装monion,并启动
[root@node3 ~]# yum install salt-minion
[root@node2 yum.repos.d]# systemctl start salt-minion
[root@node2 yum.repos.d]# systemctl enable salt-minion
Created symlink from /etc/systemd/system/multi-user.target.wants/salt-minion.service to /usr/lib/systemd/system/salt-minion.service.
master配置
root@node1 ~]# vim /etc/salt/states
interface: 0.0.0.0
state_top: top.sls
file_roots:
base:
- /etc/salt/states
[root@node1 ~]# systemctl restart salt-master
客户端minon配置
每个客户端节点都要配置
[root@node2 ~]# vim /etc/salt/minion
master: 172.25.254.130 #node1的master ip
id: 172.25.254.131 #本机标识
[root@node2 ~]# systemctl restart salt-minion
管理秘钥
查看:
[root@node1 ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
172.25.254.131
172.25.254.133
172.25.254.134
172.25.254.135
172.25.254.132
Rejected Keys:
[root@node1 ~]# salt-key -a 172.25.254.131
The following keys are going to be accepted:
Unaccepted Keys:
172.25.254.131
Proceed? [n/Y] y
Key for minion 172.25.254.131 accepted.
[root@node1 ~]# salt-key -L
Accepted Keys:
172.25.254.131
Denied Keys:
Unaccepted Keys:
172.25.254.133
172.25.254.134
172.25.254.135
172.25.254.132
Rejected Keys:
[root@node1 ~]# salt-key -a 172.25.254.132
The following keys are going to be accepted:
Unaccepted Keys:
172.25.254.132
Proceed? [n/Y] y
Key for minion 172.25.254.132 accepted.
[root@node1 ~]# salt-key -a 172.25.254.133
The following keys are going to be accepted:
Unaccepted Keys:
172.25.254.133
Proceed? [n/Y] y
Key for minion 172.25.254.133 accepted.
[root@node1 ~]# salt-key -a 172.25.254.134
The following keys are going to be accepted:
Unaccepted Keys:
172.25.254.134
Proceed? [n/Y] y
Key for minion 172.25.254.134 accepted.
[root@node1 ~]# salt-key -a 172.25.254.135
The following keys are going to be accepted:
Unaccepted Keys:
172.25.254.135
Proceed? [n/Y] y
Key for minion 172.25.254.135 accepted.
[root@node1 ~]# salt-key -L
Accepted Keys:
172.25.254.131
172.25.254.133
172.25.254.134
172.25.254.135
172.25.254.132
Denied Keys:
Unaccepted Keys:
Rejected Keys:
验证测试
[root@node1 ~]# salt "*" test.ping #测试所有连通性
172.25.254.131:
True
172.25.254.132:
True
172.25.254.133:
True
172.25.254.134:
True
172.25.254.135:
True
[root@node1 ~]# salt "*" cmd.run 'uptime'
172.25.254.134:
:: up day, :, user, load average: 0.00, 0.01, 0.05
172.25.254.132:
:: up day, :, users, load average: 0.00, 0.01, 0.05
172.25.254.133:
:: up day, :, user, load average: 0.00, 0.01, 0.05
172.25.254.135:
:: up day, :, user, load average: 0.00, 0.01, 0.05
172.25.254.131:
:: up day, :, user, load average: 0.00, 0.01, 0.05
单个测试及其他操作
[root@node1 ~]# salt '172.25.254.131' test.ping
172.25.254.131:
True
salt-key -A -y#添加所有
salt-key -D #删除所有
salt-key -d nodename #删除一个
则saltstack的基本配置完成,后续常用操作继续更新!
saltstack的配置使用的更多相关文章
- saltstack安装配置(syndic)
syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...
- saltstack安装配置(halite)
saltstack官方提供了一个简单的web UI--halite.但是给出的安装配置方法实在没法实现,在网上找了几篇博客,见文章末尾的参考链接,可以用起来了.但是功能有点简单.这篇文章记录安装配置h ...
- Saltstack 安装配置详解
下面这篇文章主要介绍另外一个运维自动化工具 Saltstack . 一.简介 Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master ...
- SaltStack安装配置详解
一.简介 Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions :Saltstack 和 Puppet ...
- saltstack部署配置
共计使用三台虚拟机进行部署实验,系统环境:centos7.3 在master上进行部署配置: 配置主机名 [root@localhost ~]# hostname salt-master [root@ ...
- saltstack安装配置使用记录
安装 参考 http://docs.saltstack.cn/topics/installation/index.html#installation 选择对应的OS 配置 环境如下: master:1 ...
- SaltStack 安装配置 centos7
参考文档 http://docs.saltstack.cn/contents.html 快速安装 初始配置 控制端master配置 # vim /etc/salt/master interface: ...
- Saltstack安装配置过程
一.安装配置 1.服务器配置情况 三台服务器,均需要关闭iptables和selinux(否则salt执行指令无效) master: 192.168.60.139 centos slave: 192. ...
- saltstack安装配置及常用命令
1.salt安装及配置详解 https://www.cnblogs.com/lgeng/p/6567424.html centos7配置: https://www.jianshu.com/p/4c91 ...
- 集中化管理平台Saltstack安装配置
salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似 ...
随机推荐
- Java练习 SDUT-1217_蟠桃记
蟠桃记 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第 ...
- 【SDOI2015】bzoj3990 排序
A. 排序 题目描述 输入格式 输出格式 一行,一个整数,表示可以将数组A从小到大排序的不同的操作序列的个数. 样例 样例输入 3 7 8 5 6 1 2 4 3 样例输出 6 数据范围与提示 对于3 ...
- 5 获取Form表单取值
#form表达提交@app.route("/data",methods=['GET','POST']) #methods 让当前路由支持GET 和 POST 方式def data( ...
- Android图形子系统
图形操作可以有两种方式实现:一是利用通用CPU模拟图形操作:二是利用GPU专门做图形操作.前者会增加CPU的负担,在现在高分辨率已经是普遍现象的时候,让通用处理器来完成大量的图形计算已经不现实.And ...
- Project Euler Problem 12-Highly divisible triangular number
最直接的想法就是暴力搞搞,直接枚举,暴力分解因子.再好一点,就打个素数表来分解因子.假设num=p1^a1p2^a2...pn^an,则所有因子个数为(a1+1)(a2+1)...(an+1). 再好 ...
- ccf-201703-4-地铁修建
二分+并查集 发现了一个很奇怪的问题,二分的上界设置错了,结果是运行错误...只有95分.后来改了上界就100了,百思不得其解 #include<cstdio> #include<c ...
- 在字符串中查找id值MySQL
PHPmyadmin中sql语句 SELECT * FROM `hz_article_type` WHERE FIND_IN_SET( 5, items_id ) LIMIT 0 , 30 结果: S ...
- Django使用cors解决跨域问题
1.安装Django-cors-headers模块 pip install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [ ... ' ...
- 通俗理解tf.name_scope()、tf.variable_scope()
前言:最近做一个实验,遇到TensorFlow变量作用域问题,对tf.name_scope().tf.variable_scope()等进行了较为深刻的比较,记录相关笔记:tf.name_scope( ...
- [转]Node.js中package.json中^和~的区别
webpack 项目的package.json 文件列出了项目所依赖的插件和库,同时也给出了对应的版本说明,但是在版本说明前面还有个符号:'^'(插入符号)和'~'(波浪符号),总结了下他们之间的区别 ...