自动化运维工具—saltstack

与之前的ansible一样,saltstack也是使用python语言所编写的自动化运维工具。但是二者的通信机制却并不相同。

相比较于ansible以linux系统的SSH服务为基础的通信方式,saltstack使用的则是ZMQ消息队列的方式来进行通信。前者的优势在于直接调用linux集成的底层服务,这样就不需要客户端来进行通信了,但这又导致其效率不够高。而后者采用的是C/S架构,即服务端和客户端的通信模式,效率很高。

以下的关于saltstack的简介,引用自博客:https://blog.51cto.com/13760226/2308580

saltstack组件:

1、Salt Master:中心管理系统。此系统用于将命令和配置发送到在受管系统上运行的Salt minion。即相当于server服务端

2、Salt Minions:被管理的系统。 该系统运行Salt minion,它从Salt master接收命令和配置。即相当于client客户端。

saltstack的安装与部署

之前提到过,saltstack采用的是C/S架构,因此要在管理主机上安装salt-master,而在要管理的主机上安装salt-minion。
由于我忘了拷贝已有的安装包,就不采用自建软件仓库的方式来安装了。进入saltstack的官网http://docs.saltstack.cn/找到自己对应的系统版本来安装。
在这里插入图片描述
在这里插入图片描述
具体的安装步骤(实验系统版本rhel7.3):

1.根据系统版本导入密钥 rpm --import https://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub 2.创建并保存repo文件,创建网络yum源 vim /etc/yum.repos.d/saltstack.repo [saltstack-repo] name=SaltStack repo for RHEL/CentOS $releasever baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest enabled=1 gpgcheck=1 gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub 3.运行命令 sudo yum clean expire-cache sudo yum update 4.按需求安装组件,如:salt-minion,salt-master等 yum install salt-master yum install salt-minion 我所使用的三台虚拟机,其中60为server端,安装salt-master 而61,62分别为client端,安装salt-minion 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
环境部署:

0.在正式地部署之前,要先将三台虚拟机的防火墙服务都关闭 systemctl stop firewalld systemctl disable firewalld 1.在60主机上,启动salt-master管理程序 systemctl start salt-master 2.分别在61,62主机上更改salt-minion的配置文件,并启动 cd /etc/salt ls vim minion # 将原master: salt更改为salt-master主机的IP地址 systemctl start salt-minion 3.在60主机上检测61,62两台主机,并授权key salt-key -L # 显示当前master的授权情况 salt-key -A # 将所有监测到的未授权key的主机加入授权 上面命令授权的实质是salt-master与salt-minion相互交换密钥 4.测试 salt server61 test.ping # 使用test模块中的ping方法,测试能否推送到目标主机server61 salt server62 test.ping 注意的是,这里的主机名server61,62等均是以salt-key -L所显示的为准 而且,saltstack支持正则表达式 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用saltstack部署服务

从配置文件/etc/salt/minion(或master)中,可以看到默认的用于推送服务的文件根目录是/srv/salt
(配置文件的file roots选项下);也就意味着,我们推送服务的各种配置文件都是以该目录为根目录来查找的。

但注意的是,这个目录需要我们自己创建

部署apache服务

1.创建用于推送服务的目录 mkdir /srv/salt cd /srv/salt mkdir apache 2.创建文件用于推送apache服务 cd apache vim apache.sls apache-install: # 唯一性声明;在一个sls文件中这个名字(标识符)只能作为唯一性声明一次,不能重复定义 pkg.installed: # 下载httpd - pkgs: - httpd - httpd-tools file.managed: # 相当于ansible的playbook文件中的copy模块 - name: /etc/httpd/conf/httpd.conf # 将source源文件复制到目标远程主机的该位置,相当于ansible中copy模块的dest选项 - source: salt://apache/files/httpd.conf # 源文件位置,相当于ansible中的src(salt://这个语法是指从saltstack的文件根目录/srv/salt开始查找) service.running: - name: httpd - reload: true - watch: # watch选项用于监控文件apache/install.sls的执行,如果有变动,那么执行running这个方法。参数reload表示服务重启 - file: apache-install 3.先在61主机上安装httpd,将其配置文件/etc/httpd/conf/httpd.conf远程复制到salt-master主机上作为apache服务配置文件的模板 yum install -y httpd scp /etc/httpd/conf/httpd.conf 172.25.60.60:/srv/salt/apache/files 4.在salt-master(60主机)上推送apache的安装部署服务 salt server61 state.sls apache.install # 与ansible不同的是,推送命令不需要一定在服务推送配置文件的根目录/srv/salt下执行 # 向server61主机推送文件apache/install.sls(这个文件是在默认根目录/srv/salt下查找的,省略了sls文件后缀,因为前面有state.sls参数); state.sls是说明配置文件的语法 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
部署haproxy

1.创建用于推送服务的目录 mkdir haproxy 2.创建文件用于推送apache服务 cd haproxy vim install.sls haproxy-install: pkg.installed: - pkgs: - haproxy - httpd-tools file.managed: - name: /etc/haproxy/haproxy.cfg - source: salt://haproxy/files/haproxy.cfg service.running: - name: haproxy - reload: true - watch: - file: haproxy-install 3.先在61主机上安装haproxy,将其配置文件/etc/haproxy/haproxy.cfg远程复制到salt-master主机上作为haproxy服务配置文件的模板 yum install -y haproxy scp /etc/httpd/conf/httpd.conf 172.25.60.60:/srv/salt/haproxy/install 4.在salt-master(60主机)上推送haproxy的安装部署服务 vim files/haproxy.cfg # 编辑haproxy服务配置文件的模板 salt server61 state.sls haproxy.install # 在部署haproxy服务之前,确保61,62两台主机上部署了apache服务 5.测试 curl 172.25.60.61:8080 # 会轮询访问61,62两台主机 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
部署keepalived
在上面haproxy的基础上,实现haproxy+keepalived高可用

1.创建用于推送服务的目录 mkdir keepalived 2.创建文件用于推送keepalived服务 cd keepalived vim install.sls keepalived-install: pkg.installed: - pkgs: - keepalived file.managed: - name: /etc/keepalived/keepalived.conf - source: salt://keepalived/files/keepalived.conf service.running: - name: keepalived - reload: true - watch: - file: keepalived-install 3.先在61主机上安装keepalived,将其配置文件/etc/keepalived/keepalived.conf远程复制到salt-master主机上作为keepalived服务配置文件的模板 yum install -y keepalived scp /etc/keepalived/keepalived.conf 172.25.60.60:/srv/salt/keepalived/install 4.在salt-master(60主机)上推送keepalived的安装部署服务 vim files/keepalived.conf # 编辑keepalived服务配置文件的模板 salt server61 state.sls keepalived.install # 在部署keepalived服务之前,确保61,62两台主机上部署了apache服务和haproxy服务 salt server62 state.sls keepalived.install # 先将模板文件中的MASTER更改为BACKUP,优先级降低 5.测试 curl 172.25.60.200:8008 # 访问虚拟IP,会轮询访问61,62两台主机 systemctl stop keepalived # 模拟master宕机 curl 172.25.60.200:8008 # 仍然可以正常访问 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值