0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SaltStack自动化运维入门指南

马哥Linux运维 来源:CSDN技术社区 2025-04-18 10:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Saltstack自动化运维入门

一、saltstack简介

1.简单介绍

saltstack 是基于C/S架构的服务模式,服务器端叫做Master,客户端叫作Minion,并且有消息队列中的发布与订阅(pub/sub)服务模式,minion与master之间通过 ZeroMQ 消息队列通信。Master和Minion端都以守护进程的模式运行,一直监听配置文件里面定义的ret_port也就是4506端口(接收minion请求)和publish_port也就是4505端口(ZMQ的发布消息)。当minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。采用RSA Key方式确认身份,传输采用AES加密,使传输的安全性得到保障。

Saltstack运行模式 :

• Local

• Master/Minion

• Salt SSH

Saltstack三大功能:

• 远程执行(执行远程命令)

• 配置管理(状态管理)

• 云管理

2.通信模式

Salt使用发布 - 订阅模式与受管系统进行通信。 连接由Salt minion发起,这意味着你不需要在这些系统上打开任何传入端口(从而减少攻击向量)。 Salt master使用端口4505和4506,必须打开端口才能接收访问连接。

7409ef28-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述
Publisher (端口4505)所有Salt minions都需要建立一个持续连接到他们收听消息的发布者端口。 命令是通过此端口异步发送给所有连接,这使命令可以在大量系统上同时执行。

Request Server (端口4506)Salt minions根据需要连接到请求服务器,将结果发送给Salt master,并安全地获取请求的文件或与特定minion相关的数据值(称为Salt pillar)。 连接到这个端口的连接在Salt master和Salt minion之间是1:1(不是异步)。

3.salt minion认证

当minion第一次启动时,它会在网络中搜索一个名为salt的系统(尽管这可以很容易地更改为IP或不同的主机名)。 当发现时,minion发起握手,然后将公钥发送给Salt master。
在初始连接之后,Salt minions的公钥存储在服务器上,并且必须使用salt-key命令(或通过某种自动机制)在Salt master上接受。 这可能是让新用户混淆的原因,因为Salt不会提供解密消息所需的安全密钥,直到Salt minions的公钥被接受(这意味着Salt minions在被接受其密钥之前不会运行任何命令)。
在minion密钥被salt master接受后,Salt主机 minion会返回其公钥以及旋转的AES密钥,该密钥用于加密和解密由Salt master发送的消息。 返回的AES密钥使用Salt minion最初发送的公钥进行加密,因此只能由该Salt minion解密。

二、saltstack安装

1.下载yum源
wget -P /etc/yum.repos.d https://mirrors.aliyun.com/saltstack/yum/redhat/7.6/x86_64/saltstack-rhel7.repo

2.在master端安装
yum -y install salt-master

3.在minion端安装
yum -y install salt-minion

三、saltstack的配置

注意冒号后面要有空格
#hostnamectl set-hostname salt01.tianyun.com
#vim /etc/hosts

初始化配置
配置对应的文件路径

master端

在/etc/salt/master下添加修改
master:10.0.100.132
user: root
interface:0.0.0.0
file_roots:
 base:
  - /srv/salt
pillar_roots:
 base:
  - /srv/pillar

启动
systemctl start salt-master





minion端

在/etc/salt/minion下添加
#这里要指向salt-master服务器,可以是IP,也可以是域名,也可以是主机名,如果用的是内部DNS服务器的话可以用主机名或者域名的形式。
master:10.0.100.132
user: root
id: agent1
 
启动
service salt-minion start





查看所有的密钥

[root@master]# sudo salt-key --list-all # salt-key -L
Accepted Keys:
agent1
Denied Keys:
Unaccepted Keys:
Rejected Keys:





接受一个指定密钥

salt-key --accept=
salt-key -a=





接受所有密钥

salt-key --accept-all
salt-key -A -y





删除一个指定密钥

salt-key -d xxx





删除所有密钥

salt-key -D





测试常用
远程执行入门

[root@master]# salt '*' test.ping
agent1:
 True

