基于centos7部署saltstack服务器管理自动化运维平台

概述

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。

通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

下面介绍一下saltstack的部署及使用教程。

官网:http://docs.saltstack.cn/

环境:




一、yum安装saltstack

1、配置epel源

salt软件包需要epel源的支持,那么下载

for i in /etc/yum.repos.d/*.repo;do cp $i ${i%.repo}.bak;done
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache


2、安装salt包

--先安装epel源
yum install epel-release -y 
--安装salt-master
yum install salt-master -y
--安装salt-minion
yum install salt-minion -y
--其他
yum install salt-ssh -y
yum install salt-syndic -y
yum install salt-cloud -y

3、开机自启动

--salt-master开机自启
systemctl enable salt-master.service 
systemctl start salt-master.service 
systemctl status salt-master.service 

--salt-minion开机自启
systemctl enable salt-minion.service 
systemctl start salt-minion.service 
systemctl status salt-minion.service



二、saltstack配置

1、管理端配置

1.1、修改hosts文件解析

# vim /etc/hosts
#####################saltstack#########################
xx.xx.xx.3   xxxsalt-master
#prod
xx.xx.xx.134  xxxxsalt-minion

1.2、修改salt-master配置文件

# cat /etc/salt/master |grep -v '^#'|grep -v '^#39;
==============================================================================
interface: salt-master-IP        #监听地址改成主机IP
publish_port: 4505             #4505消息发布端口(所有minion在4505上保持established)
ret_port: 4506                 #salt客户端和服务端通信使用4506端口,内容传输使用消息队列
auto_accept: True              #证书认证
file_roots:                    #开启站点目录
  base:
    - /srv/salt/
  prod:
    - /srv/salt/prod/services
    - /srv/salt/prod/states
  uat:
    - /srv/salt/uat/services
    - /srv/salt/uat/states
pillar_roots:
  base:
    - /srv/pillar
pillar_opts: True              #开启pillar功能,同步文件功能
nodegroups:
  group1: 'XX-AP'      #被管理端主机名
  group2: 'XX-TEST-AP'

1.3、创建配置文件中对应的目录

mkdir -p /srv/salt/prod/services
mkdir -p /srv/salt/prod/states
mkdir -p /srv/salt/uat/services
mkdir -p /srv/salt/uat/states

1.4、重启服务

 systemctl restart salt-master

2、被管理端配置

2.1、修改配置文件

cat > /etc/salt/minion << EOF
  master: salt-master-ip
  id: `hostname`
EOF

2.2、重启服务

 systemctl restart salt-minion



三、salt集群测试

1、salt-key 密钥管理,通常在master端执行
salt-key [options]
salt-key -L ##查看所有minion-key
salt-key -a <key-name> ##接受某个minion-key
salt-key -d <key-name> ##删除某个minion-key
salt-key -A ##接受所有的minion-key
salt-key -D ##删除所有的minion-key


2、salt-run 在master执行runner
salt-run [options] [runner.func]
salt-run manage.status ##查看所有minion状态
salt-run manage.down ##查看所有没在线minion
salt-run manged.up ##查看所有在线minion

3、salt可以让minion执行命令.
执行模块命令。

cmd.run模块执行shell命令。

cmd.script方式:可以向远程主机执行脚本。

salt -C 'ZL-FSL-AMS-TEST-AP' test.ping        #模块命令。测试minion存活状态,-C多参数
salt  'ZL-FSL-AMS-TEST-AP'  cmd.run 'ls /home'
salt '*' cmd.script salt://temp.sh salt:// == /srv/salt(salt的默认发布目录)

4、salt执行cp模块salt-cp 分发文件到minion上,不支持目录分发。

  salt-cp '*'  /home/scripts/zabbix_backup.sh  /home/zabbix_backup.sh


5、salt执行自定义脚本。

salt:// 是指 /srv/salt(salt的默认发布目录)



觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~


相关文章

Linux离线安装Python3教程

在Linux离线环境中安装Python3需要提前准备好安装包及其依赖,以下是详细步骤:1. 准备Python源码包在联网机器上操作:bash# 下载Python源码包(以Python 3.7.9为例)...

「从零开始Python爬虫」1.8.2 Scrapy的安装

Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted 14.0、lxml 3.4和pyOpenSSL 0.14。在不同的平台环境下,它所依赖的库也各不相同,所以在安装...

centos7安装python3

系统默认安装了python2,现需要python3,可以采用如下命令安装。默认可以上网。╰─ sudo yum install python3.x86_64 [sudo] password for...

如何安装 pip 管理工具

如何安装 pip 管理工具方法一: yum 方式安装Centos安装 python3 和 python3-devel 开发包> # yum install gcc libffi-devel py...

CentOS 7下Yum及RPM安装GitLab CE 14.0.3

一、概述  GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与GitHub类似的功能,能够浏览源代...

Python笔记:Centos7中安装python3过程

Centos7系统默认安装的python版本为python2.7.5,可以使用python -v命令查看当前python版本信息。本文将python版本升级到python3.8.0版本第一步:安装相关...