• 学习一下saltstack 服务器批量管理


    学习一下saltstack 服务器批量管理

    saltstack运维工具学习,以及rpc远程过程调用

    环境准备 2台服务器 一个是

    192.168.16.85 s24master
    192.168.16.105 s24minion1

    修改2台机器的主机名,用于主机名通信,加速salt的命令执行

    hostnamectl set-hostname s24master
    hostnamectl set-hostname s24minion

    关闭2台机器的iptables防火墙策略,防止端口拒绝

    iptables -F #清空防火墙规则
    systemctl stop firewalld #关闭防火强服务
    systemctl disable firewalld #禁止防火墙开机自启

    分别安装2个软件,还是配置好阿里的yum源

    yum install salt-master -y

    yum install salt-minion -y

    2.配置/etc/hosts文件,用于主机名通信

    192.168.16.105 s24minion
    192.168.16.85 s24master

    3.修改salt的master和minion的配置文件
    在master机器上修改 /etc/salt/master文件改为如下
    [root@s24master ~]# grep -vE "^$|#" /etc/salt/master
    interface: 0.0.0.0
    publish_port: 4505
    user: root
    worker_threads: 5
    ret_port: 4506

    修改minion的配置如下
    [root@s24minion yum.repos.d]# grep -vE "^$|#" /etc/salt/minion
    master: s24master
    master_port: 4506
    user: root
    id: s24minion1

    4.分别启动salt-master和salt-minion
    [root@s24master ~]# systemctl start salt-master
    [root@s24minion yum.repos.d]# systemctl start salt-minion

    5.查看密钥是否被读取到了
    在master上输入salt-key -L ,查看是否读取到了minion的信息

    6.分别检查2台机器的密钥信息,是否一致
    在master机器上输入 salt-key -f s24minion1
    在minion机器上输入 salt-call --local key.finger

    7.接收minion1的密钥,准备管理他了
    [root@s24master ~]# salt-key -a s24minion1

    8.使用salt的第一个命令,测试服务器是否存活
    salt '*' test.ping #发送命令接口,ping一下被管理的机器,是否存货,返回true活着,负责挂掉了,或者salt-minion服务器宕机了
    salt 是核心管理命令
    "*" 目标匹配
    test.ping 是test模块下的一个功能函数

    9.对于密钥管理的命令如下
    salt-key 参数如下
    -L #查看KEY状态
    -A #允许所有
    -D #删除所有
    -a #认证指定的key
    -d #删除指定的key
    -r #注销掉指定key(该状态为未被认证)

    salt-key -d 密钥名 #删除密钥

    10.学习salt的命令接口
    [root@s24master ~]# salt 's24minion1' test.fib 50
    [root@s24master ~]# salt '*' cmd.run 'touch /tmp/一给我里giao' --summary #输出salt命令执行结果的详细情况

    11.远程安装nginx,以及启动nginx
    1026 salt '' cmd.run "systemctl status nginx"
    1027 salt 's24minion1' cmd.run "yum install nginx -y"
    1028 salt '
    ' cmd.run "systemctl status nginx"
    1029 salt '' cmd.run "netstat -tunlp|grep 80"
    1030 salt '
    ' cmd.run "yum install net-tools -y"
    1031 salt '' cmd.run "netstat -tunlp|grep 80"
    1032 salt '
    ' cmd.run "systemctl start nginx"
    1033 salt '' cmd.run "netstat -tunlp|grep 80"
    1034 salt '
    ' cmd.run "systemctl stop nginx"

    12.远程安装redis,以及启动使用redis

    13.salt提供的软件安装模块,其实页是在远程调用yum命令而已
    [root@master 192.168.11.72 ~]$salt '*' pkg.install "nginx"

    卸载minion上的nginx

    [root@master 192.168.11.72 ~]$salt '*' pkg.remove "nginx"

    检查pkg包的版本

    [root@master 192.168.11.72 ~]$salt '*' pkg.version "nginx"

    14.salt提供的服务信息模块其实调用的是 systemctl 命令
    [root@s24master ~]# salt '' service.start "redis"
    s24minion1:
    True
    [root@s24master ~]# salt '
    ' service.status "redis"
    s24minion1:
    True

    15.输出json格式的数据,以及yaml格式的数据
    [root@s24master ~]# salt '' service.status "redis" --out=json
    {
    "s24minion1": false
    }
    [root@s24master ~]#
    [root@s24master ~]#
    [root@s24master ~]# salt '
    ' service.start "redis" --out=json
    {
    "s24minion1": true
    }

    16.yaml语法学习
    用python的数据结构做对比
    {"s24":
    {"学生":
    {"男同学":["常鑫1号","常鑫2号"],"女同学":["常鑫","常黑"]}
    }
    }

    用yaml表示这个数据结构,在线yaml网站http://www.bejson.com/validators/yaml_editor/

    #yaml语法
    "s24": 
       "学生": 
          "男同学":
               - "常鑫1号"
               - "常鑫2号"
          "女同学": 
            - "常黑"
            - "常白"
    

    17.salt采集服务器静态信息之grains模块,其实就是用python写的一个超大的字典
    salt '*' grains.items

    [root@s24master ~]# salt '*' grains.item fqdn_ip4 --out=json

  • 相关阅读:
    阿里云CentOS主机修改默认SSH登录的22端口
    python跨文件设置全局变量
    python类装饰器
    执行python manage.py celery beat-l info 时报错 SystemError:<class 'OSError'>可能还会有其他报错
    利用Python脚本实现发送邮件
    python操作pymysql
    python-两个数组元素一样,位置个数不相同,按照一个标准的列表实现另一个列表的排序
    XORM高级操作
    flutter踩坑指南 配置篇
    create-react-app项目暴露webpack配置文件
  • 原文地址:https://www.cnblogs.com/ciquankun/p/12097027.html
Copyright © 2020-2023  润新知