playbook可通过执行模块来改变主机准柜台。这使得我们可以精准控制多台机器,比如在升级一个应用程序之前把机器从负载均衡器中剔除出去。 Salt有两种模块:执行模块 和 状态模块 。...执行模块可以简单的执行一些命令,比如执行命令行命令,或者下载一个文件。状态模块与Ansible模块更相似,通过参数定义一个状态,而模块则尝试满足该最终状态。通常状态模块调用执行模块来完成工作。...状态模块执行时使用state执行模块。状态模块支持通过文件定义状态,该文件被称为SLS文件。而状态与主机的映射关系被定义在 top.sls 文件中。...架构 Salt有一个Salt master,而很多Salt minon在初始化时会连接到该master上。通常,命令起始于master的命令行中。master然后将命令分发到minion上。...Ansible推荐使用inventory文件来追踪机器。inentory文件基本上包含了一组主机,可以对其分类为组,可以对一组主机或单个主机指定属性。
Master 可以发送任何指令让 Minion 执行,salt 有很多可执行模块,比如说 CMD 模块,在安装 minion 的时候已经自带了,它们通常位于你的 python 库中,locate salt...2.Salt 命令,将 cmd.run ls 命令从 salt.client.LocalClient.cmd_cli 发布到 Master,获取一个 Jodid,根据 jobid 获取命令执行结果。...客户端要想被 master 管理,需要修改其配置文件,将服务器指向到 Master 的地址。其配置文件位于/etc/salt/目录下,名为 minion,通过 vi 工具修改,如图 9 所示。 ?...图 9.SaltStack Minion 配置 配置完成后,保存并通过 service salt-minon restart 命令重启 minion 服务。...我们可以通过 salt ‘*’ test.ping 来测试客户端是否在线,并被 master 管理,如图 12 所示,如果返回 True,则说明客户端已经被 master 管理,并处于在线状态。
否则,需要编辑minion配置文件配置 master 选项指向Salt Master的DNS名或IP: 注解 默认配置文件路径位于/etc/salt下。...想要让minion从master端接受命令,minions的密钥需要被master接受。 salt-key 命令时用来管理master上所有的密钥的。...使用 test.ping 是确认一个minion是否连接正常的好方法。 注解 每个minion使用唯一的minion ID注册自身,但是也能够通过使用minion配置中的 id 选项来明确定义。.../targeting/grains>`的系统来建立关于minions的静态数据。这个数据包含了关于操作系统运行状态,CPU架构等信息。grains系统贯穿Salt用于发送平台数据到许多组件和用户。...'*' test.echo 'foo: bar' 一般Salt将这种字符串'foo: bar'翻译为字典"{'foo': 'bar'}" 注解 任何包含一个换行符的行不会通过YAML解析。
在开始本指南之前,您将需要一个有效的 Salt master和minion 配置。如果您需要设置该先决条件,请参阅我们的 Salt 安装指南以开始使用。...要调整单个 Minion 上的配置,请尝试使用 Salt Execution Modules。注意,有很多种方法可以使用 Salt。...禁用单个 Minion 或所有 Minions 上的默认 Apache 虚拟主机: 对于特定的 Minion : salt 'Minion ID>' cmd.run "a2dissite.../var/www/example.com/backups/ 在 Master 分支上创建一个目录以保存所有 Minion 虚拟主机文件。...vhost 文件从 Master 复制到/sites-availableMinion 的目录: salt-cp 'Minion ID>' /etc/salt/base/minionsites
该功能可以对比由状态管理系统提供的功能,如Puppet和Ansible。SaltStack很大程度上得益于快速的采用率,它包括一个在管理系统上运行远程命令的有效方式。...salt state主要用来描述系统,软性,服务,配置文件应该出于的状态,常常被称为配置管理! 通常state,pillar,top file会用sls文件来编写。...Mine的作用是在静态数据和动态数据建立起一座桥梁(官方文档如是说),Mine从minon收集数据然后发送给Master,并缓存在Master端,所有Minion都可以轻易的共享到,Master通常会维护比较新的数据...它是作为master-minion形式的补充出现的,原理是有一个花名册的文件,里面记录了各个minion的信息,ip,账号,密码,等,需要远程执行命令时,直接通过ssh来执行,速度与master-minion...做fileserver 用gitfs后,master会从git服务器取回文件缓存,minion不会直接联系git服务器 修改master配置文件/etc/salt/master(注:以后说master
Request Server (端口4506)Salt minios根据需要连接到请求服务器,将结果发送给Salt master,并安全地获取请求的文件或特定minion相关的数据值(称为Salt pillar...配置管理 Salt 通过State模块来进行文件的管理;通过YAML语法来描述,后缀是.sls的文件 1、了解 YAML 参考:http://docs.saltstack.cn/topics/...6、使用salt命令执行高级状态,会将top.sls当做入口文件,进行调用 # 将高级状态应用到所有主机 [root@salt-master ~]# salt '*' state.highstate...(默认为24h) job_cache: //master是否缓存执行结果,如果规模庞大(超过5000台),建议使用其他方式来存储jobs,关闭本选项(默认为True) file_recv : //是否允许...root) cache_jobs : //minion是否缓存执行结果(默认为False) backup_mode: //在文件操作(file.managed 或file.recurse) 时, 如果文件发送变更
第二步:salt命令,以ls查看为例,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jobid,根据jobid获取命令执行结果。...默认值True以外的任何值都是安全性问题 gitfs_root: somefolder/otherfolder gitfs_root选项可以从存储库中的子目录中提供文件。 ...master_alive_interval: 30 轮询检测master是否从故障恢复的秒数。...file_roots:/srv/salt 本地文件的file服务目录 fileserver_limit_traversal: False Salt文件服务器是否将完全递归到所有定义的环境中以尝试查找文件...注意:当更改完 pillar 配置文件后,我们可以通过刷新 pillar 配置来获取新的 pillar 状态: [iyunv@master ~]# salt '*' saltutil.refresh_pillar
您还可以为任何系统定义自定义Grain。 Pillar组件:用户定义的变量。这些安全变量定义并存储在Salt Master上,然后使用目标“分配”给一个或多个Salt Minion。...Salt Pillar数据存储端口、文件路径、配置参数和密码等值。 Top File组件:将公式和Salt Pillar数据与Salt Minion匹配。...Runners组件:在Salt Master执行以执行支持任务的模块。Salt runner报告作业状态、连接状态、从外部api读取数据、查询连接的Salt minions等等。...Returners组件:将Salt minions返回的数据发送到另一个系统,如数据库。Salt Returners可以运行在Salt minions或Salt Master上。...cd /etc/salt vi minion # minion配置文件(多一个空格都能报错,配置master的ip地址或域名,前提要有DNS) image.png 注意: 配置文件采用
/ 使用Linode更新于2018.03.23周五 贡献于GitHub 报告问题 | 查看文件 | 编辑文件 Salt是一个基于Python的配置管理平台,旨在从单个主服务器控制许多从服务器(用Salt...本指南将指导您配置Salt Master和Minion,并支持任何linux发行版。...: sudo salt-call key.finger --local 接收Minions 1.一旦验证了每个Minion ID,从Salt Master来的请全部接收: sudo salt-key...-A 注意:要接收单个的minion,请按主机名或IP地址来指定它: sudo salt-key -a hostname 2.验证接收的minions的状态,下面的这个命令该要返回已验证并正在运行的每个...将Apache安装到所有的Minions: sudo salt '*' pkg.install apache2 从minion5中删除Apache: sudo salt 'minion5' pkg.remove
cp.get_dir和cp.get_file的用法(就是从master端cp目录或者文件到minion端的目录,get_dir支持与get_file相同的模板和gzip参数。.../files,但是这种用法是禁用状态,一般不让minion端的文件或目录发送到master端,这里只是记录一下有这种用法。)...例子: #salt '*' cp.get_dir salt://path/to/dir/ /minion/dest #从salt master递归复制目录到minion客户端的/minion/dest...#salt '*' cp.get_file salt://path/to/file /minion/dest #从服务端拷贝单个文件到minion端的/minion/dest目录下面。...vimrc,并将其复制到/etc/vimrc 2.2.2 cp.get_url(用于从URL获取单个文件) 例子: # salt '*' cp.get_url salt://cptest1/cptest1file
可以发送任何指令让minion执行了,salt有很多可执行模块,比如说cmd模块,在安装minion的时候已经自带了,它们通常位于你的python库中,locate salt | grep /usr/...master接收到命令后,将要执行的命令发送给客户端minion。 minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理 minion...._handle_aes方法,将结果写的文件中 salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端。...测试salt: /etc/salt/master minion下配置: /etc/salt/minion/ master: master_ip或master_FQDN ##注明master的ip...[options] [runner.func] salt-run manage.status ##查看所有minion状态 salt-run manage.down ##查看所有没在线minion
,将192.168.56.12作为minion 192.168.56.11 yum -y install salt-master salt-minion 192.168.56.12 yum -y install... salt-minion 启动Salt的master systemctl start salt-master 修改配置文件(minion要知道master是谁啊): 192.168.56.11(master...目前还没有被master管理 │ │ ├── zabbix-agent ##文件名是使用ID来做为名称的,所以生成的id是不能改的。...移动到了minions文件夹中。...来确认一下是不是同一个文件: [root@zabbix-server ~]# md5sum /etc/salt/pki/master/master.pub 24ca638333e27cfead75343d9b761ee4
如何在Ubuntu 14.04上安装和配置Salt Master和Minion服务器 介绍 SaltStack是一个功能强大,灵活,高性能的配置管理和远程执行系统。...它可用于从集中位置管理您的基础架构,同时最大限度地减少手动维护步骤。 在本文中,我们将重点介绍如何设置Salt主服务器来管理您的基础架构。...初始主配置 接下来,我们需要配置Salt master。 创建Salt目录结构 首先,我们将创建配置管理目录结构,Salt master将查找各种文件。默认情况下,这些都在/srv目录下。...将master密钥设置为等于本地环回地址127.0.0.1,以便minion正确连接: master: 127.0.0.1 完成后保存并关闭文件。...这可以是可解析的DNS域名或IP地址: 的/ etc /盐/仆从 master: ip_of_salt_master 接下来,将master_finger选项设置为刚刚从Salt master复制的指纹值
,下面便是Master/Minion的架构图 minion:客户端安装组件,配置好之后会主动去连接master,从master端得到资源状态信息,并同步资源管理信息 master:服务端安装组件,运行在主服务器上...master将要执行的操作或命令发送给minion,minion从消息总线上收到要进行的操作或要处理的命令,之后交给minion_handle_aes处理 之后minion_handle_aes发起一个本地线程去调用...cmdmod去执行操作或命令,线程执行完毕后调用minion.return_pub方法,将执行结果通过消息总线返回给master master接收到客户端返回的结果,调用master...._handle_aes方法,将结果写进文件中 salt.client.LocalClient.cmd_cli通过轮询获取执行结果,将结果输出到终端 与ansible区别 saltstack与ansible...的/etc/salt/pki/master/minions下将存放以minion id命名的public key,以此来建立可靠且加密的通信连接,同时通过消息队列ZeronMQ在master和minion
代表一个字符,不可以为空 [a-z] [0-9] 代表任何一个小写字母 [root@master ~]# salt 'slav?'...那么大量的minion上运行远程命令就必须使用salt提供的“状态管理”了,状态是对minion的一种描述和定义,运维不需要关心部署是如何完成的,只需要描述minion需要达到什么状态。...master和minion都需要执行,都需要创建文件夹 [root@master ~]# mkdir -p /srv/salt/{base,dev,test,prod} [root@slave ~]#...状态描述都会遵循这个原则,只有检测到真实状态和所需状态不一就会执行此功能,这种性质叫做幂等性。...本身提供salt(usr/bin/salt)来交互管理,但是去服务器上敲命令肯定不是一个长远之计,这时候python就体现了nb的功能。
cmd.run "free -m" client.cmd('SN2016-02-04','cmd.run',['free -m']) 3、cp模块 1)功能:实现远程文件复制、目录复制、以及下载URL文件等操作...2)实例: 将制定被控主机的/etc/hosts文件复制到被控主机的本地的salt cache目录(/var/cache/salt/minion/localfiles) salt '*' cp.cache_local_file.../etc/hosts 将主服务器file_roots指定位置下的目录复制到被控主机 salt '*' cp.get_dir salt://path/to/dir /minion/dest 将主服务器file_roots...指定位置下的文件复制到被控主机 salt '*' vcp.get_file salt://path/to/file /minion/dest 下载URL内容到被控主机指定位置 salt '*' cp.get_url...','/minion/dest']) 4、file 模块 1)功能:被控主机文件常见操作 2)实例 校验所有被控主机的/etc/paddwd文件的MD5是否为lkhwln423lkn4l23kjh42l3j4ml
,缩进四个空格 然后重启master: systemctl restart salt-master 当更改完pillar配置文件后,我们可以通过刷新pillar配置来获取新的pillar状态:...(分发文件) saltstack有一个分发文件的功能,可以使用这个功能来批量分发一些文件到minion端上。...分发功能的好处在于,我们不需要自己一个个的将文件发送到master端上,只需要在master端执行一条命令就完成将文件发送到master端上的任务,减少了很多重复且无谓的工作。...所以我们需要批量远程执行命令来提高效率,实现批量远程执行命令我们需要使用到脚本,将这个脚本分发到各个minion端上执行,要执行这个脚本我们还得进行一些相应的配置。...4.到client上检查是否有test.txt文件和test目录,有则代表测试成功: [root@client ~]# ls -l /tmp/test.txt -rw-r--r-- 1 root root
minions定义 highstate:为minion端下发永久添加状态,从sls配置文件读取.即同步状态配置 salt_schedule:会自动保持客户端配置 3.1 服务端安装 yum install...修改内容,去掉#,冒号后有一个空格,将salt更改为master。...对应的行,可以直接在文件尾部添加一行master: master或master: 192.168.1.160 也可以使用sed命令直接修改配置文件 [root@nb2 ~]# sed -i 's/#master...(public key),然后将 minion.pub发送给master。...start 注意:当更改完 pillar 配置文件后,我们可以通过刷新 pillar 配置来获取新的 pillar 状态 [root@nb0 ~]# salt '*' saltutil.refresh_pillar
系统管理员面临的问题主要是1、系统配置管理,2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行...,文件服务,结果收集等功能 确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。...配置文件 salt-master的配置文件是/etc/salt/master salt-minion的配置文件是/etc/salt/minion 配置文件中包含了大量可调整的参数,这些参数控制master...start salt-minion systemctl start salt-master #检查salt状态 systemctl status salt-minion systemctl status...确认接收秘钥后,检验minion秘钥是否被接收 [root@master ~]# salt-key -L Accepted Keys: slave Denied Keys: Unaccepted Keys
系统管理员面临的问题主要是 1、系统配置管理; 2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行...不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。 ...之后开始配置,salt-master默认监听两个端口: 4505 publish_port 提供远程命令发送功能 4506 ret_port 提供认证,文件服务,结果收集等功能 确保客户端可以通信服务器的此...[root@master ~]# systemctl stop firewalld 5)salt配置文件 salt-master的配置文件是/etc/salt/master salt-minion的配置文件是.../etc/salt/minion 配置文件中包含了大量可调整的参数,这些参数控制master和minion各个方面 6)配置salt-master配置文件 # 监听地址interface: 0.0.0.0
领取专属 10元无门槛券
手把手带您无忧上云