saltstack

基于SaltStack完成LVS的配置管理

為{幸葍}努か 提交于 2019-12-06 06:17:59
‍ 之前由于工作需求,编写了 SaltStack 的 LVS远程执行模块 , LVS service状态 管理 模块 及 LVS server状态 管理 模块 ,并提交给了 SaltStack 官方 Loadblance(DR)及 RealServer 的配置 管理 .    前置阅读    LVS-DR 模式配置 详解 ,需要注意的是,LVS-DR方式工作在数据链路层,文中描述需要开启ip_forward,其实没有必要, 详情见 LVS DR模式原理剖析    环境说明    三台服务器用于LVS集群,其中主机名为lvs的担当的角色为 loadblance ,对应的IP地址为192.168.36.10;主机名为web-01和web-02的主机担当的角色为 RealServer , 对应的IP地址分别为192.168.36.11及192.168.36.12    LVS VIP: 192.168.36.33, Port: 80, VIP绑定在lvs的eth1口    最最重要的是 loadblance 主机为 Linux ,并已安装 ipvsadm , Windows/Unix等主机的同学请绕过吧,这不是我的错......    开工    Note    以下所有操作均在Master上进行    配置 SaltStack LVS模块   

92.自动运维介绍 saltstack安装、启动、配置认证

瘦欲@ 提交于 2019-12-06 06:17:46
24.1 自动化运维介绍 24.2 saltstack安装 24.3 启动saltstack服务 24.4 saltstack配置认证 24.1 自动化运维介绍 认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问题 常见自动化运维工具 1.Puppet (www.puppetlabs.com) #出现的比较早 基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。 分为社区版(免费)和企业版(收费),企业版支持图形化配置。 2.Saltstack(官网 https://saltstack.com,文档docs.saltstack.com ) 基于python开发,c/s架构,支持多平台,比puppet轻量,在远程执行命令时非常快捷,配置和使用比puppet容易,能实现puppet几乎所有的功能。 #使用的串行效率很快。而expect使用的并行(for循环,执行完一个在继续执行下一个,效率就会很慢) #除了这种cs架构(服务端客户端),也支持只装一个命令的 #支持的机器会更多 3.Ansible (www.ansible.com ) 更加简洁的自动化运维工具,不需要在客户端上安装agent

stal 安装

情到浓时终转凉″ 提交于 2019-12-06 02:27:11
1.1 准备实验环境: 安装系统   1)硬件配置如下          2) 先把光标放到”install CentOS 7”,按 Tab键编辑内核参数,添加 (net.ifnames=0 biosdevname=0)     作用:使网卡名称为 eth0 这样的格式        3) 建议安装语言改成 简体中文,其他保持默认即可          4)设置完root密码等待安装完成重启即可完成系统安装   5)配置 VMware NAT 模式默认地址池       编辑----》虚拟网络编辑器        1.2 克隆一台虚拟机完成使用环境 返回顶部   1)配置网卡       vi /etc/sysconfig/network-scripts/ifcfg-eth0                systemctl restart network       systemctl disable firewalld       systemctl disable NetworkManager   2)设置主机名       vi /etc/hostname         linux-node1.example.com   3)设置主机名解析       vi /etc/hosts         192.168.56.11 linux-node1 linux-node1

saltstack之远程触发文件备份、回滚

六月ゝ 毕业季﹏ 提交于 2019-12-05 17:57:32
最近做一个平台,远程触发文件的备份,替换,修改,回滚;想到用到salt,并不是使用他的统一配置功能,因为需求是每次都不一样,也不是批量,更关注灵活性,与统一配置概念有所出入,所以只是使用他的远程触发功能, 远程触发远端的机器做文件的替换备份工作, 另外salt比puppet最大的好处就是他是使用python写源代码的(因为本人只会python), 那样底层的方法什么的都看得懂,也能自己定义方法 为了方便反复使用,我定义了salt的模块方法 1、创建模块方法文件 mkdir /srv/salt/_modules 默认没有此文件,自己生成一个 下面的py文件自己定义,下面是我写的两个方法: #!/usr/bin/python # -*- coding: utf-8 -*- import sys,string,shutil import os,tarfile import datetime,time tn=datetime.datetime.today() time_now=tn.strftime("%Y-%m-%d") data_bak='/data/databak' data_tmp='/data/databak/tmp/%s' % time_now com_f="%s/%s" % (data_bak,time_now) if not os.path.exists(com_f):

Saltstack 01 简介

只谈情不闲聊 提交于 2019-12-05 09:32:02
什么是saltstack Saltstack是基于python开发的一套C/S架构配置管理工具 使用SSL证书签方的方式进行认证管理 底层使用ZeroMQ消息队列pub/sub方式通信 – 号称世界上最快的消息队列ZeroMQ能快速在成千上万台主机上进行各种操作 – 采用RSA Key方式确认身份 主要功能 Saltstack最主要的两个功能是:配置管理与远程执行 Saltstack不只是一个配置管理工具,还是一个云计算与数据中心架构编排的利器 在友好地支持各大云平台之后,配合Saltstack的Mine实时发现功能可以实现各种云平台业务的自动扩展 通过只带api接口平台化调用 Saltstack架构 Saltstack基于C/S架构 – 服务器端称作Master – 客户端称作Minion 可以实现传统处理方式,即:客户端发送请求给服务器,服务器收到请求后处理请求,再将结果返回 也可以使用消息队列中的发布与订阅(pub/sub)服务模式 Saltstack工作机制 1.Master和Minion都以守护进程的方式运行 2.Master监听配置文件里定义的ret_port(接收minion请求),和publish_port(发布消息)的端口 3.当Minion运行时,它会自动连接到配置文件里定义的Master地址ret_port端口进行连接认证 4

