linux运维、架构之路-SaltStack快速入门
一、SaltStack介绍
SaltStack是一个服务器基础架构集中化管理平台,SaltStack基于Python语言实现,也是基于C/S架构,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建,SaltStack整合了Puppet和Chef的功能,更适合大规模批量管理服务器,配置简单。
三大主要功能:远程执行、配置管理、云管理
运行方式:local、Master/Minion、Salt SSH
二、SaltStack工作原理
salt-master服务启动后会开启两个端口:4505和4506,minion没有端口,通过“双向密钥交换”(可通过tree /etc/salt/pki命令查看)来实现安全管理。salt-master每执行一条命令,所有minion均可收到。
[root@m01 haproxy]# lsof -n -i:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mini root 24u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 12u IPv4 0t0 TCP *: (LISTEN)
salt-mast root 14u IPv4 0t0 TCP 172.16.1.61:->172.16.1.7: (ESTABLISHED)
salt-mast root 15u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 16u IPv4 0t0 TCP 172.16.1.61:->172.16.1.3: (ESTABLISHED)
[root@m01 haproxy]# lsof -n -i:4506 #所有的minion都与master通信,而回复的时候,master则使用4506端口
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mini root 13u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 20u IPv4 0t0 TCP *: (LISTEN)
salt-mast root 27u IPv4 0t0 TCP 172.16.1.61:->172.16.1.61: (ESTABLISHED)
salt-mast root 28u IPv4 0t0 TCP 172.16.1.61:->172.16.1.7: (ESTABLISHED)
salt-mast root 29u IPv4 0t0 TCP 172.16.1.61:->172.16.1.3: (ESTABLISHED)
三、SaltStack安装部署
1、环境
[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.32-696.el6.x86_64
2、master服务端安装
rpm -ivh http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm#安装epel源
yum install salt-master salt-minion -y
sed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#修改minion配置文件指定master
/etc/init.d/salt-master start
/etc/init.d/salt-minion start
chkconfig salt-master on
chkconfig salt-minion on
3、minion客户端安装配置
yum install salt-minion -y
sed -i 's/#master: salt/master: 172.16.1.61/g' /etc/salt/minion#直接替换指定master地址
/etc/init.d/salt-minion start
chkconfig salt-minion on
4、SaltStack常用命令参数
常用命令参数 |
命令说明 |
salt-key -L |
查看minion列表 |
salt-key -A |
同意接管所有的minion |
salt-key -a |
同意接管指定的一个minion |
salt-key -D |
删除所有认证的minion |
salt-key -d |
删除指定的minion |
salt-run manage.up |
查看存活的minion |
salt-run manage.down |
查看死掉的minion |
salt-run manage.status |
查看minion的相关状态 |
salt-run manage.versions |
查看salt的所有master和minion的版本信息 |
salt -d |
查看帮助文档 |
salt '*' sys.doc |
查看帮助文档 |
salt -d|grep service |
查看service相关模块命令 |
salt '*' service.get_all |
获取minion所有服务 |
salt '*' service.reload sshd |
重新加载sshd服务 |
salt '*' pkg.list_pkgs |
显示软件包版本列表 |
salt '*' pkg.version python |
显示软件包版本信息 |
salt '*' pkg.install httpd |
安装软件包 |
salt '*' service.status mysql |
查看mysql服务状态 |
salt '*' service.start mysql |
启动mysql服务 |
salt '*' sys.list_modules |
模块列表 |
salt-cp'*'/etc/hosts /etc/hosts |
分发hosts文件到所有minion端 |
salt'*'file.copy/tmp/zabbix.sls /tmp/sls |
把服务端对应文件拷贝到minion端相应目录下 |
salt '*' cp.get_dir salt://zabbix /tmp |
把服务端对应目录拷贝到minion端相应目录下 |
5、远程执行
①cmd.script远程执行脚本
salt '*' cmd.script salt://scripts/runme.sh
salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'
②cmd.shell远程执行命令
salt '*' cmd.shell "ls -l | awk '/foo/{print \$2}'"
salt '*' cmd.shell template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'"
③测试到客户端的连通性
[root@m01 ~]# salt '*' test.ping
m01:
True
haproxy01:
True
web02:
True
④遇到的问题
#问题
salt-minion dead but pid file exists
#解决
rm -fr /etc/salt/pki/minion/minion_master.pub
/etc/init.d/salt-minion restart
linux运维、架构之路-SaltStack快速入门的更多相关文章
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- linux运维、架构之路-Docker快速入门
一.Docker介绍 Docker是Docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- Linux 运维入门到跑路书单推荐
一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- 初学者怎么快速掌握Linux运维?
2018年里,Linux运维的职位数量和平均薪资水平仍然持续了去年的强劲增幅,比很多开发岗位涨的都快.从研究机构的数据来看,Linux职位数量和工资水平涨幅均在IT行业的前五之列,比去年的表现还要好一 ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- 如何快速成为一名Linux运维工程师
如今的互联网,绝大多数的网站.服务.游戏均是跑在Linux上面的,虽说Linux发行版众多,只要玩熟了一种发行版,了解了Linux精髓.基本架构.设计原理,其他都是触类旁通的,千万不要在选择哪一发行版 ...
随机推荐
- Java 高级-集合框架
参考资料 参考 HashMap 类似 C++ 中的 STL 标准模板库,Java 也在 java.util 包中封装了一套常用数据结构及其算法,称为集合框架.所有的集合框架都包含如下内容: 接口:代表 ...
- 基于nginx实现二维码下载安装apk文件
将apk文件置于nginx目录下 <!--进入nginx安装路径--> /usr/local/nginx <!--新建放apk的目录--> mkdir -p resources ...
- 结合element-ui封装的一个分页函数
第一次写博客,专门写给菜鸟看的,如果你是老鸟,你可以直接无视. 首先我们从豆瓣api获取到电影的数据列表 然后我们把他们切成一块一块的小数组 最后的数组将会是这样 原理就是以上的内容,接下来直接附上 ...
- 【转载】如何编写ROS的第一个程序hello_world
目录 1.工作空间的创建 2.功能包的创建 3.功能包的源代码编写 4.功能包的编译配置 5.功能包的编译 6.功能包的启动运行 既然ROS已经成功安装好了,大家一定很想亲自动动手编一个通过起手式例程 ...
- 手动刷新客户端配置内容(Spring Cloud Config)
手动刷新客户端配置内容 客户端项目增加依赖项 <dependency> <groupId>org.springframework.boot</groupId> &l ...
- Java开发第一次面试经验(视频面试)
坐标:山东潍坊公共实训基地 面试岗位:java开发实习生 我们班级一共6个人一起面试,1对1,其他人坐在旁边倾听,两个大牛,四个酱油,我应该是最黑的酱油啦. 面试问题: 1.请简短的做一下自我介绍: ...
- vue观察模式浅析
以下是我对vue观察者模式的理解:github L6zt 加入tip 2018-10-14 最近又看到<js设计模式设计>书 推荐去搂搂不要对框架的偏见, 你真的了解jquery.angu ...
- Django重点之url别名
django重点之url别名[参数名必须是name,格式是name="XXX] 不论后台路径如何进行修改路径,前台访问的路径不变,永远是alias, 这样方便开发 前台根据 {{ url & ...
- Hdu 4578 Transformation (线段树 分类分析)
Transformation Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 65535/65536 K (Java/Others)T ...
- 06-JavaScript简介
### 前段三大块 ```HTML css JavaScript``` ### 什么是JavaScript? JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户 ...