zoukankan      html  css  js  c++  java
  • saltstack之(十)扩展组件salt-ssh

    场景:公司有50台服务器,需要安装salt-minion客户端,并完成与salt-master的认证,接受salt-master的管理。本片文章只用了2台服务器做演示,大家可以在roster文件中定义所有50台机器的信息。

    规划:
    192.168.3.1 node1.xkops.com --角色:salt-master|minion1
    192.168.3.2 node2.xkops.com --角色:salt-minion2


    1.在node1上安装salt-master和salt-ssh,启动salt-master并设置开机启动。

    [root@node1 ~]# yum -y install salt-master salt-ssh
    [root@node1 ~]# service salt-master start
    [root@node1 ~]# chkconfig salt-master on


    2.在node1上编辑salt-ssh的roster文件。

    [root@node1 ~]# cat /etc/salt/roster 
    node1.xkops.com:
      host: 192.168.3.1
      user: root
      passwd: xiaoke
    node2.xkops.com:
      host: 192.168.3.2
      user: root
      passwd: xiaoke

    3.在node1上测试salt-ssh连接roster文件中定义的客户端。
    [root@node1 ~]# salt-ssh --key-deploy -i '*' test.ping
    node2.xkops.com:
    True
    node1.xkops.com:
    True

    *注释:此时会将node1服务器的key写入所有客户端。故可以将roster文件中的passwd删除,避免密码泄漏。

    4.在node1上编写sate.sls文件批量安装salt-minion,目录结构如下:

    [root@node1 salt]# pwd
    /srv/salt
    [root@node1 salt]# tree
    .
    ├── files
    │   └── minion
    ├── salt-minion.sls
    └── top.sls
    
    1 directory, 3 files

    5.state文件的详细内容如下:

    [root@node1 salt]# cat top.sls 
    base:
      '*':
        - salt-minion
    [root@node1 salt]# cat salt-minion.sls 
    salt-minion-install:
      pkg.installed:
        - name: salt-minion
      file.managed:
        - name: /etc/salt/minion
        - source: salt://files/minion
        - user: root
        - group: root
        - mode: 644
        - template: jinja
        - defaults:
          HOST: {{ grains['id'] }}
        - require:
          - pkg: salt-minion-install
      service.running:
        - name: salt-minion
        - enable: true
        - reload: true
        - watch:
          - file: salt-minion-install
    [root@node1 salt]# egrep ^id files/minion 
    id: {{ HOST }}

    6.执行编写的状态模块
    [root@node1 salt]# salt-ssh '*' state.sls salt-minion

    7.执行成功后,检查客户端salt-minion状态。
    node1:

    [root@node1 salt]# chkconfig --list salt-master
    salt-master 0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
    [root@node1 salt]# service salt-minion status
    salt-minion (pid 33114) 正在运行...
    [root@node1 salt]# egrep '^id|^master' /etc/salt/minion
    master: node1.xkops.com
    id: node1.xkops.com

    node2检查同上。

    8.在master端查看。
    [root@node1 salt]# salt-key -L
    Accepted Keys:
    Denied Keys:
    Unaccepted Keys:
    node1.xkops.com
    node2.xkops.com

    9.接受所有的客户端认证
    [root@node1 salt]# salt-key -y -A

    *注释:当然也可以不使用状态文件,使用salt-ssh直接执行shell命令安装salt-minion也可以。

  • 相关阅读:
    多线程 thread和Task的用法以及注意事项
    Application.DoEvents()的使用
    测试
    python-包管理工具-pip
    压缩下载文件
    如何修改Django中的日期和时间格式 DateTimeField
    Django model数据 时间格式
    模板语法
    Django框架基础-MTV模型
    view架构
  • 原文地址:https://www.cnblogs.com/xkops/p/5483323.html
Copyright © 2011-2022 走看看