其他分享
首页 > 其他分享> > 常用的自动化管理工具&&saltstack介绍、安装、使用

常用的自动化管理工具&&saltstack介绍、安装、使用

作者:互联网

常用的自动化管理工具

作为一个运维人员,很大一部分工作是在业务的配置管理和状态维护以及版本发布上,而当业务场景及公司规模上了一定规模后,人为手工的去做这些工作将变得极其困难,此时我们将需要利用一些自动化运维的工具来达到批量管理的目的。

常用的自动化运维工具有:
puppet
ansible
saltstack


此三款属同类工具,皆可用来提高运维管理的效率,但它们又各有优势,目前主流的自动化运维工具是ansible和saltstack。其中ansible无需安装客户端,这是其最大的优势,而saltstack则需要安装客户端工具,类似zabbix的agent。应用场景方面,ansible常用于小型企业,而saltstack则常用于中大型企业,因为ansible无法并行执行而saltstack可以并行。但不论其特点如何,本质上均属同类,所以只需要掌握一种即可轻松胜任运维工作。

saltstack介绍

saltstack服务架构

在saltstack架构中服务器端叫Master,客户端叫Minion。

在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受minion请求)和publish_port(发布消息)的端口。

当Minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。

saltstack除了传统的C/S架构外,其实还有一种叫做masterless的架构,其不需要单独安装一台 master
服务器,只需要在每台机器上安装 Minion端,然后采用本机只负责对本机的配置管理机制服务的模式。

SaltStack四大功能与四大运行方式

SaltStack有四大功能,分别是:

  • 远程执行
  • 配置管理/状态管理
  • 云管理(cloud)
  • 事件驱动

SaltStack可以通过远程执行实现批量管理,并且通过描述状态来达到实现某些功能的目的。

SaltStack四大运行方式:

  • local本地运行
  • Master/Minion传统方式
  • Syndic分布式
  • Salt ssh

SaltStack组件介绍

组件功能
Salt Master用于将命令和配置发送到在受管系统上运行的Salt minion
Salt Minions从Salt master接收命令和配置
Execution Modules从命令行针对一个或多个受管系统执行的临时命令。对…有用: 1. 实时监控,状态和库存 2. 一次性命令和脚本 3. 部署关键更新
Formulas (States)系统配置的声明性或命令式表示
GrainsGrains是有关底层受管系统的静态信息,包括操作系统,内存和许多其他系统属性。
Pillar用户定义的变量。这些安全变量被定义并存储在Salt Master中,然后使用目标“分配”给一个或多个Minion。 Pillar数据存储诸如端口,文件路径,配置参数和密码之类的值。
Top File将Formulas (States)和Salt Pillar数据与Salt minions匹配。
Runners在Salt master上执行的模块,用于执行支持任务。Salt runners报告作业状态,连接状态,从外部API读取数据,查询连接的Salt minions等。
Returners将Salt minions返回的数据发送到另一个系统,例如数据库。Salt Returners可以在Salt minion或Salt master上运行。
Reactor在SaltStack环境中发生事件时触发反应。
Salt Cloud / Salt Virt在云提供商/虚拟机管理程序上提供系统,并立即将其置于管理之下。
Salt SSH在没有Salt minion的系统上通过SSH运行Salt命令。

saltstack安装

配置环境

角色ip地址需要安装的应用
控制端(master)192.168.10.20salt-master
salt-minion
被控端(P1)192.168.10.30salt-minion

在控制端安装、配置saltstack

#导入key,配置salt仓库
[root@master ~]# rpm --import https://repo.saltproject.io/py3/redhat/8/x86_64/latest/SALTSTACK-GPG-KEY.pub
[root@master ~]# curl -fsSL https://repo.saltproject.io/py3/redhat/8/x86_64/latest.repo | tee /etc/yum.repos.d/salt.repo
[salt-latest-repo]
name=Salt repo for RHEL/CentOS 8 PY3
baseurl=https://repo.saltproject.io/py3/redhat/8/x86_64/latest
skip_if_unavailable=True
failovermethod=priority
enabled=1
enabled_metadata=1
gpgcheck=1
gpgkey=https://repo.saltproject.io/py3/redhat/8/x86_64/latest/SALTSTACK-GPG-KEY.pub

