• salt-stack部署


    saltstack部署

     

    环境准备

    [root@server elasticsearch]# cat /etc/redhat-release 
    CentOS release 6.6 (Final)
    [root@server elasticsearch]# uname -r
    2.6.32-504.el6.x86_64

    配置表:

     环境配置:

    master:

    [root@master ~]# tail -2 /etc/hosts
    192.168.30.151 master.nulige.com
    192.168.30.152 node0l.nulige.com
    

    node01:

    [root@node01 ~]# tail -2 /etc/hosts
    192.168.30.151 master.nulige.com
    192.168.30.152 node0l.nulige.com
    

    安装软件:

    1、添加repo源

    阿里源:

    	
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    

    官网源:

    #CentOS6.x
    yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el6.noarch.rpm
     
    #CentOS7.x
    yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-1.el7.noarch.rpm
    

    2、安装master

    [root@linux-node1 ~]# yum install salt-master -y<br><br>设置开启自启动
    [root@linux-node1 ~]# chkconfig salt-master on<br>
    启动salt master
    [root@linux-node1 ~]# /etc/init.d/salt-master start
    startStarting salt-master daemon: [ OK ]<br><br>[root@master ~]# vi /etc/salt/master <br>interface: 192.168.14.67
    

    3、安装minion

    [root@linux-node2 ~]# yum install -y salt-minion
    修改配置文件,告诉他master  ip地址
     
    [root@linux-node2 ~]# vim /etc/salt/minion
    master: 192.168.14.67
    配置开机自启动,然后启动minion服务
     
    [root@linux-node2 ~]# chkconfig salt-minion on
    [root@linux-node2 ~]# /etc/init.d/salt-minion start
    至此,服务安装完毕!
    

    高级玩法:

    更改master和node01主机下面的vi /etc/hosts文件,指向master主机的ip地址,其它配置文件都不用修改。就可以直接node01连到master。

    192.168.30.151 salt
    

    a、更改日志级别:

    [root@master salt]# vi /etc/salt/master #log_level: warning
    log_level: debug   #把上面的warning 改成debug ,这样就可以输出更详细日志
    

    更改配置文件,需要重启服务。

    #在master上面重启服务
    /etc/init.d/salt-master restart
    

    b、查看日志

    [root@master salt]# cat /var/log/salt/master
     
    2017-04-14 00:06:03,008 [salt.client      ][ERROR   ][1345] Unable to connect to the salt master publisher at /var/run/salt/master
    2017-04-14 00:33:07,670 [salt.log.setup   ][ERROR   ][2361] An un-handled exception was caught by salt's global exception handler:
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 163: ordinal not in range(128)
    Traceback (most recent call last):
      File "/usr/bin/salt", line 10, in <module>
        salt_main()
      File "/usr/lib/python2.6/site-packages/salt/scripts.py", line 349, in salt_main
        client.run()
    

    4、在master机器上面操作#接受所有客户端授权[root@master ~]# salt-key -A

    The following keys are going to be accepted:
    Unaccepted Keys:
    node0l.nulige.com
    Proceed? [n/Y] y
    Key for minion node0l.nulige.com accepted.
    <br>#授权某台机授权<br>[root@master salt]# salt-key -A node0l.nulige.com -y<br>
    #查看主机
    [root@master ~]# salt-key -L
    Accepted Keys:
    node0l.nulige.com
    Denied Keys:
    Unaccepted Keys:
    Rejected Keys:
     
    #在master上面执行命令
    [root@master ~]# salt 'node0l.nulige.com' cmd.run 'ifconfig'
    node0l.nulige.com:
        eth0      Link encap:Ethernet  HWaddr 00:0C:29:9C:BC:75 
                  inet addr:192.168.14.66  Bcast:192.168.14.255  Mask:255.255.255.0
                  inet6 addr: fe80::20c:29ff:fe9c:bc75/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:26978 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:6178 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:32649669 (31.1 MiB)  TX bytes:659601 (644.1 KiB)
         
        lo        Link encap:Local Loopback 
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  inet6 addr: ::1/128 Scope:Host
                  UP LOOPBACK RUNNING  MTU:65536  Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0
                  RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
    

    常用命令

    #检查端口

    <em id="__mceDel">[root@master ~]# netstat -lnt
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State     
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN     
    tcp        0      0 192.168.30.151:4505         0.0.0.0:*                   LISTEN     
    tcp        0      0 192.168.30.151:4506         0.0.0.0:*                   LISTEN     
    tcp        0      0 :::22 
    </em>
    

    #测试ping

    [root@master ~]# salt '*' test.ping
    node0l.nulige.com:
        True
    

     #salt-key --help

    [root@localhost ~]# salt-key --help
    Usage: salt-key [options]
    
    Salt key 用于管理认证key
    
    Options:
      --version            显示版本号后退出
      --versions-report    显示程序的所有依赖包版本号,并退出
      -h, --help           帮助信息
      -c CONFIG_DIR, --config-dir=CONFIG_DIR
                           指定配置目录,默认 :/etc/salt/
    
      -q, --quiet          安静模式,不输出信息到控制台
      -y, --yes            对所有询问是否继续,回答yes,默认:false
    
      Logging Options:
                       设置loggin选项会覆盖掉配置文件中对日志的配置.
    
        --log-file=LOG_FILE                
                            指定日志文件路径,默认: /var/log/salt/key.
        --log-file-level=LOG_LEVEL_LOGFILE
                            日志文件等级,可设置下面中的一个值 'all', 'garbage',
                            'trace', 'debug', 'info', 'warning', 'error', 'quiet'.
                            默认: 'warning'.
        --key-logfile=KEY_LOGFILE
                            将所有的输出发送到指定的文件,默认: '/var/log/salt/key'
    
      Output Options:
        配置输出格式
    
        --out=OUTPUT, --output=OUTPUT
                            把salt-key命令的输出信息发送给指定的outputer. 
                    可设置为下面参数值 'no_return', 'virt_query'.
                            'grains', 'yaml', 'overstatestage', 'json', 'pprint',
                            'nested', 'raw', 'highstate', 'quiet', 'key', 'txt',
    
        --out-indent=OUTPUT_INDENT, --output-indent=OUTPUT_INDENT
                            设置输出行缩进的空格数. 
                            负数取消输出缩进编排.仅对使用的outputer有效.
        --out-file=OUTPUT_FILE, --output-file=OUTPUT_FILE
                            把显示输出到指定的文件
        --no-color, --no-colour
                            关闭字体颜色
        --force-color, --force-colour
                            强制开启输出颜色渲染
    
      Actions:
        -l ARG, --list=ARG 
                          打印公钥key. 可设置下面三个值
                    "pre", "un", and "unaccepted" 会显示 不许可/未签名 keys. 
                    "acc" or "accepted"会显示 许可/已签名 keys. 
                    "rej" or "rejected"会显示拒绝的 keys.  
                    "all" 会显示所有 keys.
        -L, --list-all      会显示所有公钥,相当月: "--list all"
        -a ACCEPT, --accept=ACCEPT
                            许可指定的公钥(使用--include-all选项
                            可以指定除了挂起的key外的所有reject状态的公钥)
    
        -A, --accept-all    许可所有pending的公钥
        -r REJECT, --reject=REJECT
                            拒绝指定的公钥 (使用--include-all选项
                            可以指定除了挂起的key外的所有accept状态的公钥)
    
        -R, --reject-all    拒接所有pending的公钥
    
        --include-all         配合 accepting/rejecting 选项使用,指定所有非pending状态的公钥
    
        -p PRINT, --print=PRINT
                            打印指定的公钥
        -P, --print-all     Print all public keys
        -d DELETE, --delete=DELETE
                            根据公钥的名称删除公钥
        -D, --delete-all    删除所有 keys
        -f FINGER, --finger=FINGER
                            打印指定key的指纹信息
        -F, --finger-all    打印所有key的指纹信息
    
      Key 常用选项:
        --gen-keys=GEN_KEYS
                            对生成的key配置设置一个salt使用的名称。
        --gen-keys-dir=GEN_KEYS_DIR
                            设置生成key对的放置目录,默认当前目录。default=.
    
    --keysize=KEYSIZE                   
                    为生成key设置位数, 仅跟--gen-keys选项配合时有效,
                    数值大小必须大于2048,否则会被提升至2048位,默认2048
                            default=2048
    

     4、生产业务场景

    一、已经加入master的主机,需要修改node客户端的主机名称,再加入master,就加入不了。

      在node02.nulige.com客户端上面操作:

    1、hostname node02.nulige.com
    
    2、vi /etc/sysconfig/network
    
    HOSTNAME=node02.nulige.com
    
    3、重启服务
    
    [root@node01 ~]# /etc/init.d/salt-minion restart
    
    4、还是加不进去,因为他还有生成了一个缓存文件
    
    [root@node01 ~]# cd /etc/salt/
    [root@node01 salt]# ll
    总用量 40
    -rw-r----- 1 root root 26374 4月 14 00:06 minion
    drwxr-xr-x 2 root root 4096 4月 13 14:03 minion.d
    -rw-r--r-- 1 root root 17 4月 13 13:59 minion_id
    drwxr-xr-x 3 root root 4096 4月 13 13:59 pki
    
    [root@node01 salt]# cat minion_id
    node0l.nulige.com
    
    原因:
    
    这里有两种情况,一种是生成一个缓存文件,别一种是生成了一个pki的key文件
    
    a、清空缓存文件
    
    [root@node01 salt]# >minion_id
    
    b、查看pki文件下面key文件
    
    [root@node01 salt]# tree pki/
    pki/
    └── minion
    ├── minion_master.pub
    ├── minion.pem
    └── minion.pub
    
    1 directory, 3 files
    
    #删除minion_id和pki文件下面的key
    [root@node01 salt]# rm -rf minion_id pki/
    
    c、再重启服务
    
    [root@node01 salt]# /etc/init.d/salt-minion restart
    
    [root@node01 salt]# ps -ef|grep salt
    
    [root@node01 salt]# /etc/init.d/salt-minion start
    

    在master服务端操作:

    #删除之前加入的客户端名称
    [root@master salt]# salt-key -d node0l.nulige.com -y
    

    测试:

    [root@master salt]# salt 'node0l.nulige.com' test.ping   #有时候会出现没有返回结果的情况,因为网络沿时的问题导致的
    node0l.nulige.com:
        True
    

    查看master端key保存目录

    [root@master master]# ll  /etc/salt/pki/master
    总用量 28
    -r-------- 1 root root 1679 4月  13 13:59 master.pem
    -rw-r--r-- 1 root root  451 4月  13 13:59 master.pub
    drwxr-xr-x 2 root root 4096 4月  13 14:03 minions
    drwxr-xr-x 2 root root 4096 4月  13 13:59 minions_autosign
    drwxr-xr-x 2 root root 4096 4月  13 13:59 minions_denied
    drwxr-xr-x 2 root root 4096 4月  13 14:03 minions_pre
    drwxr-xr-x 2 root root 4096 4月  13 13:59 minions_rejected
    
    [root@master ~]# cd /etc/salt/pki/master/minions
    [root@master minions]# ll
    总用量 4
    -rw-r--r-- 1 root root 451 4月 13 13:59 node0l.nulige.com
    [root@master minions]# cat node0l.nulige.com 
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcjP/RWw/SDW6JVd2iUC
    oMLfKQNnK0Aw7b8DXN/C80n8cjz+49qFlQfVmnxYCQn5elys26rMPxZ2e0eobo2x
    IOstAOw+XRhCoWesqV1mpZfOGgY0VcrdCAbffb9HM6na+0uHB21NtM1mC69BodMj
    3959I63KltPcgZ2M1WSqJ+4/RscKHTa5DolRySnMlzH6Gr4yrb1RYrK0qTq9qcoC
    6pMYUTh/PPm1aQ66pXSwYYk5FwqFOicvdzesvIGKenKNwtp3bBaVL/iSzhkXCuF4
    iuQ9TtBe3g5HwSbihuuv5CGCAR3kgxiFc2twMKTx3o708wB+11j/Gkn9h/yMguDH
    SQIDAQAB
    -----END PUBLIC KEY-----
    

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

      

  • 相关阅读:
    在VMware 虚拟机中彻底删除linux系统
    Linux中安装MySQL5.7和查看启动状态
    VMware启动时提示我已移动或我已复制该虚拟机
    Linux中查看MySQL版本启动默认安装位置
    linux 下查看redis是否启动和启动命令
    Linux中查看redis版本
    maven下载依赖失败解决方案
    《痞子衡嵌入式半月刊》 第 27 期
    痞子衡嵌入式:盘点国内车规级MCU厂商
    痞子衡嵌入式:盘点国内Cortex-M内核MCU厂商高性能产品
  • 原文地址:https://www.cnblogs.com/chenice/p/6726068.html
Copyright © 2020-2023  润新知