• 集中化管理平台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 查看

  • 相关阅读:
    P1443 马的遍历
    P1747 好奇怪的游戏
    蜀绣
    Five hundred miles
    如果没有你
    Yellow
    流星

    深入理解计算机中的 csapp,h和csapp.c
    可迭代的集合类型使用foreach语句
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/5083319.html
Copyright © 2020-2023  润新知