主机规划

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. kafka系列十、kafka常用管理命令

    一.Topic管理 1.创建topic kafka-topics.sh --zookeeper 47.52.199.52:2181 --create --topic test-15 --replica ...

  2. Mashup

    简介 mashup是糅合,是当今网络上新出现的一种网络现象,将两种以上使用公共或者私有数据库的web应用,加在一起,形成一个整合应用.一般使用源应用的API接口,或者是一些rss输出(含atom)作为 ...

  3. 使用命令行登陆数据库配置文件修改 解决ora12528

    下面是问题解决: ORA-12528: TNS:listener: all appropriate instances are blocking new connections 1:修改listene ...

  4. PYTHON-模块 logging hashlib

    '''import logging # 1. 控制日志级别# 2. 控制日志格式# 3. 控制输出的目标为文件logging.basicConfig(filename='access.log', fo ...

  5. PHP CLI模式下的多进程应用

    作者: Laruence(   ) 本文地址: http://www.laruence.com/2009/06/11/930.html 转载请注明出处 PHP在很多时候不适合做常驻的SHELL进程, ...

  6. DOM绑定事件

    addEventListener(event,function,useCapture)event:事件名,比如clickuseCapture布尔值,指定事件是否在捕获或冒泡阶段执行. 可能值: tru ...

  7. Oracle12c 性能优化攻略:攻略1-2:创建具有最优性能的表空间

    问题描述:    1:表空间是存储数据库对象(例如索引 .表)的逻辑容器.    2:在创建数据库对象不为其指定存储属性,则相应的表和索引会自动继承表空间的存储特性.    故:若需要好的索引.表的性 ...

  8. 并发之AQS原理(三) 如何保证并发

    并发之AQS原理(三) 如何保证并发 1. 如何保证并发 AbstractQueuedSynchronizer 维护了一个state(代表了共享资源)和一个FIFO线程等待队列(多线程竞争资源被阻塞时 ...

  9. php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)

    1.电子邮件地址的校验 <?php /* 校验邮件地址*/ function checkMail($email) { //用户名,由“w”格式字符.“-”或“.”组成 $email_name= ...

  10. html----不常见标签

    控制文字滚动 <!-- direction="right up down left" --> <!-- behavior:滚动方式(包括3个值:scroll.sl ...