1. 首页 » 生活常识

自动化运维平台网站搭建与设计实现

自动化运维平台设计(1)SaltStack入门

更多计算分享:

https://www.jackcheng.pro

saltstack基本概述:

简述:saltstack是一个异构平台基础设施管理工具具有远程执行、配置管理、云管理功只需要花费数分钟时间就可以运行起来支撑管理上万台的服务器速度快,服务器之间的秒级通讯,在数秒钟就可以完成数据的传递运行方式:local本地运行Master/Minion传统方式运行Syndic分布式salt SSH学习资源:saltstack官方网站: https://www.saltstack.comsaltstack官方文档: https://docs.saltstack.cnsaltstack GitHub

saltstack的安装:

    准备工作:
        需要三个节点:
            salt-master 192.168.200.111
            salt-minion-01 192.168.200.112
            salt-minion-02 192.168.200.113
        分别配置网络映射
        更新三个节点的yum源: 改为国内源
            mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
            curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
            sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
            yum makecache
            yum -y update
        关闭防火墙:
            systemctl stop firewalld
            systemctl disable firewalld
        关闭安全模组:
            vi /etc/selinux/config
            设置SELINUX=disable 
        重启服务器
    安装:
        配置salt的yum仓库:
            rpm --import https://repo.saltproject.io/py3/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
            curl -fsSL https://repo.saltproject.io/py3/redhat/7/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
            yum clean expire-cache
        在salt-master节点: yum -y install salt-master
        在salt-minion节点: yum -y install salt-minion

SaltStack集群:

salt-master: 
    systemctl start salt-master
    systemctl enable salt-master
salt-minion:
    打开配置文件将minion指向master: /etc/salt/minion
    sed -i s#^\#master: .*#master: salt-master#g /etc/salt/minion
    systemctl start salt-minion
    systemctl enable salt-minion
salt认证(salt-master):
    待认证的主机: salt-key
    认证指定主机: 
        salt-key -a salt-minion-01 -y
        salt-key -a salt-minion-02 -y
检测架构是否正常(salt-master): 
    salt '*' test.ping
    看到结果为True即正常

salt远程执行:

介绍: 远程执行是saltstack的核心功能之一,主要使用salt模块给批量选定的Minion端执行相应的命令,并返回结果

举例: salt ‘*‘ disk.usage

自动化运维平台设计(1)SaltStack入门

判断salt的minion主机是否存活: 
    salt '*' test.ping
    格式:
        salt 是一个命令
        *代表目标主机,这里所有的minion主机
        test.ping 是salt远程执行模块下下面的一个方法
        test是模块名,ping是test模块中的一个方法
使用cmd模块run方法远程执行shell命令:
    salt '*' cmd.run 'ping -c1 www.baidu.com &>/dev/null && echo True || echo False'
    命令含义:
        给所有的Minon节点发起ping命令,检测所有节点的外网是否连通
要给指定的minion主机发送命令:
    salt 'salt-minion-01' cmd.run 'ping -c1 www.baidu.com &>/dev/null && echo True || echo False'
    命令含义: 检测salt-minion-01主机的网络是否连通

salt配置管理

    介绍: salt通过状态模块来识别操作行为,格式是YAML,扩展名是sls
    YAML的基本语法:
        缩进2个空格,不能使用tab
        格式: key: value
        如果是列表使用短横线: 
            - list1
            - list2
    缩进: YAML使用固定的缩进风格表示数据的层级关系,每个缩进由两个空格组成
    冒号: 冒号后面必须要有空格,冒号结尾除外
    短横线:
        表示列表项,一个短横线表示一个列表项,短横线和列表项之间需要有一个空格
        多个项使用同样的缩进级别作为同一列表
    举例(salt-master节点): 
        目标: 编写Nginx模块
        第一步: 配置base环境
            vi /etc/salt/master
            找到file_roots:
            修改对应的base路径为/srv/salt
            mkdir -p /srv/salt
            systemctl restart salt-master
        第二步: 在salt目录下创建nginx.sls
            #作用: 安装并启动nginx
            nginx-install: #第一个线程安装nginx
              pkg.installed:
                  - name: nginx
            nginx-start:  #第二个线程启动nginx
              service.running:
                 - name: ngin
        第三步: 在目标主机远程执行该模块
            salt 'salt-minion-02' state.sls nginx
            获取执行结果

声明:本文由"麦兜"发布,不代表"破站"立场,转载联系作者并注明出处:https://www.848586.cn/121270.html