将以下文件保存到 /etc/yum.repos.d/saltstack.repo 中: # 10.20.1.57、10.20.1.52 安装完成后配置 ext_pillar 和 master_tops 使用 Foreman 假设 foreman 的 salt-proxy 插件部署在 /home/service/salt-foreman 目录 配置 modules 目录、ext_pillar 和 master_tops 配置其它的 salt-maste r相关的配置 autosign_file 对应自动签名配置(针对某些host自动通过minion的key) publisher_acl 对应是否支持非root账户在master本机访问时的acl限制 external_auth 对应salt-api的访问鉴权限制(这里配置对于foreman用户访问不进行任何鉴权) hash_type 对应文件的hash值(这里用sha1,其实用md5也没事,很难碰撞的) 配置 /etc/salt/master.d/saltweb.conf 我们使用 cherrypy 的 server 来提供 salt-api 的服务(其实可以使用 tornado 的 server 的,搞明白了之后再用) 监听本机 lo 地址,并且关闭 ssl 即将以下文件保存到 /etc/yum.repos.d/saltstack.repo 中 一、salt-master(参考 10.20.1.57 或 10.20.1.52)
1、首先Salt-Master 使用 saltstack repo 进行安装
[saltstack-repo] name=SaltStack repo for Red Hat Enterprise Linux $releasever file=/etc/yum.repos.d/saltstack.repo gpgcheck=0 key_url=https://saltstack.pkg.lehe.com/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub enabled=1 baseurl=https://saltstack.pkg.lehe.com/redhat/$releasever/$basearch/latest
2、然后安装 Salt-Master、Salt-Api、Salt-SSH 三个模块
yum install -y salt-master salt-ssh salt-api
3、配置
655 ext_pillar: 656 - foreman_salt: /etc/salt/foreman.yaml 411 master_tops: 412 - foreman_salt: /etc/salt/foreman.yaml
64 module_dirs: 65 - /home/service/salt-foreman
64 module_dirs: 65 - /home/service/salt-foreman
284 autosign_file: /etc/salt/autosign.conf 304 work: 305 - .* 340 external_auth: 341 auto: 342 foreman: 343 - '@runner' 518 hash_type: sha256
4、Salt-Api
rest_cherrypy: port: 9191 disable_ssl: True
5、Salt-SSH
6、启动对应的服务
# salt-master # /etc/init.d/salt-master start # Version6 或 # service salt-master start # Version6 # systemctl start salt-master.service # Version7 # salt-api # /etc/init.d/salt-api start # Version6 或 # service salt-api start # Version6 # systemctl start salt-api.service # Version7
二、salt-minion
1、考虑到Salt官方提供了Salt的标准安装包,我们直接使用saltstack的repo进行安装,安装的功能卸载了salt-minion-install的sls文件中,内容如下:
# /srv/salt/salt-minion-install.sls salt-minion-install: pkgrepo.managed: - name: saltstack-repo - file: /etc/yum.repos.d/saltstack.repo - humanname: SaltStack repo for Red Hat Enterprise Linux $releasever - baseurl: https://saltstack.pkg.lehe.com/redhat/$releasever/$basearch/latest - gpgcheck: 0 - key_url: https://saltstack.pkg.lehe.com/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub pkg.latest: - pkgs: - salt-minion - fromrepo: saltstack-repo - require: - pkgrepo: saltstack-repo - order: 1 {% if grains['osmajorrelease'] == 7 %} cmd.wait: - name: systemctl enable salt-minion - require: - pkg: salt-minion {% elif grains['osmajorrelease'] <= 6 %} cmd.wait - name: chkconfig salt-minion on - require: - pkg: salt-minion {% endif %} include: - salt-minion
[saltstack-repo] name=SaltStack repo for Red Hat Enterprise Linux $releasever file=/etc/yum.repos.d/saltstack.repo gpgcheck=0 key_url=https://saltstack.pkg.higo.cloud/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub enabled=1 baseurl=https://saltstack.pkg.higo.cloud/redhat/$releasever/$basearch/latest
2、salt-minion.sls 中撰写了对应功能从 master 中拉取 minion 的配置文件并且自动 reload minion 的功能,内容如下:
salt-minion-config: # 标签定义 file.managed: # 定义一个方法,在这里方法为:下发文件,确保文件存在 - name: /etc/salt/minion # file.managed 函数参数,下发文件绝对路径 - user: root # 表示文件属主 - group: root # 表示文件属组 - mode: 600 # 表示文件权限 - source: salt://files/minion # source 是 managed 函数的参数之一,告诉管理文件地址的相对路径 salt-minion-id-config: # 标签定义 file.managed: # 定义一个方法,在这里方法为:下发文件,确保文件存在 - name: /etc/salt/minion_id # file.managed 函数参数,下发文件绝对路径 - user: root # 表示文件属主 - group: root # 表示文件属组 - mode: 600 # 表示文件权限 - contents: {{ grains['fqdn_ip4'][0] }} # contents 是 managed 函数的参数之一,重新获取下发文件内容。grain: 按照grains规则去匹配 - order: 2 # 优先级比 require 和 watch 低,有 order 指定的 state 比没有 order 指定的优先级高 salt-minion: # 标签定义 cmd.wait: # 定义一个方法: - name: echo service salt-minion restart | at now + 1 minutes # 要执行的命令,记住该命令将会在 salt-minion 的路径和权限下执行。 - watch: # 监控状态是否变化,常用在 service.running 中,在某个 state 变化时运行此模块 - file: /etc/salt/minion # - file: /etc/salt/minion_id # - require: # 依赖某个 state,在运行该 state 前,先运行依赖的 state,依赖可以有多个 - salt-minion-config # - salt-minion-id-config # service.running: # 定义一个方法,service 模块,启动 salt-minion - name: salt-minion # name 是 service.running 函数的参数,如果包名与服务名相同,则 name 这项可以省略,该实例中不用指定包,所以必须有 name 指明 running 参数是 salt-minion - enable: true #
3、在存在对目标机器的 ssh 访问授权情况下可以通过 salt-ssh 的命令来进行 Salt-Minion 的安装,操作方法如下:
salt-ssh -i '<target machine nodename>' state.apply salt-minion-install
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算