SaltStack 安装配置--管理Windows Station

  1. Salt 安装配置;
    在linux默认情况下,Salt会安装在/etc/salt/目录下,根据配置角色会有/etc/salt/master 或/etc/salt/minion配置目录
    一般会将salt-mast 安装在linux发行版OpenSUSE,Arch,Redhat等,桌面或终端设备系统安装salt-minion;
  2. 在Windows下安装 salt-minion, 安装过程会自动添加$PATH,在CMD或powershell下执行:
    Salt-Minion  /S /master=yoursaltmaster /minion-name=yourminionname
    

如果没有安装,可以在下载目录直接执行:
Salt-Minion-2017.7.0-Py2-AMD64-Setup.exe /S /master=yoursaltmaster /minion-name=yourminionname
2. 配置Master
默认情况,Salt-master 监听主机所有接口(或IP:0.0.0.0)的4505和4506端口,当然也可以在/etc/salt/master的配置文件中修改#interface 的参数来绑定端口(或指定IP)

```
- #interface: 0.0.0.0
+ interface: 10.0.0.1
```
详细的Master 配置说明请参照:[master configuration reference](https://docs.saltstack.com/en/latest/ref/configuration/master.html#configuration-salt-master)
  1. 虽然Minion的配置选项很多,但简单那来讲,只要Minion通过DNS 'salt’能正确解析连接到Master 就可以了;也可以在/etc/salt/master 配置中更改#master 为确定的DNS或HOST IP,示例如下:

    - #master: salt
    + master: 10.0.0.12
    

    详细的Minion 配置说明请参照:minion configuration reference

  2. Minion 代理设置,在此暂不介绍,感兴趣的可以参照proxy minion configuration reference

  3. 运行Salt

  1. 在终端或shell下打开salt-master(如果需要后台执行或是守护进程,使用 ‘-d’)
    sudo salt-master

  2. 在CMD或powershell下打开salt-minion,一般需要指定连接的master和声明自己的名称之类(如果需要后台执行或是守护进程,使用 ‘-d’)
    salt-minion /S /master=192.168.1.254 /minion-name=sta_01

  3. 开启debug模式,最简单的方式是前台运行minion和master,追加–log-level=debug

    salt-master --log-level=debug
    
  4. 非root用户执行,需要在master 的配置文件中更改user参数,另外还要确保以下文件的用户归属权限和读写权限。

  • /etc/salt
  • /var/cache/salt
  • /var/log/salt
  • /var/run/salt
  1. 密钥确认
    Salt提供了Command, 在最初的密钥交换时验证Master和Minion的身份。验证密钥标识有助于避免无意中连接到错误的 Salt 主机, 并有助于在建立初始连接时防止潜在的 MiTM 攻击。
  1. Master 密钥,使用如下命令查看master key,将master.pub 密钥复制到Minion配置文件的master_finger
salt-key -F master
  1. Minion使用以下命令查看Minnion key,和Master下执行salt-key --finger <MINION_ID> 的minion key 比较是否一致
salt-call --local key.finger
  1. Key认证管理
    Salt使用AES对Master <–> Minion 之间的所有通信加密,这样可以确保Master 发给Minion的Commands 不被篡改,并且Master与Minion之间的通信是可信的。
    在向Minion 发送配置命令之前,Minion的Key必须被Master接受,在Master执行salt-key 可以列出已知的Minion Key

    [root@master ~]# salt-key -L
     Unaccepted Keys:
     alpha
     bravo
     charlie
     delta
     Accepted Keys:
    
    

    上述这个示例显示Master 已经监听到4个Minion的key,这4个key尚未被接受,继续使用salt-key coommand接受这4个key,允许对应的Minion 可以被Master管理。

     [root@master ~]# salt-key -A
     [root@master ~]# salt-key -L
     Unaccepted Keys:
     Accepted Keys:
     alpha
     bravo
     charlie
     delta
    

    简单说明:salt commnd支持单独或批量签名密钥。上面的示例使用’-A’-批量-接受所有挂起的密钥。要单独接受密钥, 请使用相同选项的字母小写形式,如‘-a keyname’。也可以参考:salt-key manpage

  2. 简单示例:

  1. 使用test.ping 命令查看Master 与 Minion 之间的通信是否正常
[root@master ~]# salt alpha test.ping
alpha:
     True

最简单的方式是使用’*‘匹配所有Minion,一次性检查在线或通信的状态,
每一个状态正常的Minion 都会返回’True’

 [root@master ~]# salt '*' test.ping
 alpha:
     True
 bravo:
     True
 charlie:
     True
 delta:
     True
  1. 发送cmd
sudo salt '*' cmd.run 'netstat'
[sudo] root 的密码:
XDevelopmServer.XDEVELOPMENT.local:
    
    Active Connections
    
      Proto  Local Address          Foreign Address        State
      TCP    10.6.161.64:56709      10.6.161.96:4505       ESTABLISHED
      TCP    10.6.161.64:56710      10.6.161.96:4505       ESTABLISHED
      TCP    10.6.161.64:60799      ec2-52-25-255-173:https  ESTABLISHED
      TCP    10.6.161.64:65176      10.6.161.96:4506       TIME_WAIT

后续,linux 发行版可以使用*bootstrap-salt.sh*开机启动安装,和配置。

  • 配置防火墙
    最简单的方式是直接在Opening the Firewall up for Salt复制配置应用即可即可;
    例如:对于openSUS,启用salt已准备好的配置即可
    SuSEfirewall2 open
    SuSEfirewall2 start
    
    旧版Opensuse
    SuSEfirewall2 open EXT TCP 4505
    

SuSEfirewall2 open EXT TCP 4506

 对于Windows : 在系统--防火墙高级配置中进出站规则允许tcp 4505-4506端口,应用规则到Domain, Private, and Public即可。
 一般不会遇到被防火墙屏蔽的情况。

*    使用ACCEPT KEY预配置 Minion
      通常等待Minion 启动后再在Master Accept Key 不太方便,希望Minon 上线后自我引导 ,总共4步可以实现。
    1. 在Master 上初始化key,[keyname]一般为Minion ID
        ```
        root@saltmaster# salt-key --gen-keys=[key_name]
        ```
    2. 将生成的public key 复制到已Accept 的Minion 配置路径下
        ```
        root@saltmaster# cp key_name.pub /etc/salt/pki/master/minions/[minion_id]
        ```
    3. 分发minion keys
       *不存在一种非常完美的安全分发密钥的方法*
       对于Amazon EC2,可以参照[an AWS best practice is to use IAM Roles to pass credentials](http://blogs.aws.amazon.com/security/post/Tx610S2MLVZWEA/Using-IAM-roles-to-distribute-non-AWS-credentials-to-your-EC2-instances)

       一定要注意的是:
       *由于主密钥已被接受, 因此分发私钥会带来潜在的安全风险。如果恶意方获得对置的Minion密钥的访问权限, 则它将有权访问您的整个状态树和其他敏感数据。*
    4. 预置Minon
       在Minion 启动前,将minions keys(minion.pem  minion.pub)放在如下目录下:
       *注意如果生成的密钥为XDevelopmServer.XDEVELOPMENT.local.pem,XDevelopmServer.XDEVELOPMENT.local.pub需要将名称改为minion.pem和minion.pub,要理解在minion下尽可能是这一对key*
       ```
       /etc/salt/pki/minion/minion.pem
       /etc/salt/pki/minion/minion.pub
       ```
*    设置salt-minion 目录用户权限
>    1.  有需要单独设置salt-minion 用户账户的,需要现在控制面板--用户管理--添加一个标准账户
>    2.  添加用户对salt 目录的访问权限
>>       例如选择c:\salt右键点击属性,选择Securtiy(安全)栏--Advanced高级)--点击Continue--弹出允许用户列表
>>       点击左上角蓝色连接:Select a pricipal 添加新建的salt-minion 账户

*    设置salt-minion service 的用户权限
>1.  在cmd 下打开services.msc ,找到salt-minion ,右键选择属性(propertis)
>2.  选择log on, This account,
>3.  输入salt-minion 用户名,确认密码,最好重新输入一遍,最后确认。    
   
*    配置slat-minon启动参数
>    打开C:\salt\conf\minion配置文件,
>    查找到master:配置项,设置为salt-master 的IP或dns
>    查找到id: minion id 配置项,设置为salt-minion 主机名称或其他可以区分minion的ID

*为确保salt-minon 在windows 重启后能够完成启动或正常启动,请把service Startup type:由Automatic改为Automatic (Delayed Start) *

**重启slat-minion services**
===================
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值