#清除缓存
[root@master ~]# yum clean expire-cache

#安装软件包与tree命令
[root@master ~]# dnf install -y salt-master salt-minion
[root@master ~]# dnf install -y tree

#修改minion配置文件
[root@master ~]# cd /etc/salt/
[root@master salt]# ls
cloud           cloud.profiles.d   minion    proxy.d
cloud.conf.d    cloud.providers.d  minion.d  roster
cloud.deploy.d  master             pki
cloud.maps.d    master.d           proxy

[root@master salt]# sed -i '/^#master:/a master: 192.168.10.20' /etc/salt/minion
[root@master salt]# sed -n '/^master/p' /etc/salt/minion
master: 192.168.10.20

#启动salt-master与salt-minion
[root@master ~]# systemctl enable --now salt-master
Created symlink /etc/systemd/system/multi-user.target.wants/salt-master.service → /usr/lib/systemd/system/salt-master.service.
[root@master ~]# systemctl enable --now salt-minion
Created symlink /etc/systemd/system/multi-user.target.wants/salt-minion.service → /usr/lib/systemd/system/salt-minion.service.

#4505和4506都是salt-master的端口号,4505是publish_port    4506是ret_port
[root@master ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port   Peer Address:Port                      Process                      
LISTEN 0      128          0.0.0.0:22          0.0.0.0:*                                                      
LISTEN 0      128          0.0.0.0:4505        0.0.0.0:*                                                      
LISTEN 0      128          0.0.0.0:4506        0.0.0.0:*                                                      
LISTEN 0      128             [::]:22             [::]:*                                                      

在被控制端安装、配置salt-minion

[root@P1 ~]# rpm --import https://repo.saltproject.io/py3/redhat/8/x86_64/latest/SALTSTACK-GPG-KEY.pub
[root@P1 ~]# curl -fsSL https://repo.saltproject.io/py3/redhat/8/x86_64/latest.repo | tee /etc/yum.repos.d/salt.repo
[salt-latest-repo]
name=Salt repo for RHEL/CentOS 8 PY3
baseurl=https://repo.saltproject.io/py3/redhat/8/x86_64/latest
skip_if_unavailable=True
failovermethod=priority
enabled=1
enabled_metadata=1
gpgcheck=1
gpgkey=https://repo.saltproject.io/py3/redhat/8/x86_64/latest/SALTSTACK-GPG-KEY.pub

[root@P1 ~]# yum clean expire-cache
[root@P1 ~]# yum install -y salt-minion

[root@P1 ~]# sed -i '/^#master:/a master: 192.168.10.20' /etc/salt/minion
[root@P1 ~]# sed -n '/^master/p' /etc/salt/minion
master: 192.168.10.20
[root@P1 ~]# systemctl enable --now salt-minion
Created symlink /etc/systemd/system/multi-user.target.wants/salt-minion.service → /usr/lib/systemd/system/salt-minion.service.
[root@P1 ~]# systemctl status salt-minion
● salt-minion.service - The Salt Minion
   Loaded: loaded (/usr/lib/systemd/system/salt-minion>
   Active: active (running) since Thu 2021-07-01 06:28>
     Docs: man:salt-minion(1)
           file:///usr/share/doc/salt/html/contents.ht>
           https://docs.saltstack.com/en/latest/conten>
 Main PID: 790062 (salt-minion)
    Tasks: 8 (limit: 4743)
   Memory: 84.7M
   CGroup: /system.slice/salt-minion.service
           ├─790062 /usr/bin/python3.6 /usr/bin/salt-m>
           ├─790087 /usr/bin/python3.6 /usr/bin/salt-m>

标签:minion,Salt,管理工具,root,repo,master,&&,saltstack,salt
来源: https://blog.csdn.net/happy___life/article/details/118392325