# salt 'agent1' test.ping
# salt 'agent1' cmd.run 'df -h'
# salt -L 'agent2,agent3' cmd.run 'uptime' -L跟多个主机
# salt -S '192.168.122.0/24' cmd.run 'uptime'

注:
master 秘钥对默认存储在/etc/salt/pki/master/master.pub /etc/salt/pki/master/master.pem
master 端认证的公钥存储在:/etc/salt/pki/master/minions/
minion 秘钥对默认存储在/etc/salt/pki/minion/minion.pub /etc/salt/pki/minion/minion.pem
minion 存放的master公钥/etc/salt/pki/minion/minion_master.pub
minion_id 默认存储在/etc/salt/minion_id#?





7417d246-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

salt命令详解

salt "*" sys.list_modules  # 查看所有模块

# salt -h
Usage: salt [options] ''[arguments]

Options(选项):
   --version : 查看saltstack软件的版本号。
   --versions-report : 查看saltstack软件以及依赖包的版本号。
   -h, --help : 查看帮助信息。
   --saltfile=SALTFILE:指定saltfile的路径。 如果没有通过,将在当前工作目录中搜索一个。
   -c CONFIG_DIR, --config-dir=CONFIG_DIR:指定配置文件的目录(默认是/etc/salt/)。
   -t TIMEOUT, --timeout=TIMEOUT:指定超时时间默认是5秒。
   --hard-crash:捕捉到original异常不退出默认关闭。
   -s, --static:以组的形式返回所有minion的数据。
   -p, --progress:显示进度图,需要progressbar的python包。
   --failhard :在第一个执行错误返回之后停止批处理。
   --async : 异步执行。
   --subset=SUBSET : 对目标minions的随机子集执行程序. minions在执行前会先验证是否存在该命名的函数,再去执行
   -v, --verbose : 打开命令详细,显示jid和活动的工作查询
   --hide-timeout : 隐藏超时时间。
   --show-jid : 显示任务的jid。
   -b BATCH, --batch=BATCH, --batch-size=BATC : 按照百分比执行任务。
   -a EAUTH, --auth=EAUTH, --eauth=EAUTH, --external-auth=EAUTH : 指定外部认证方式。
   -T, --make-token : 生成master token.
   --return=RETURNER : 设置一种替代方法。 默认情况下,salt将从命令将返回数据发送回主服务器,但返回数据可以重定向到任意数量的系统,数据库或应用程序。
   --return_config=RETURNER_CONF : 指定命令返回的设置文件。
   -d, --doc, --documentation : 查看指定模式或所有模块文档。
   --args-separator=ARGS_SEPARATOR :  指定发送命令跟命令参数的分隔符,当用户想把一个命令当作参数发送给另一个命令执行时。
   --summary : 显示汇总信息。
   --username=USERNAME : 指定外部认证的用户名。
   --password=PASSWORD : 指定外部认证的密码。
   --metadata=METADATA : 将元数据传递给Salt,用于搜索作业。
  
  
Logging Options(日志相关参数):
   -l LOG_LEVEL, --log-level=LOG_LEVEL : 指定日志级别。
   --log-file=LOG_FILE : 指定日志记录文件
   --log-file-level=LOG_LEVEL_LOGFILE : 日志文件日志记录级别。'all', 'garbage', 'trace', 'debug', 'info', 'warning', 'error','critical', 'quiet'. 默认: 'warning'.


Target Options(目标选择选项):
*   -E, --pcre : 正则匹配
*   -L, --list: 列表匹配,目标表达式将被解释为以逗号分隔的列表。
*   -G, --grain: grains匹配。
   --grain-pcre :grains加正则匹配。
   -N, --nodegroup:组匹配。
   -R, --range:范围匹配。
   -C, --compound : 综合匹配(指定多个匹配,空格隔开)。
*   -I, --pillar : pillar值匹配。
   -J, --pillar-pcre : pillar加正则匹配。
   -S, --ipcidr : minions网段地址匹配。


