主机规划

10.0.0.21  master
10.0.0.22 minion
10.0.0.23 minion

基础环境

[root@10.0.0.21 ~]# cat /etc/redhat-release
CentOS Linux release 7.1. (Core) [root@10.0.0.21 ~]# uname -r
3.10.-957.el7.x86_64 [root@10.0.0.21 ~]# uname -m
x86_64

关闭防火墙和SElinux

[root@10.0.0.21 ~]# systemctl stop firewalld
[root@10.0.0.21 ~]# vim /etc/selinux/config
SELINUX=disabled
[root@10.0.0.21 ~]# getenforce
Disabled

配置机器的hosts文件,用于加速域名解析,加入以下信息,每台机器都要配置

[root@10.0.0.21 opt]# cat /etc/hosts

10.0.0.21 10.0.0.21
10.0.0.22 10.0.0.22
10.0.0.23 10.0.0.23

更改主机名

[root@10.0.0.21 opt]# hostnamectl set-hostname master
[root@10.0.0.22 opt]# hostnamectl set-hostname minion
[root@10.0.0.23 opt]# hostnamectl set-hostname minion

安装

配置epel源

[root@10.0.0.21 opt ]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@ 10.0.0.21 opt ]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#清空缓存
[root@ 10.0.0.21 opt ]# yum clean all
#生成yum缓存
[root@ 10.0.0.21 opt ]# yum makecache

开始安装salt了

安装master(10.0.0.21)
[root@10.0.0.21 opt]# yum install salt-master -y
安装minion(10.0.0.22,10.0.0.23)
[root@10.0.0.22 opt]# yum install salt-minion -y

salt端口

安装好salt之后开始配置,salt-master默认监听两个端口:

4505   publish_port 提供远程命令发送功能
4506 ret_port 提供认证,文件服务,结果收集等功能
确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。

配置文件

salt-master的配置文件是/etc/salt/master
salt-minion的配置文件是/etc/salt/minion
配置文件中包含了大量可调整的参数,这些参数控制master和minion各个方
# salt运行的用户,影响到salt的执行权限
user: root #s alt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过CPU的个数
worker_threads: 10 # master的管理端口
publish_port : 4505 # master跟minion的通讯端口,用于文件服务,认证,接受返回结果等
ret_port : 4506 # 如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
syndic_master_port : 4506 # 指定pid文件位置
pidfile: /var/run/salt-master.pid

salt-master 常用配置

salt-master文件配置

[root@10.0.0.21 opt]# grep -v ^# /etc/salt/master|grep -v ^$
interface: 0.0.0.0 #绑定到本地的0.0.0.0地址
publish_port: 4505  #管理端口,命令发送
user: root      #运行salt进程的用户
worker_threads: 5  #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
ret_port: 4506  #执行结果返回端口
pidfile: /var/run/salt-master.pid #pid文件位置
log_file: /var/log/salt/master  #日志文件地址 #自动接收minion的key
auto_accept: False
# minion的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
id: slave # salt运行的用户权限
user: root # master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
master : master # master通信端口
master_port: 4506 # 备份模式,minion是本地备份,当进行文件管理时的文件备份模式
backup_mode: minion # 执行salt-call时候的输出方式
output: nested # minion等待master接受认证的时间
acceptance_wait_time: 10 # 失败重连次数,0表示无限次,非零会不断尝试到设置值后停止尝试
acceptance_wait_time_max: 0 # 重新认证延迟时间,可以避免因为master的key改变导致minion需要重新认证的syn风暴
random_reauth_delay: 60 # 日志文件位置
log_file: /var/logs/salt_minion.log

salt-minion 常用配置

salt-minion文件配置

[root@10.0.0.22 opt]# grep -v ^# /etc/salt/minion|grep -v ^$
master: 10.0.0.21
master_port: 4506
user: root
id: 10.0.0.22
acceptance_wait_time: 10
log_file: /var/log/salt/minio

启动salt-master和salt-minion

[root@10.0.0.21 opt]# systemctl start salt-master
[root@10.0.0.22 opt]# systemctl start salt-minion

查看salt的状态

[root@10.0.0.21 opt]# systemctl status salt-master
[root@10.0.0.22 opt]# systemctl status salt-minion

在master上接收minion秘钥

在salt-master执行

[root@10.0.0.21 opt]# salt-key *
Accepted Keys:
Denied Keys:
Unaccepted Keys:
10.0.0.22
10.0.0.23
Rejected Keys:

指定接受minion的key

[root@10.0.0.21 opt]# salt-key -a 10.0.0.22

检查两条秘钥情况

在主执行
salt-key -f 10.0.0.22 在从执行
salt-call --local key.finger

salt-key常用命令

[root@10.0.0.21 opt]# salt-key -L
Accepted Keys: #已经接受的key
Denied Keys: #拒绝的key
Unaccepted Keys:#未加入的key
Rejected Keys:#吊销的key #常用参数
-L #查看KEY状态
-A #允许所有
-D #删除所有
-a #认证指定的key
-d #删除指定的key
-r #注销掉指定key(该状态为未被认证) #在master端/etc/salt/master配置
auto_accept: True #如果对Minion信任,可以配置master自动接受请求

日常命令参数

首先知道master和minion都安装了什么文件,然后才知道怎么操作

master端

