主机规划

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. springboot系列三、springboot 单元测试、配置访问路径、多个配置文件和多环境配置,项目打包发布

    一.单元测试 生成的demo里面包含spring-boot-starter-test :测试模块,包括JUnit.Hamcrest.Mockito,没有的手动加上. <dependency> ...

  2. C:详解C中volatile关键字

    原文地址:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可 ...

  3. discuz安装:mysqli_connect()不支持advice_mysqli_connect

    原文:http://blog.csdn.net/changzhi1990/article/details/40983247 php -m 输出: PHP Warning: PHP Startup: U ...

  4. Android开发之多Fragment切换优化

    问题分析 一直在简书里看别人的技术贴,今天我也来写点自己的心得!最近在写一个项目用到大量的Fragment后的总结! 我想刚刚接触安卓的同学或许会这么写: FragmentManager fragme ...

  5. mysql查询不区分大小写问题分析和解决

    mysql查询默认是不区分大小写的 如: select * from some_table where str=‘abc'; select * from some_table where str='A ...

  6. java多线程快速入门(十四)

    使用atomicInteger解决了原子性问题(AtomicInteger保证每次只能一个线程操作count) package com.cppdy; import java.util.concurre ...

  7. pychrame更换默认以unittest执行或取消单元测试框架执行

    选择某个测试框架运行脚本 File-> Settings -> Tools -> Python Integrated Tools -> Default test runner ...

  8. Linux下配置自动更新时间

    1,修正本地时区及ntp服务 [root@VM_0_13_centos ~]# yum -y install ntp [root@VM_0_13_centos ~]# rm -rf /etc/loca ...

  9. 步步为营-36-ADO.Net简介

    与数据库进行连接交互 方法一 #region 01连接对象 //01 连接字符串 string connstr = "server=.;uid=sa;pwd=sa;database=Demo ...

  10. equals&&==的使用

    package stringyiwen; /* * ==:比较运算符,在基本数据类型比较的是值* ==:引用数据类型比较的是地址值 *//* * equals方法:[只]用于[引用数据数据类型],如果 ...