Output Options(输出参数):
   --out=OUTPUT, --output=OUTPUT : 使用指定的输出器从'salt'命令打印输出。 内置的是 'key', 'yaml', 'overstatestage', 'newline_values_only', 'pprint', 'txt', 'raw', 'virt_query', 'compact', 'json', 'highstate', 'nested', 'quiet', 'no_return'.

   --out-indent=OUTPUT_INDENT, --output-indent=OUTPUT_INDENT :  在空格中打印由提供的值缩进的输出。 负值禁用缩进。 仅适用于支持缩进的输出器。

   --out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE : 输出到指定文件。

   --out-file-append, --output-file-append : 输出附加到指定的文件。

   --no-color, --no-colour : 关闭所有的颜色显示。

   --force-color, --force-colour : 强制输出颜色显示。

   --state-output=STATE_OUTPUT, --state_output=STATE_OUTPUT : 覆盖配置的state_output值输出,指定state格式(full, terse, mixed, changes or filter)输出,默认值是full。


salt-key命令详解
# salt-key -h

Actions:
  -l ARG, --list=ARG:显示指定状态的key(支持正则表达式)
  -L, --list-all :列出所有公钥。"--list all"已经弃用。
  -a ACCEPT, --accept=ACCEPT: 接受指定的公钥(除了挂起的密钥之外,使用--include-all匹配拒绝的密钥),支持正则表达式。
  -A, --accept-all :接收所有等待认证的key。
  -r REJECT, --reject=REJECT :拒绝指定等待认证的key(支持正则表达式)
  -R, --reject-all:拒绝所有等待认证的key。
  --include-all: 显示所有状态的key。
  -p PRINT, --print=PRINT :打印指定的公钥支持正则表达式。
  -P, --print-all:打印所有的公钥。
  -d DELETE, --delete=DELET:删除指定的key。
  -D, --delete-all:删除所有的key。
  -F, --finger-all:显示所有key的指纹信息。









查找模块
salt'*'-d|grep":"|grep disk

查找某个模块拥有的方法
salt'agent1'sys.list_functions test





四、配置管理入门实践

master端和minion端配置好后 ,

文件管理

[root@master ~]# mkdir /srv/{salt,pillar}
[root@master ~]# cd /srv/salt
[root@master salt]# vim host_file.sls
/etc/hosts:
 file.managed:
  - source: salt://files/hosts
  - user: root
  - group: root
  - mode:644
[root@master salt]# mkdir files
[root@master salt]# cd files/
[root@master files]# cp /etc/hosts .
[root@master files]# pwd
/srv/salt/files
[root@master files]# cd ..
[root@master salt]# pwd
/srv/salt
[root@master salt]# ls
files host_file.sls
[root@master salt]# salt '*' state.sls host_file
agent1:
----------
     ID: /etc/hosts
  Function: file.managed
   Result:True
  Comment: File /etc/hostsisinthe correct state
  Started:18:15:50.497755
  Duration:68.637ms
  Changes: 

Summaryforagent1
------------
Succeeded:1
Failed:  0
------------
Total states run:  1
Total run time: 68.637ms
 
 
用name的方式
[root@master salt]# vim host_file.sls
file_test:
 file.managed:
  - name: /etc/hosts
  - source: salt://test/123.txt
  - user: root
  - group: root
  - mode:644









7433c47e-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

拷贝文件

# salt-cp '*' /etc/hosts /root





安装nginx

pkg是模块,installed是方法,-names是参数。 相当于 yum install nginx。 require是依赖关系

[root@master salt]# pwd
/srv/salt
[root@master salt]# vim nginx_install.sls
nginx-install:
 pkg.installed:
  - names:
   - nginx

/etc/hosts:
 file.managed:
  - source: salt://files/hosts
  - user: root
  - group: root
  - mode:644
  - require:
   - pkg: nginx-install
 service.running:
  - names:
   - nginx
[root@master salt]# salt '*' state.sls nginx_install









7446b70a-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

安装apache

[root@master salt]# vim apache.sls
apache-service:
 pkg.installed:
  - names:
   - httpd
   - mod_ssl
 service.running:
  - name: httpd
  - enable:True
[root@master salt]# vim top.sls
base:
'*':
  - apache
[root@master salt]# salt '*' state.highstate
salt'*'state.highstate test=True表示状态的同步,test=True表示测试成功与否
apache没安装就安装,安装过的就不用









计划任务

