ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-07-01 19:01:03  阅读:223  来源: 互联网

标签:minion Salt 管理工具 root repo master && saltstack salt


常用的自动化管理工具

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

常用的自动化运维工具有:
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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有