centos7 安装 ftp 服务及创建 repo源

拟墨画扇 提交于 2019-12-05 00:05:29
安装 ftp 服务 安装和启动服务: # yum install vsftpd # systemctl enable vsftpd # systemctl start vsftpd 配置文件: vi /etc/vsftpd/vsftpd.conf, 注释掉 anonymous_enable=NO # Allow anonymous FTP? (Beware - allowed by default if you comment this out). #anonymous_enable=NO 重启服务: # systemctl restart vsftpd ftp 服务所在目录 /var/ftp/pub 创建一个 repo 确保机器能上网。首先下载所有 saltstack 的 rpm 包: 创建 rpm 目录 # mkdir /var/ftp/pub/saltstack 只下载不安装 # yum install --downloadonly --downloaddir=/var/ftp/pub/saltstack salt-master salt-minion salt-ssh salt-api 安装 createrepo # yum install createrepo 生成 repodata # createrepo /var/ftp/pub/saltstack 创建一个

saltstack

£可爱£侵袭症+ 提交于 2019-12-04 21:24:33
博客园 首页 新随笔 联系 订阅 管理 随笔 - 8 文章 - 227 评论 - 8 saltstack高效运维 salt介绍 saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。 salt强大吗 系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等等。如果主机数量庞大,单靠人工维护实在让人难以忍受。   早期运维人员会根据自己的生产环境来写特定脚本完成大量重复性工作,这些脚本复杂且难以维护。系统管理员面临的问题主要是1、系统配置管理,2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行。   salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。   不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。    Salt是python编写的,支持用户通过python自定义功能模块,也提供了大量的python API接口,用户可以根据需要进行简单快速的扩展。

101: 自动化运维saltstack ansible

时光怂恿深爱的人放手 提交于 2019-12-04 16:11:07
自动运维化工具:saltstack ansible: 传统运维效率低,大多工作人为完成; 传统运维工作繁琐,容易出错; 传统运维每日重复做相同的事情; 传统运维没有标准化流程; 传统运维的脚本繁多,不能方便管理; 自动化运维 就是要解决上面所有问题; 常用的自动化运维工具:适用于十多台 上百台 上千台等; puppet : ( www. puppetlabs.com ) 基于rubby开发,C/S架构,支持多平台,可管理配置文件,用户,crond任务,软件包,系统服务等,分为社区版和企业版(收费,但是支持图形化); saltstack :https://saltstack.com 文档:docs.saltstack.com 基于python开发, C/S架构,多平台,比puppet轻量,在远程执行命令时非常快捷(因为它有消息队列,它是并行的,所以快,如expect是串行,一个一个执行,比较慢),配置和使用puppet容易多了,能实习puppet的所有功能; ansible :www.ansible.com 基于python开发,更加方便简洁的自动化运维工具,不需要在客户端安装anget,可以实现批量操作系统配置,批量程序部署,批量运行命令; 注释 :saltstack与ansible相比,saltstack支持的机器更多,ansible是通过秘钥认证的方式来执行后面的命令,更改文件

saltstack 的 api

风格不统一 提交于 2019-12-04 09:43:07
上篇记录了 saltstack 的安装与配置和简单的使用,但是你会发现基本所有操作,都需要登录到 master机上进行命令行操作,虽然命令行才是最强大的,但是对于新手和入门时的学习使用和管理非常不友好。 然而 salt 已经为我们想到了,下面将为 saltstack 配置一个 web 界面,通过 web 界面来实现一些管理功能,由于 saltstack 官方本身时没有 web 界面的。 一、环境准备 系统为 centos7.2,python 版本为2.7 安装 salt-api [root@V1 ~]# yum install -y salt-api 二、具体配置 添加用户,用户 api 认证 [root@V1 ~]# useradd -M Amos 创建master的配置文件目录 [root@V1 ~]# mkdir /etc/salt/master.d 添加 api 的配置文件,同来配置 api 接口服务的端口和一些设定 [root@V1 ~]# cat /etc/salt/master.d/api.conf rest_cherrypy: port: 8000 debug: True #ssl_crt: /etc/pki/tls/certs/localhost.crt #ssl_key: /etc/pki/tls/certs/localhost.key disable_ssl:

saltstack一键安装

我只是一个虾纸丫 提交于 2019-12-04 08:42:10
#!/usr/bin/bash #define:saltstack 自动化安装 #curr_dir="/data/scripts/saltstac_install" curr_dir=`pwd` packge_dir="/data/tools" yum_Warehouse="/etc/yum.repos.d" logdir=$curr_dir #日志路径 log=$logdir/log.log #日志文件 is_font=1 #终端是否打印日志: 1打印 0不打印 is_log=1 #是否记录日志: 1记录 0不记录 #version_num=`cat /etc/redhat-release |awk '{print $3}'|cut -d'.' -f1` version_num=`cat /etc/redhat-release| awk -F"release" '{print $2}'|awk '{print $1}'|cut -d'.' -f1` datef(){ date "+%Y-%m-%d %H:%M:%S" } print_log(){ if [[ $is_log -eq 1 ]];then [[ -d $logdir ]] || mkdir -p $logdir echo -e "[ $(datef) ] $1" >> $log fi if [[ $is_font