minute hour daymonth month dayweek
[root@master ~]# cd /srv/salt/
[root@master salt]# vim crontab.sls
/usr/sbin/ntpdate time.aliyun.com >> /dev/null:
 cron.present:
  - user: root
  - minute:'*/5'
[root@master salt]# salt '*' cron.list_tab root

客户机查看
[root@localhost ~]# crontab -l
# Lines below here are managed by Salt, do not edit
# SALT_CRON_IDENTIFIER:/usr/sbin/ntpdate time.aliyun.com >> /dev/null
*/5* * * * /usr/sbin/ntpdate time.aliyun.com >> /dev/null





745ff544-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

7473f1de-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

5分钟修改为3分钟,然后再执行一遍
[root@master salt]# vim crontab.sls
/usr/sbin/ntpdate time.aliyun.com >> /dev/null:
 cron.present:
  - user: root
  - minute:'*/3'
[root@master salt]# salt '*' state.sls crontab


删除cron
[root@master salt]# vim del_cron.sls
/usr/sbin/ntpdate times.aliyun.com >> /dev/null:
 cron.absent:
  - name: /usr/sbin/ntpdate times.aliyun.com >> /dev/null
[root@master salt]# salt '*' state.sls del_cron





saltstack的state.sls和state.highstate之区别

state.sls默认的运行环境是base环境,但是它并不读取top.sls(top.sls定义了运行环境以及需要运行的sls)。关于state.sls的官方文档说明如下:

salt.modules.state.sls(mods, saltenv='base', test=None, exclude=None, queue=False, env=None,**kwargs)





这里saltenv指的是运行环境,默认是base环境。

state.highstate: 这个是全局的所有环境,以及所有状态都生效。它会读取每一个环境的top.sls,并且对所有sls都生效。

五、正则匹配主机

https://www.cnblogs.com/wangyajian/p/11572572.html

Grains:https://www.cnblogs.com/wangyajian/p/11586990.html
pliiar:https://www.cnblogs.com/wangyajian/p/11586998.html
state模块:https://www.cnblogs.com/wangyajian/p/11633678.html
state安装nginx:https://www.cnblogs.com/wangyajian/p/11633828.html
highstate:https://www.cnblogs.com/wangyajian/p/11663089.html
salt-key:https://www.cnblogs.com/hanson666/articles/7105197.html





六、数据系统Grains(客户端)

Minion收集信息,Master用于并匹配Target Minion端设置,提供给Master端

==========客户端自身收集的身份信息==========
Grains里面收集了minion启动时候的所有系统信息,存储在minion端。

[root@master ~]# salt '*' grains.ls 列出所有item
[root@master ~]# salt '*' grains.items 获取所有item值
[root@master ~]# salt '*' grains.item os_family
[root@master ~]# salt '*' grains.item osrelease
[root@master ~]# salt -G 'osrelease:7.8.2003' test.ping
[root@master ~]# salt '*' grains.item ipv4
[root@master ~]# salt '*' grains.item ip4_interfaces





748d51ce-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

自定义Grains
方法一:vim /etc/salt/minion

服务器机柜位置
[root@agent ~]# vim /etc/salt/minion
grains:
 roles:
  - webserver
  - dbserver
 deployment: datacenter1
 cabinet:13
 cab_u:14-15
roles是key,value有webserver和dbserver,数据中心一
[root@agent ~]# systemctl restart salt-minion





749aedb6-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

七、数据系统Pillar(服务端)

Master端设置,提供给Minion端

Pillar在SaltStack中主要作用是存储和定义配置管理中需要的一些数据,比如软件版本号、用户名密码等信息,它的存储格式跟Grains类似,都是YAML格式。

[root@master ~]# vim /etc/salt/master
pillar_roots:
 base:
  - /srv/pillar
[root@master ~]# mkdir /srv/pillar
[root@master pillar]# vim env_salt01.sls
roles:
 - webserver
 - dbserver
deployment: datacenter1
cabinet:13
cab_u:14-15
[root@master pillar]# vim top.sls
base:
'*':
  - env_salt01
[root@master pillar]# salt '*' saltutil.refresh_pillar
[root@master pillar]# salt -I 'roles:webserver' cmd.run 'uptime'
[root@master pillar]# salt --pillar 'roles:webserver' cmd.run 'uptime'









