• salt stack安装与使用


    SaltStack除了传统的C/S架构外,其实还有Masterless架构,如果采用Masterless架构,我不需要单独安装一台SaltStack Master机器,只需要在每台机器上安装Minion,然后采用本机只负责对本机的配置管理工作机制服务模式.

    Saltstack三大功能
    远程执行(执行远程命令)
    配置管理(状态管理)
    云管理
    
    Saltstack特征
    1)部署简单、方便;
    2)支持大部分UNIX/Linux及Windows环境;
    3)主从集中化管理;
    4)配置简单、功能强大、扩展性强;
    5)主控端(master)和被控端(minion)基于证书认证,安全可靠;
    6)支持API及自定义模块,可通过Python轻松扩展。
    
    Master与Minion认证
    1)minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。
    2)master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。
    
    Master与Minion的连接
    SaltStack master启动后默认监听4505和4506两个端口。4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof 查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
    
    1. saltstack安装配置
            服务端:
                IP:122.114.73.247   Hostname:doupo.com
            客户端:
                IP:122.114.154.79	   Hostanme:cangqiong.com
    
    2.  配置FQDN,让ip和主机名对应   vim /etc/hosts
                122.114.73.247   doupo.com doupo
                122.114.154.79	 cangqiong.com cangqiong
                scp /etc/hosts root@122.114.154.79:/etc/
    
    3.  关闭防火墙和selinux
            服务端:
                yum install epel-release -y  #安装 epel源
                yum install salt-master salt-minion -y  #安装服务端和被监控端服务
            客户端:
                yum install epel-release -y && yum install salt-minion –y
    #被控端:安装被监控端服务
            服务端配置:
                vim /etc/salt/minion
                在16行增加
                master: 122.114.73.247   #服务端地址
                systemctl start salt-master
                systemctl start salt-minion
            客户端:
                vim /etc/salt/minion
                在16行增加:master: 122.114.73.247   #服务端地址
                systemctl start salt-minion
                ps -ef | grep salt 查看进程
    4.  配置认证(在服务端操作)
                salt-key -a cangqiong.com    #对客户端主机进行签名
                salt-key -A  #对所有主机进行签名   -d 删除指定的主机    salt-key -L 查看证书签署情况
    5.  测试主机是否在线
                salt '*' test.ping   #对所有签名的客户端进行ping
                salt 'cangqiong.com' test.ping
                salt 'qiongcang.com' cmd.run 'system start httpd' #远程执行命令
    
    6.  saltstack之grains
            GRAINS 组件是saltstack中非常重要的一个组件,其主要用于记录Minion的一些静态信息,如比:CPU、内存、磁盘、网络等。grains信息是每次客户端启动后自动上报给master的,一旦这些静态信息发生改变需要重启minion 或者 重新同步下 grains。
            salt 'cangqiong' grains.ls   #列出所有的grains项目名称
            salt cangqiong grains.items  #列出所有的grains项和对应的值
         启动grains的信息并不是动态的,并不会时时变更,它只是在minion启动时收集到的,我们可以根据grains收集到的一些信息,做配置管理工作,可以支持自定义一些监控项
    
    7.  自定义grains
            需要在客户端上添加文件grains
                vim /etc/salt/grains
                role:client
                env:test
                myname:cangqiong Linux
                myhostname:cangqiong
                systemctl restart salt-minion
                执行salt cangqiong grains.items  或者salt cangqiong grains.item env查看
           还可以使用salt -G env:test cmd.run 'w' salt -G env:test cmd.run 'id'

    8.  saltstack之pillar
            grains用于存储静态不易变更的数据,而pillar一般用来存储动态的、敏感的数据;通过minion端和master端都可以配置设置或获取grains信息,而pillar信息只能在master端配置,再到minion端执行。
    pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息,可以自定义变量等
    
            自定义配置pillar过程:
                vim /etc/salt/master
                找到pillar_roots取消下面三行的注释
                pillar_roots:
                    base:
                        - /srv/pillar
            创建pillar文件的存放目录:
                mkdir -p /srv/pillar
                vim test.sls                      vim /srv/pillar/top.sls
                conf: /etc/123.conf            base:
                myname: saltstack-server        'cangqiong.com':
                                                                        - test
                systemctl restart salt-master
                salt '*' saltutil.refresh_pillar   #刷新获取新状态
                salt '*' pillar.items     #查看items
    

      

    9. Saltstack 配置管理服务
            vim /etc/salt/master
            406 file_roots:
            407    base:
            408      - /srv/salt/
            mkdir /srv/salt
            创建文件top.sls,apache.sls   ---python脚本注意缩进
            systemctl restart salt-master  --->salt taotao.com state.highstate
    

    10. 配置远程文件管理
            vim file.sls
            file_test:
                file.managed:
                     - name: /tmp/linux.txt
                     - source: salt://test/xiaoxiao.php
                     - user: root
                     - group: root
                     - mode: 644
                注意:第一行的 file-test 为自定的名字,表示该配置段的名字,可以在别的配置段中引用它;source指定文件从哪里拷贝,这里的 test 目录相当于是 /srv/salt/test 目录;name指定远程客户端要生成的文件。
                mkdir -p /srv/salt/test ---> ehco "hello world" >/etc/salt/test/xiaoxiao.php
                在/etc/salt/top.sls
                - apache下面加上  - file
               测试: salt taotao.com state.highstate
    

    11. saltstack远程执行命令
            vim cmd.sls
            cmd_test:
             cmd.run:
                  - unless: test -f /tmp/1111text.txt
                  - names:
                        - touch /tmp/11.txt
                        - mkdir /tmp/1233
                        - user: root
            注意:unless: 表示若/tmp/xuegodtext.txt文件不存在,也就是结果为True则执行-name后面的命令,为false则不执行;还可以使用 onlyif 表示若/tmp/xuegodtext.txt文件存在,则执行后面的命令;两者正好相反。
    
    11. saltstack远程执行shell脚本
              vim shell.sls
                  shell_test:
                    cmd.script:
                          - source: salt://test/1.sh
                          - user: root
        
                vim top.sls    
                       base:
                          'taotao.com':
                                - shell   #此名为上面创建的shell.sls
    lamp_test:                        -----lamp.sls
        cmd.script:
           - source: salt://linux.sh
    cmd_test:
         cmd.run:
           - names:
              - systemctl start mariadb
              - echo -e "<?php
            phpinfo();
    ?>" >/var/www/html/index.php 
              - systemctl start httpd
    -------------------------------------------------------------------------------------------
    base:            -----top.sls
      'taotao.com':
          - lamp
    
    lamp_test:          -----lamp.sls
        cmd.script:
           - source: salt://linux.sh
    -----------------------------------------------------------------------------
    cmd_test:           -----cmd.sls
       cmd.run:
          - names:
              - touch /tmp/index.html
              - echo "12332112345677654321" > /tmp/index.html
    -----------------------------------------------------------------------------
    base:                -----top.sls
      'taotao.com':
          - lamp
          - cmd
    

     

  • 相关阅读:
    Hack The Box——Traverxec
    Hack The Box——AI
    Hack The Box——Json
    BZOJ1036 树的统计Count
    BZOJ1036 树的统计Count
    BZOJ1036 树的统计Count
    BZOJ1036 树的统计Count
    .net 面试题
    .net 面试题
    .net 面试题
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/9648164.html
Copyright © 2020-2023  润新知