主机规划

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. echo -e 参数

    -e  若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a   发出警告声:   \b  删除前一个字符:   \c  最后不加上换行符号:   \f  换行但光标仍旧停留在原 ...

  2. centos系统设置通过windows代理上网

    网络环境说明: 物理机windows xp sp3系统 ip:192.168.29.21(通过路由上网,有权限设置proxy给其他机器代理上网) 虚拟机centos5.5系统 ip:192.168.2 ...

  3. Linux安全配置步骤简述

    一.磁盘分区  1.如果是新安装系统,对磁盘分区应考虑安全性:   1)根目录(/).用户目录(/home).临时目录(/tmp)和/var目录应分开到不同的磁盘分区:   2)以上各目录所在分区的磁 ...

  4. npm install 报错(npm ERR! errno -4048,Error: EPERM: operation not permitted,)解决方法

    npm ERR! path E:\SouthernPowerGridProject\web_project\AutoOPS\autoops\node_modules\fsevents\node_mod ...

  5. mace

    作者:十岁的小男孩 QQ:929994365 心之安处即是吾乡. 本文主要的方向是终端移植.其主要又分两个小方向,理论和实践,即模型优化和模型移植.下文为前期写的,较为潦草,现在基本框架思路已经搭起来 ...

  6. python 全栈开发,Day134(爬虫系列之第1章-requests模块)

    一.爬虫系列之第1章-requests模块 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的 ...

  7. python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)

    一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...

  8. python 全栈开发,Day77(图书管理系统)

    一.图书管理系统 完整代码链接: https://github.com/py3study/bms_multi 本项目使用session来实现一个简单的图书管理系统 未登录不允许访问后台: 直接访问后台 ...

  9. js创建、写入、读取文件(转)

    下面是对此知识的系统介绍(转自互联网): Javascript 是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和 ...

  10. JavaScript中利用Ajax 实现客户端与服务器端通信(九)

    一:Ajax (Asynchronous JavaScript and XML)不是一个新的技术,事实上,它是一些旧有的成熟的技术以一种全新的更加强大的方式整合在一起 Ajax的关键技术: 1.使用X ...