74b196ce-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

八、远程执行Targeting

和Minion_ID相关:

• Globbing(通配符)

• Regex(正则表达式)

• List(列表)

和Minion_ID无关:

• Subnet/IP

• Grains

• Pillar

• Compound matchers(复合匹配)

• Node groups(节点组)

# salt 'salt01.tianyun.com' test.ping
# salt 'salt01*' test.ping
正则:
*表0到多次
?表0到1次
[]表任意一个字符
[!]

# salt -L 'salt01,salt02' cmd.run 'uptime' 列表-L跟多个主机
不支持的写法:# salt -L 'salt01.tianyun.com,salt03*' test.ping
# salt -E 'salt0[^14].tianyun.com' test.ping 正则表示非01 04
# salt -S '10.0.100.0/24' test.ping 子网
# salt -G 'os:Centos' cmd.run 'uptime' 系统自带Grains
# salt -I 'Zabbix_Server' test.ping Pillar

Minion端修改ID:vim /etc/salt/minion_id









SLS文件中使用正则,注意matchpcre:
# cat /srv/salt/top.sls
base:
'saltstack0[^23].tianyun.com':
  -match: pcre
  - apache

SLS文件中使用Grains
base:
'os:CentOS':
  -match: grain
  - apache





复合匹配

复合匹配
# salt -C ‘I@or/and'
# salt -C 'I@roles:dbserver and I@delpoyment:datacenter1 and G@os:Centos and S@10.0.100.0/24 or E@salt0[13].tianyun.com' cmd.run 'uptime'

[root@master ~]# vim /etc/salt/master
nodegroups:
 webs:'I@roles:dbserver and I@delpoyment:datacenter1 and G@os:Centos and S@10.0.100.0/24 or E@salt0[13].tianyun.com'
[root@master ~]# salt -N 'webs' test.ping





九、配置管理States

States是SaltStack系统中的配置语言,在日常运维中需要编写大量的States文件,例如需要创建一个用户、安装一个软件包、之后管理相应的配置文件,最后确保服务能正常运行。
则需要编写一些States SLS文件,即状态配置文件去描述和实现相应的功能。States SLS主使用YAML语言,也可以支持使用Python语言编写。

[root@master ~]# vim /etc/salt/master
file_roots:
 base:
  - /srv/salt/
 dev:
  - /srv/salt/dev/services
  - /srv/salt/dev/states
 test:
  - /srv/salt/test
 prod:
  - /srv/salt/prod/services
  - /srv/salt/prod/states
[root@master ~]# systemctl restart salt-master
[root@master ~]# cd /srv/salt/
[root@master salt]# pwd
/etc/salt
[root@master salt]# mkdir dev test prod
base基础环境,所有机器都需要的配置
yum、dns、kernel参数、zabbix agent


[root@master salt]# mkdir -p init/files
[root@master salt]# vim init/files/resolv.conf
nameserver8.8.8.8
nameserver114.114.114.114
[root@master salt]# cd init/
[root@master init]# pwd
/srv/salt/init
[root@master init]# ls
files


[root@master init]# vim dns.sls
/etc/resolv.conf:
 file.managed:
  - source: salt://init/files/resolv.conf
/etc/resolv.conf 是minion目标文件.如果下面配了name就不一样
source: salt:// 表示salt的base环境
   
[root@master init]# salt '*' state.sls init.dns env=base 
注意这里是init.dns,直接放在/srv/salt/xx.sls 这样就不用加init。现在是放在了/srv/salt/init/xx.sls
默认也是env=base









74c492b0-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

针对所有主机:

[root@master salt]# pwd
/srv/salt
[root@master salt]# vim top.sls
base:
'*':
  - init.dns
[root@master salt]# salt '*' state.highstate # 基于top.sls





74db4190-1aa4-11f0-9310-92fbcf53809c.png

在这里插入图片描述

十、配置管理LAMP部署env=dev

1.准备模板文件

yum -y install httpd php php-mysql php-gd gd mariadb-server
cp -rf /etc/httpd/conf/httpd.conf /srv/salt/dev/files/
cp -rf /etc/my.cnf /srv/salt/dev/files/

