• Saltstack 安装 命令


    主机规划

    10.0.0.21  master 
    10.0.0.22  minion
    10.0.0.23  minion

    基础环境

    [root@10.0.0.21 ~]# cat /etc/redhat-release
    CentOS Linux release 7.1.1503 (Core) 
    
    [root@10.0.0.21 ~]# uname -r
    3.10.0-957.el7.x86_64
    
    [root@10.0.0.21 ~]# uname -m
    x86_64

     关闭防火墙和SElinux

    [root@10.0.0.21 ~]# systemctl stop firewalld
    [root@10.0.0.21
    ~]# vim /etc/selinux/config SELINUX=disabled
    [root@10.0.0.21
    ~]# getenforce Disabled

     配置机器的hosts文件,用于加速域名解析,加入以下信息,每台机器都要配置

    [root@10.0.0.21 opt]# cat /etc/hosts
    
    10.0.0.21 10.0.0.21
    10.0.0.22 10.0.0.22
    10.0.0.23 10.0.0.23

    更改主机名

    [root@10.0.0.21 opt]# hostnamectl set-hostname master
    [root@10.0.0.22 opt]# hostnamectl set-hostname minion
    [root@10.0.0.23 opt]# hostnamectl set-hostname minion

    安装

    配置epel源

    [root@10.0.0.21 opt ]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    [root@ 10.0.0.21 opt ]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    #清空缓存
    [root@ 10.0.0.21 opt ]# yum clean all 
     #生成yum缓存
    [root@ 10.0.0.21 opt ]# yum makecache

    开始安装salt了

    安装master(10.0.0.21)
    [root@10.0.0.21 opt]# yum install salt-master -y
    安装minion(10.0.0.22,10.0.0.23)
    [root@10.0.0.22 opt]# yum install salt-minion -y

    salt端口

    安装好salt之后开始配置,salt-master默认监听两个端口:

    4505   publish_port 提供远程命令发送功能
    4506   ret_port     提供认证,文件服务,结果收集等功能
    确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。

    配置文件

    salt-master的配置文件是/etc/salt/master
    salt-minion的配置文件是/etc/salt/minion
    配置文件中包含了大量可调整的参数,这些参数控制master和minion各个方
    # salt运行的用户,影响到salt的执行权限
    user: root
    
    #s alt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过CPU的个数
    worker_threads: 10
    
    # master的管理端口
    publish_port : 4505
    
    # master跟minion的通讯端口,用于文件服务,认证,接受返回结果等
    ret_port : 4506
    
    # 如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
    syndic_master_port : 4506
    
    # 指定pid文件位置
    pidfile: /var/run/salt-master.pid
    salt-master 常用配置

    salt-master文件配置

    [root@10.0.0.21 opt]# grep -v ^# /etc/salt/master|grep -v ^$
    interface: 0.0.0.0  #绑定到本地的0.0.0.0地址
    publish_port: 4505  #管理端口,命令发送
    user: root      #运行salt进程的用户
    worker_threads: 5  #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
    ret_port: 4506  #执行结果返回端口
    pidfile: /var/run/salt-master.pid #pid文件位置
    log_file: /var/log/salt/master  #日志文件地址
    
    #自动接收minion的key
    auto_accept: False
    # minion的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
    id: slave
     
    # salt运行的用户权限
    user: root
     
    # master的识别ID,可以是IP,域名,或是可以通过DNS解析的字符串
    master : master
     
    # master通信端口
    master_port: 4506
     
    # 备份模式,minion是本地备份,当进行文件管理时的文件备份模式
    backup_mode: minion
     
    # 执行salt-call时候的输出方式
    output: nested
     
    # minion等待master接受认证的时间
    acceptance_wait_time: 10
     
    # 失败重连次数,0表示无限次,非零会不断尝试到设置值后停止尝试
    acceptance_wait_time_max: 0
     
    # 重新认证延迟时间,可以避免因为master的key改变导致minion需要重新认证的syn风暴
    random_reauth_delay: 60
     
    # 日志文件位置
    log_file: /var/logs/salt_minion.log
    salt-minion 常用配置

    salt-minion文件配置

    [root@10.0.0.22 opt]# grep -v ^# /etc/salt/minion|grep -v ^$
    master: 10.0.0.21  
    master_port: 4506
    user: root
    id: 10.0.0.22
    acceptance_wait_time: 10
    log_file: /var/log/salt/minio

     启动salt-master和salt-minion

    [root@10.0.0.21 opt]# systemctl start salt-master
    [root@10.0.0.22 opt]# systemctl start salt-minion

    查看salt的状态

    [root@10.0.0.21 opt]# systemctl status salt-master
    [root@10.0.0.22 opt]# systemctl status salt-minion

    在master上接收minion秘钥

     在salt-master执行

    [root@10.0.0.21 opt]# salt-key *
    Accepted Keys:
    Denied Keys:
    Unaccepted Keys:
    10.0.0.22
    10.0.0.23
    Rejected Keys:

    指定接受minion的key

    [root@10.0.0.21 opt]# salt-key -a 10.0.0.22

    检查两条秘钥情况

    在主执行
    salt-key -f 10.0.0.22
    
    在从执行
    salt-call --local key.finger

    salt-key常用命令

    [root@10.0.0.21 opt]# salt-key -L
    Accepted Keys:  #已经接受的key
    Denied Keys:    #拒绝的key
    Unaccepted Keys:#未加入的key
    Rejected Keys:#吊销的key
    
    #常用参数
    -L  #查看KEY状态
    -A  #允许所有
    -D  #删除所有
    -a  #认证指定的key
    -d  #删除指定的key
    -r  #注销掉指定key(该状态为未被认证)
    
    #在master端/etc/salt/master配置
    auto_accept: True   #如果对Minion信任,可以配置master自动接受请求

    日常命令参数

    首先知道master和minion都安装了什么文件,然后才知道怎么操作

    master端

    pm -ql salt-master
    复制代码
    /etc/salt/master      # salt master主配置文件
    /usr/bin/salt           #salt master 核心操作命令
    /usr/bin/salt-cp       #salt 文件传输命令
    /usr/bin/salt-key    #salt证书管理
    /usr/bin/salt-master    #salt master 服务命令
    /usr/bin/salt-run          #salt master runner命令

    slave端

    [root@slave  ~]$rpm -ql salt-minion
    /etc/salt/minion     #minion配置文件
    /usr/bin/salt-call    #拉取命令
    /usr/bin/salt-minion   #minion服务命令
    /usr/lib/systemd/system/salt-minion.service   #minion启动脚本

    第一条salt命令

    探测minion主机是否存活

    [root@10.0.0.21 opt]# salt '*' test.ping
    10.0.0.22:
    True
    10.0.0.23:
    True
    
    # salt 是一个命令 
    # * 表示目标主机, 在这里代表所有目标主机 
    # test.ping是salt远程执行的一个模块下面的方法。

    获取minion主机名

    [root@10.0.0.21 opt]# salt '*' cmd.run 'hostname'

    获取minion的IP

    [root@10.0.0.21 opt]# salt '*' cmd.run 'ip a'

    在minion创建文件

    [root@10.0.0.21 opt]# salt '*' cmd.run 'touch /tmp/text.txt '

    返回值的格式替换

    [root@10 opt]# salt --out=json "*" cmd.run  "hostname"

    返回yaml的语法格式

    [root@10 opt]# salt --out=yaml "*" cmd.run  "hostname"

    为所有的机器安装nginx

    安装
    [root@10.0.0.21 opt]# salt "*" pkg.install 'nginx'
    
    卸载
    [root@10.0.0.21 opt]# salt "*" pkg.remove 'nginx'
    
    查看pkg包的版本
    [root@
    10.0.0.21 opt]# salt "*" pkg.version 'nginx'

    远程管理

    启动
    [root@10.0.0.21 opt]# salt "*" service.start 'nginx'
    
    关闭
    [root@10.0.0.21 opt]# salt "*" service.stop 'nginx'
    
    查看状态
    [root@10.0.0.21 opt]# salt "*" service.status 'nginx'
  • 相关阅读:
    Linux信号列表
    ubuntu nfs server的安装
    【转】 澄清:make oldconfig
    鸟哥的私房菜
    【转】WIN XP下pppoe服务器的搭建与使用
    《Win32多线程程序设计》学习笔记 第4章 同步控制之 事件(Event Objects) 和 interlocked variables
    《Win32多线程程序设计》学习笔记 第4章 同步控制之 信号量(Semaphores)
    《C++编程规范》学习笔记(2)
    《Win32多线程程序设计》学习笔记 第5章 不要让线程成为脱缰野马
    《C++编程规范》学习笔记(4)编程风格
  • 原文地址:https://www.cnblogs.com/wanglan/p/7405658.html
Copyright © 2020-2023  润新知