zoukankan      html  css  js  c++  java
  • Salt-ssh批量自动安装被控端salt-mini

        Salt-ssh是Saltstack的另外一种管理方式,无需安装minion端,可以运行salt的一切功能,管理和使用方法基本和salt一样。但是,salt-ssh并没有继承原来的ZeroMQ通讯架构。所以,她的执行速度比较慢,作为salt的补充在初次批量安装minion或某些不能安装minion的特殊场景下还是非常好用的。
    环境配置说明:

    Hostname IP地址  节点 服务
    salt-master 10.10.100.127 master salt-ssh
    salt-client01 10.10.100.8  minion salt-minion
    salt-client02 10.10.100.148  minion salt-minion

     

     

     

     

    客户端在/etc/hosts文件中写入主机名和ip的映射关系:

    echo  "10.10.100.8 salt-client01" >> /etc/hosts
    echo  "10.10.100.148 salt-client02" >> /etc/hosts  

    1.安装salt-ssh(在salt-master端安装)

    yum -y install salt-ssh
    

    2.配置/etc/salt/roster,所有需要安装被控端的主机信息,都在这里配置和定义。

    [root@salt-master ~]# vim /etc/salt/roster
    
    # Sample salt-ssh config file
    #
    10.10.100.8:
      host: 10.10.100.8
      user: root
      passwd: 1q2w3e4r5t--==
      port: 22
      timeout: 10
    10.10.100.148: host: 10.10.100.148 user: guest passwd: 1q2w3e4r5t--== sudo: True port: 22 timeout: 10

    3.编写state.sls文件

    1>.创建目录

    mkdir /etc/salt/states/minions/conf			#存放统一管理minion端的配置文件信息
    mkdir /etc/salt/states/minions/yum.repos.d          #yum源的配置信息
    
    路径:/etc/salt/states/minion
    目录树结构如下:
    
    [root@Testa-www minions]# tree
    .
    ├── conf
    │?? └── minion
    ├── install.sls
    └── yum.repos.d
        ├── CentOS6-Base-163.repo
        └── epel.repo
    
    2 directories, 4 files
    

    2>.编写vim /etc/salt/states/minions/install.sls文件

    #salt_minion_install
    minion_yum:                   	#配置yum源信息
      file.recurse:
        - name: /etc/yum.repos.d
        - source: salt://minions/yum.repos.d
        - user: root
        - group: root
        - file_mode: 644
        - dir_mode: 755
        - include_empty: True
    minion_install:              	  #安装salt-minion
      pkg.installed:
        - pkgs:
          - salt-minion
        - require:
          - file: minion_yum
        - unless: rpm -qa | grep salt-minion
    minion_conf:                    #minion配置文件信息
      file.managed:
        - name: /etc/salt/minion
        - source: salt://minions/conf/minion
        - user: root
        - group: root
        - mode: 640
        - template: jinja
        - defaults:
          minion_id: {{ grains['fqdn_ip4'][0] }}    #要求客户端/etc/hosts中绑定其IP及主机名,不绑定主机名在127.0.0.1下
        - require:
          - pkg: minion_install
    minion_service:                                 #服务状态
      service.running:
        - name: salt-minion
        - enable: True
        - require:
          - file: minion_conf
    

    3.>修改/etc/salt/states/minions/conf/minion文件如下两行:

    master: 10.10.100.127    		  #master端IP  
    id: {{ minion_id }}                 #jinja格式
    

    4.>定义vim /etc/salt/states/top.sls文件。

    base:
      '*':                                 #主机信息
        - minions.instal            #执行minions目录下的install.sls文件  
    

    最终目录结构如下:

    路径:/etc/salt/states
    [root@salt-master states]# tree
    .
    ├── minions
    │?? ├── conf
    │?? │?? └── minion
    │?? ├── install.sls
    │?? └── yum.repos.d
    │??     ├── CentOS6-Base-163.repo
    │??     └── epel.repo
    └── top.sls
    
    3 directories, 5 files
    

    4.部署salt-minion

    salt-ssh端执行如下命令:

    salt-ssh -i '*' test.ping 								 #测试主机连通性,如果没问题执行下面的命令
    salt-ssh -i '*' state.sls minions.install
    

    5.验证结果:

    [root@salt-master ~]# salt-ssh -ir '*' 'ps aux | grep salt' |grep salt |grep -v grep |wc -l
    2
    

    参考文档:https://www.sudops.com/you-must-have-a-tty-to-run-sudo.html 

           http://www.cnblogs.com/jim-hwg/p/4952418.html

                  http://blog.csdn.net/hnhuangyiyang/article/details/50421422# 

     

      

  • 相关阅读:
    python2在安装pywin32后出现ImportError: DLL load failed 解决方法
    selenium webdriver 启动三大浏览器Firefox,Chrome,IE
    windows下创建Python虚拟环境
    个人随笔
    在Pycharm中使用jupyter笔记本
    python之socket网络编程
    如何创建一个Django项目
    在Ubuntu终端彻底删除软件
    Ubuntu16.04下安装redis
    postgresql11 查看表结构和系统视图
  • 原文地址:https://www.cnblogs.com/saneri/p/6394830.html
Copyright © 2011-2022 走看看