[root@master ~]# vim /etc/salt/master
file_roots:
 base:
  - /srv/salt/
 dev:
  - /srv/salt/dev/
[root@master dev]# systemctl restart salt-master

[root@master salt]# cd dev/
[root@master dev]# ls
[root@master dev]# mkdir files
[root@master dev]# pwd
/srv/salt/dev
[root@master dev]# cp -rf /etc/httpd/conf/httpd.conf /srv/salt/dev/files/
[root@master dev]# cp -rf /etc/my.cnf /srv/salt/dev/files/
[root@master dev]# vim lamp.sls
lamp-pkg-install:
 pkg.installed:
  - names:
   - httpd
   - php
   - php-mysql
   - php-gd
   - gd
   - mariadb-server

httpd-files:
 file.managed:
  - name: /etc/httpd/conf/httpd.conf
  - source: salt://files/httpd.conf

httpd-service:
 service.running:
  - name: httpd
  - enable:True

mysql-files:
 file.managed:
  - name: /etc/my.cnf
  - source: salt://files/my.cnf

mysql-service:
 service.running:
  - name: mariadb
  - enable:True
[root@master ~]# salt '*' state.sls lamp saltenv=dev


[root@master ~]# vim /srv/salt/top.sls
base:
'*':
  - init.dns

dev:
'*':
  - lamp
[root@master ~]# salt '*' state.highstate

若想状态触发,自动重启,需要用到require









十一、配置管理状态关系

unless

• 主要用于cmd状态模块,仅当unless选项指向的命令

• 返回false时才执行name指向的命令,test -d /usr/local/nginx

re

require 我依赖某个状态 我依赖谁

• require_in 我被某个状态依赖 谁依赖我

wa

watch 我关注某个状态【监控】当状态发生改变,例如我关注的状态发生改变,restart

• watch_in 我被某个状态关注

require

require:
 模块名:ID





[root@master dev]# cat /srv/salt/dev/lamp.sls
dep-install:
 pkg.installed:
  - names:
   - php

httpd-install:
 pkg.installed:
  - name: httpd
  - require:
   - pkg: dep-install
 
 
httpd-files:
 file.managed:
  - name: /etc/httpd/conf/httpd.conf
  - source: salt://files/httpd.conf
  - require:
   - pkg: httpd-install

httpd-service:
 service.running:
  - name: httpd
  - enable:True
  - require:
   - file: httpd-files
   
mysql-files:
 file.managed:
  - name: /etc/my.cnf
  - source: salt://files/my.cnf









watch

[root@master dev]# cat /srv/salt/dev/lamp.sls
dep-install:
 pkg.installed:
  - names:
   - php

httpd-install:
 pkg.installed:
  - name: httpd
  - require:
   - pkg: dep-install
 
 
httpd-files:
 file.managed:
  - name: /etc/httpd/conf/httpd.conf
  - source: salt://files/httpd.conf
  - require:
   - pkg: httpd-install

httpd-service:
 service.running:
  - name: httpd
  - enable:True
  - require:
   - file: httpd-files
  - reload:True# 可选,如果PID不变,选择reload。默认没这个的话,只有watch就是restart
  - watch:
   - file: httpd-files 只要httpd-files发生变化就变化,改端口,启动变化也会改
   
mysql-files:
 file.managed:
  - name: /etc/my.cnf
  - source: salt://files/my.cnf
     
[root@master dev]# salt '*' state.sls lamp saltenv=dev









关系,watch_in 与 require_in
watch,reload都写在服务那
watch_in,如果是写在文件那。 则在服务写reload

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    31

    文章

    5984

    浏览量

    90664
  • 端口
    +关注

    关注

    4

    文章

    1110

    浏览量

    34049
  • 命令
    +关注

    关注

    5

    文章

    759

    浏览量

    23925

