zoukankan      html  css  js  c++  java
  • 集中化管理平台Saltstack安装配置

    salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System。

    基本原理:

    SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信

    minion上线后先与master端联系,把自己的pub key发过去,这时master端通过salt-key -L命令就会看到minion的key,接受该minion-key后,也就是master与minion已经互信

    master可以发送任何指令让minion执行了,salt有很多可执行模块,比如说cmd模块,在安装minion的时候已经自带了,它们通常位于你的python库中

    这些模块是python写成的文件,里面会有好多函数,如cmd.run,当我们执行salt '*' cmd.run 'uptime'的时候,master下发任务匹配到的minion上去,minion执行模块函数,并返回结果。master监听4505和4506端口,4505对应的是ZMQ的PUB system,用来发送消息,4506对应的是REP system是来接受消息的。

    具体步骤如下

    1. Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc

    2. salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个jobid,根据jobid获取命令执行结果。

    3. master接收到命令后,将要执行的命令发送给客户端minion。

    4. minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理

    5. minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果通过消息总线返回给master

    6. master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中

    7. salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端。

    1、安装

    #yum install salt-master -y  或  yum install salt-minion -y

    #chkconfig salt-master on

    #service salt-master start

    2、防火墙配置

    #iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT

    .......................................................................................4506..............

    被控端无须配置防火墙规则

    3、修改主控端配置,然后并重启服务

    #vim /etc/salt/master

    interface: 192.168.1.20   #绑定Master通信IP

    auto_accpet: True           #自动认证,避免手动运行salt-key来确认证书信任

    file_roots:                       #指定salt文件根目录位置

      base:

         - /srv/salt

    4、修改被控端配置,并重启服务

    #vim /etc/salt/minion

    master: 192.168.1.20   #指定master主机IP地址

    id: mycentos                #修改被控端主机识别id,建议使用操作系统主机名来配置

    5、校验安装结果

    #salt 'mycentos' test.ping

    mycentos:

        True

    -----------------------------------------------------------------------

    当/etc/salt/master没有配置auto_accept:True时,需要通过salt-key命令来进行证书认证操作,具体操作如下:

    • salt-key -L      显示已经或未认证的被控端id,Accepted Keys为已认证清单,Unaccpetd Keys为未认证清单;
    • salt-key -D     删除所有认证主机id证书
    • salt-key -d id  删除单个id证书
    • salt-key -A     接受所有id证书请求
    • salt-key -a id  接受单个id证书请求

    salt-run #管理minion

    • salt-run manage.up               #显示当前活着的minion
    • salt-run manage.down           #显示未存活的minion
    • salt-run manage.status         #显示当前up和down 的minion   
    • salt-run manage.downremovekeys-True   #显示未存活的minion,并将其移除

    须知:

    SLS文件默认使用序列化数据格式-YAML,这个格式风格你要注意的是:不要使用Tab键缩进,通常开头缩进2个空格,字符后缩进1个空格,如冒号、逗号、横杠。

    如果执行命令时,忘记语法,可以使用sys.doc模块查询salt模块相关使用方法。

    # salt '*' sys.doc disk

    如想看执行过程,可加-l debug,如下:

    # salt '*' cmd.run 'ls' -l debug

    -----------------------------------------------------------------------------------

    此外,salt-bootstrap是SaltStack的一个单独项目,该项目主要用于解决多平台一键部署SaltStack环境。核心工程就是维护一个庞大的bash脚本

    Master端安装:

    #curl -L https://bootstrap.saltstack.com -o install_salt.sh

    #sh install_salt.sh -M -N      #只安装最新版Master

    Minion端安装:

    #echo "IPADDRESS   salt" >> /etc/hosts  #IPADDRESS为Master服务器地址

    #curl -L https://bootstrap.saltstack.com -o install_salt.sh

    #sh install_salt.sh -i Minion    #只安装最新版Minion并指定Minion id

    关于salt-bootstrap脚本的参数可以运行 sh install_salt.sh -h 查看

  • 相关阅读:
    HDU 1025 Constructing Roads In JGShining's Kingdom (DP+二分)
    HDU 1158 Employment Planning
    HDU 2059 龟兔赛跑
    Csharp 简单操作Word模板文件
    Csharp windowform datagridview Clipboard TO EXCEL OR FROM EXCEL DATA 保存datagridview所有數據
    Csharp 讀寫文件內容搜索自動彈出 AutoCompleteMode
    Csharp windowform controls clear
    CSS DIV大图片右上角叠加小图片
    Csharp DataGridView自定义添加DateTimePicker控件日期列
    Csharp 打印Word文件默認打印機或選擇打印機設置代碼
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/5083319.html
Copyright © 2011-2022 走看看