pm -ql salt-master
/etc/salt/master      # salt master主配置文件
/usr/bin/salt #salt master 核心操作命令
/usr/bin/salt-cp #salt 文件传输命令
/usr/bin/salt-key #salt证书管理
/usr/bin/salt-master #salt master 服务命令
/usr/bin/salt-run #salt master runner命令

slave端

[root@slave  ~]$rpm -ql salt-minion
/etc/salt/minion     #minion配置文件
/usr/bin/salt-call #拉取命令
/usr/bin/salt-minion #minion服务命令
/usr/lib/systemd/system/salt-minion.service #minion启动脚本

第一条salt命令

探测minion主机是否存活

[root@10.0.0.21 opt]# salt '*' test.ping
10.0.0.22:
True
10.0.0.23:
True # salt 是一个命令
# * 表示目标主机, 在这里代表所有目标主机
# test.ping是salt远程执行的一个模块下面的方法。

获取minion主机名

[root@10.0.0.21 opt]# salt '*' cmd.run 'hostname'

获取minion的IP

[root@10.0.0.21 opt]# salt '*' cmd.run 'ip a'

在minion创建文件

[root@10.0.0.21 opt]# salt '*' cmd.run 'touch /tmp/text.txt '

返回值的格式替换

[root@10 opt]# salt --out=json "*" cmd.run  "hostname"

返回yaml的语法格式

[root@10 opt]# salt --out=yaml "*" cmd.run  "hostname"

为所有的机器安装nginx

安装
[root@10.0.0.21 opt]# salt "*" pkg.install 'nginx' 卸载
[root@10.0.0.21 opt]# salt "*" pkg.remove 'nginx' 查看pkg包的版本
[root@10.0.0.21 opt]# salt "*" pkg.version 'nginx'

远程管理

启动
[root@10.0.0.21 opt]# salt "*" service.start 'nginx' 关闭
[root@10.0.0.21 opt]# salt "*" service.stop 'nginx' 查看状态
[root@10.0.0.21 opt]# salt "*" service.status 'nginx'

Saltstack 安装 命令的更多相关文章

  1. SaltStack安装篇

    一.基础介绍1.简介 salt 是一个基础平台管理工具 salt是一个配置管理系统,能够维护预定于状态的远程节点 salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 2.salt的核 ...

  2. Saltstack 安装配置详解

    下面这篇文章主要介绍另外一个运维自动化工具 Saltstack . 一.简介 Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master ...

  3. saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入

    saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入salt的返回值写入mysql数据库:可参考:https://docs.saltstack.com/en/lat ...

  4. Saltstack安装配置过程

    一.安装配置 1.服务器配置情况 三台服务器,均需要关闭iptables和selinux(否则salt执行指令无效) master: 192.168.60.139 centos slave: 192. ...

  5. SaltStack 安装及配置认证

    一.SaltStack 安装 SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作这里我们使用 ...

  6. SaltStack安装及配置

    1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...

  7. SaltStack安装配置

    一.环境准备:操作系统CentOS Linux release 7.3.1611master ip:192.168.1.180minion ip:192.168.1.183设置server(maste ...

  8. SaltStack安装部署

    SaltStack安装部署 安装: 一. master: 1. 配置yum源安装 # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_ ...

  9. 01_3大配置管理工具、SaltStack安装、修改minion_id

    1.配置管理 1.1 puppet /'pʌpɪt/  木偶:傀儡:受他人操纵的人 使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等. 问题: 学习曲线非常陡峭 ...

随机推荐

  1. GetStockObject 理解

    原文地址:https://www.cnblogs.com/Clingingboy/archive/2013/04/13/3017952.html GetStockObject在图形编程中是常用API之 ...

  2. C/C++:函数调用规则__stdcall,__cdecl,__pascal,__fastcall

    __cdecl __cdecl 是 C Declaration  的缩写,表示 C 语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈.被调用函数不会要求调用者传递多 ...

  3. Innodb ,MyISAM

    1. InnoDB不支持FULLTEXT类型的索引. 2. InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算 ...

  4. Docker+STF在ubuntu下测试环境搭建(详细搭建步骤及踩坑记录)

    一.什么是OpenSTF? STF又称OpenSTF,它是一个手机设备管理平台,可以对手机进行远程管理.调试.远程手机桌面监控等操作.这个系统类似于目前很流行的云测服务比如Testin,虽然网页上提供 ...

  5. dynamic web module和对应的TOMCAT 版本

    大致因为java的web系统有多种类型,比如静态的和动态的,然后动态的java web project要设置dynamic web module,也就是动态网页模型,他必须要和对应的服务器搭配好了才能 ...

  6. HTML中的锚点设置和table格式

    锚点设置: <a href="#1">锚点</a> <a name="1"></a> table表格格式: &l ...

  7. 洛谷P3865 ST表

    传送门啦 思路: $ f[i][j] $ 表示从 $ i $ 开始,包含 $ 1<<j $ 个元素的区间的区间最大值: 转移方程: $ f[i][j]=max_(f[i][j-1],f[i ...

  8. [PHP] 链表数据结构(单链表)

    链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个程序运行时,内存分成五个区(堆区, ...

  9. Math 对象

    Math对象提供了,我们一般进行数学运算的所有函数. Math.random() 随机0~1之间的随机数 [0, 1) Math.max() 求传入参数的最大数 Math.min() 求传入参数的最小 ...

  10. java List.subList方法中的超级大陷阱

    ArrayList 中 subList 的基本用法: subList(fromIndex:int,toIndex:int):List<E> 返回从fromIndex到toindex-1 的 ...