原文标题:比Ansible更高效?SaltStack自动化运维快速入门指南

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    诚聘高级自动化工程师

    猎头职位:高级自动化工程师【合肥】工作职责: 1、根据基础架构管理需求,规划设计
    发表于 12-12 10:37

    锐捷助互联网数据中心网络自动化、可视

    吉朋表示,集中在网络虚拟,以及自动化、可视上。当前,互联网业务快速发展,服务器数量激增,要求基础网络快速交付,支撑业务快速上线,同时
    发表于 01-25 09:42

    ansible-first-book 自动化工具

    ansible-first-book 自动化工具
    发表于 09-08 09:31 5次下载

    配电自动化实用指标研究

    根据《配电自动化实用化验收细则》中对配电自动化考核要求,重点围绕终端在线率、遥信动作正确率、遥控使用率与遥控成功率四项指标进行考核。目前对配电
    发表于 03-05 14:55 0次下载

    厉害了!山东电力自动化平台正式投

    日前,国网山东省电力集团公司通过了山东信息通信技术监督装备及支撑工具开发实施项目的验收,代表着自动化平台正式投
    发表于 04-30 11:18 4862次阅读

    如何区分Puppet,Ansible,Saltstack的作用特点?

    目前主流的自动化工具有puppet、ansible、saltstack,实际上每一个工具都基本上能够完成你的
    的头像 发表于 08-05 09:00 5595次阅读

    Ansible企业级自动化探索的详细资料说明

    本文档的主要内容详细介绍的是Ansible企业级自动化探索的详细资料说明主要内容包括了:场景一:自动化
    发表于 06-03 08:00 2次下载
    Ansible企业级<b class='flag-5'>自动化</b><b class='flag-5'>运</b><b class='flag-5'>维</b>探索的详细资料说明

    城域网自动化实现的关键点、难点和解决方案研究

      针对城域网自动化水平较低、人工成本高且无法摆脱重复劳动的现状,本文探讨了当前城域网自动化
    发表于 10-28 09:09 3377次阅读
    城域网<b class='flag-5'>自动化</b><b class='flag-5'>运</b><b class='flag-5'>维</b>实现的关键点、难点和解决方案研究

    城域网是什么,其生命周期和自动化应用有哪些特点

    Labs 摘  要针对城域网自动化水平较低、人工成本高且无法摆脱重复劳动的现状,本文探讨了当前城域网
    的头像 发表于 12-25 14:24 1972次阅读

    使用Python脚本实现自动化任务

    许多运工程师会使用 Python 脚本来自动化任务。Python 是一种流行的编程语言,具有丰富的第三方库和强大的自动化能力,适用于许
    的头像 发表于 04-08 10:36 2626次阅读

    网络设备自动化工具—ansible入门笔记介绍

    Ansible是一款自动化工具,基于Python开发,集合了众多运工具 (Puppet、CFengine、Chef、SaltStack
    的头像 发表于 01-15 13:46 3926次阅读
    网络设备<b class='flag-5'>自动化</b><b class='flag-5'>运</b><b class='flag-5'>维</b>工具—ansible<b class='flag-5'>入门</b>笔记介绍

    Python脚本实现工作自动化案例

    还在为重复性工作而烦恼?每天被各种告警、监控、部署搞得焦头烂额?作为一名有10年经验的老司机,今天分享5个超实用的Python自动化
    的头像 发表于 08-27 14:46 1366次阅读

    SaltStack自动化部署实践

    今天,我想和大家分享一个真实的案例:我们团队如何通过SaltStack将原本需要3天的部署时间缩短到30分钟,并且实现了零失误率。这不是魔法,而是自动化的力量。
    的头像 发表于 09-17 16:18 799次阅读

    容器NPB + Ansible:自动化方案

    传统NPB设备手动配置效率低下。星融元NPB 2.0基于SONiC系统,支持通过Ansible实现自动化。通过编写Playbook可批量秒级下发配置至多台设备,将数小时操作转化为标准
    的头像 发表于 12-08 12:00 1101次阅读
    容器<b class='flag-5'>化</b>NPB + Ansible:<b class='flag-5'>自动化</b><b class='flag-5'>运</b><b class='flag-5'>维</b>方案

    新西兰服务器必备:自动化监控与故障预警实践

    在现代互联网中,服务器的稳定运行至关重要。新西兰的服务器同样不例外,高效的监控和预警系统能够显著提高
    的头像 发表于 02-26 14:26 321次阅读