saltstack之haproxy的安装配置
使用saltstack编译安装haproxy:
mkdir /srv/salt/prod/pkg
mkdir /srv/salt/prod/haproxy
mkdir /srv/salt/prod/haproxy/files
在创建上述目录之前需要修改salt的master配置文件,打开prod环境:
[root@node1 base]# egrep -v "^$|^#" /etc/salt/master
publisher_acl:
wadeson:
- test.ping
- network.*
jsonhc:
- node1*:
- test.ping
file_roots:
base:
- /srv/salt/base
test:
- /srv/salt/test
prod:
- /srv/salt/prod
pillar_roots:
base:
- /srv/pillar/base
1、构建编译环境:
[root@node1 pkg]# pwd
/srv/salt/prod/pkg
[root@node1 prod]# cat pkg/pkg-init.sls
pkg-init:
pkg.installed:
- names:
- gcc
- gcc-c++
- glibc
- make
- autoconf
- openssl
- openssl-devel
构建编译开发环境,如果上述不满足需求,可以更换为下面:
# cat pkg_group-init.sls
pkg_group-init:
cmd.run:
- name: yum groupinstall "Development tools" "Server Platform Development"
- unless: yum grouplist|grep "Development tools"
2、使用saltstack进行编译安装haproxy
2.1将下载好的haproxy源码包放置在haproxy目录下面的files目录中(files目录提供需要用的源码包,文件等)
[root@node1 prod]# ll haproxy/files/
总用量 1552
-rw-r--r-- 1 root root 1580214 6月 18 21:45 haproxy-1.6.13.tar.gz
-rwxr-xr-x 1 root root 2395 10月 9 22:25 haproxy.init
2.2haproxy的源码包和启动脚本准备好后,开始进行安装haproxy
[root@node1 haproxy]# pwd
/srv/salt/prod/haproxy
[root@node1 haproxy]# cat install.sls
include:
- pkg.pkg-init pkg.pkg-init前面的pkg是以目录prod为基准,也就是目录根 haproxy-install: haproxy的安装
file.managed:
- name: /usr/local/src/haproxy-1.6.13.tar.gz
- source: salt://haproxy/files/haproxy-1.6.13.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src/ && tar xf haproxy-1.6.13.tar.gz && cd haproxy-1.6.13 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
- unless: test -d /usr/local/haproxy 判断目录,如果存在即返回TRUE则不会执行name中的命令
- require:
- pkg: pkg-init haproxy的安装依赖编译环境的安装,如果编译环境安装失败,haproxy安装将不会进行
- file: haproxy-install haproxy的安装也依赖于/usr/local/src/haproxy-1.6.13.tar.gz haproxy-init: 为haproxy提供启动脚本,并添加到启动项
file.managed:
- name: /etc/init.d/haproxy
- source: salt://haproxy/files/haproxy.init
- user: root
- group: root
- mode: 755
- require:
- cmd: haproxy-install
cmd.run:
- name: chkconfig --add haproxy
- unless: chkconfig --list|grep haproxy
- require:
- file: /etc/init.d/haproxy net.ipv4.ip_nonlocal_bind: 能够监听本机以外的ip(keepalived的vip漂移做准备)
sysctl.present:
- value: 1 haproxy-config-dir: 为haproxy创建配置目录
file.directory:
- name: /etc/haproxy
- user: root
- group: root
- mode: 755
haproxy的安装sls写完后,验证是否成功,当前目录为:
[root@node1 haproxy]# ll
total 8
drwxr-xr-x 2 root root 4096 Oct 9 23:40 files
-rw-r--r-- 1 root root 1033 Oct 10 11:12 install.sls
[root@node1 haproxy]# pwd
/srv/salt/prod/haproxy
salt默认是从base环境下面进行查找sls文件(如果没有添加到top.sls文件中),于是需要如下操作来执行install这个sls文件:
salt 'node1' state.sls haproxy.install env=prod 这种报错
查找文档:salt.modules.state.sls(mods, saltenv=None, test=None, exclude=None, queue=False, env=None, **kwargs)
于是解决办法为:salt 'node1' state.sls haproxy.install saltenv=prod
3、安装完haproxy后,并且haproxy已经有了启动脚本,接下来需要给haproxy提供配置文件,最后将haproxy服务开启,由于根据业务需求的不同,可能用到的haproxy的配置文件会有区别,
所以这里将配置文件与haproxy的安装分隔开进行状态管理配置,以后minion的haproxy可以根据配置文件的不同而提供安装
[root@node1 haproxy]# mkdir /srv/salt/prod/cluster
[root@node1 haproxy]# mkdir /srv/salt/prod/cluster/files
[root@node1 haproxy]# pwd
/srv/salt/prod/haproxy
[root@node1 files]# ll
总用量 4
-rw-r--r-- 1 root root 1252 10月 9 22:25 haproxy-outside.cfg
[root@node1 files]# pwd
/srv/salt/prod/cluster/files
开始编译状态配置文件,将haproxy的安装与配置文件结合起来,并且将haproxy的服务开启
[root@node1 cluster]# cat haproxy-outside.sls
include:
- haproxy.install include进来haproxy的安装 haproxy-service: 启动haproxy服务
file.managed: 复制配置文件
- name: /etc/haproxy/haproxy.cfg
- source: salt://cluster/files/haproxy-outside.cfg
- user: root
- group: root
- mode: 644
service.running: 开启haproxy服务,并添加到开机启动
- name: haproxy
- enable: True
- reload: True 当该服务有reload则,当配置文件发生变化时,会reload,而不是restart
- require:
- cmd: haproxy-init
- watch: 监控某状态,当配置文件发生变化,自动reload(没有reload则会restart)
- file: haproxy-service
上述sls文件中,第一步骤是haproxy的安装,接下来才是给安装好的haproxy提供配置文件,最后才是将haproxy服务开启(如果需要开机启动则添加enable)
将上述haproxy整个项目添加到base环境下面的top.sls中
[root@node1 base]# cat top.sls
base:
'*':
- init.env_init prod:
'node1':
- cluster.haproxy-outside
于是haproxy的整个项目执行命令为salt '*' state.highstate
[root@node1 salt]# tree
.
├── base
│ ├── init
│ │ ├── audit.sls
│ │ ├── dns.sls
│ │ ├── env_init.sls
│ │ ├── files
│ │ │ ├── echo.sh
│ │ │ ├── resolv.conf
│ │ │ ├── test.txt
│ │ │ ├── zabbix-agent-3.0.10-1.el6.x86_64.rpm
│ │ │ └── zabbix-sender-3.0.10-1.el6.x86_64.rpm
│ │ ├── history.sls
│ │ ├── sysctl.sls
│ │ └── zabbix_agent.sls
│ ├── _modules
│ ├── test
│ │ ├── create_file.sls
│ │ ├── file-manage.sls
│ │ ├── file.text
│ │ ├── httpd-remove.sls
│ │ ├── if_unless.sls
│ │ └── test1.sls
│ └── top.sls
├── prod
│ ├── cluster
│ │ ├── files
│ │ │ └── haproxy-outside.cfg
│ │ └── haproxy-outside.sls
│ ├── haproxy
│ │ ├── files
│ │ │ ├── haproxy-1.6.13.tar.gz
│ │ │ └── haproxy.init
│ │ └── install.sls
│ └── pkg
│ └── pkg-init.sls
└── test
haproxy-outside.sls中包含haproxy的安装,配置文件的添加,haproxy服务的启动,而haproxy的安装包含编译环境的构建,haproxy编译安装的命令步骤,启动脚本的添加
saltstack之haproxy的安装配置的更多相关文章
- CentOS6下Haproxy的安装配置
Haproxy 是一个开源的负载均衡和反向代理软件,其提供了高可用的网络服务.其一般是应用于web服务,但同时也能为SMTP和终端服务等提供可靠的支持. 1.下载安装haproxy wget ftp: ...
- saltstack之keepalived的安装配置
使用saltstack编译安装keepalived: 创建相应的目录,并在目录下创建相应的sls配置文件 [root@node1 ~]# mkdir /srv/salt/prod/keepalived ...
- Saltstack系列1:安装配置
安装 安装EPEL作为安装Ansible的yum源(CentOS6.4) rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release ...
- HAproxy的安装配置及动静分离
/////////////////////////////目录//////////////////////////////////////////一.安装HAproxy二.编写HAproxy启动脚本三 ...
- haproxy笔记之一:Haproxy基本安装配置(反向代理,类似Nginx,可以代理tcp的连接,不只是http)(注意iptables和selinux的问题)
1.安装haproxy yum -y install haproxy 2.配置文件 # this config needs haproxy- or haproxy- global log 127.0. ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...
- saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy
saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy 下载haproxy1.6.2.tar.gz下载地址:http://www.haproxy.org/download/1. ...
- SaltStack自动化安装配置haproxy的Keepalived
keepalived配置安装 什么是vrrp,阿里云不支持组播,所以阿里云上不能配置keepalived,但是它有自己的slb.运维的大忌,在命令行复制粘贴,一般是先复制到文本中查看确认以后salt编 ...
- SaltStack自动化安装配置haproxy
准备环境node1:192.168.217.149 (saltstack master)node2:192.168.217.150(saltstack minion)下载haproxy1.6.2.ta ...
随机推荐
- 160323、理解Java虚拟机体系结构
今天看到一篇文章,觉得写得不错,特拿来跟大家分享一下 1 概述 众所周知,Java支持平台无关性.安全性和网络移动性.而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一 ...
- Hibernate的大对象映射
1在持久类中直接声明是java.sql.Blob类型 2在.hbm.xml文件中配置一下信息 <!-- 映射大对象 (就是字符长度超过255和图片想转换成二进制的数据)--> <!- ...
- 升级PHP版本导致zabbix无法访问解决办法
故障现象:无法打开zabbix首页,提示缺少zabbix.conf配置文件 原因分析:升级yum安装php版本了,升级前卸载了原PHP5.4版本导致 解决办法: 重新安装zabbix yum inst ...
- Oracle涂抹oracle学习笔记第9章RMAN说,我能恢复
RMAN中的恢复对应两个操作:数据库修复(restore)和数据库恢复(recover) 数据库修复(restore):是指利用备份集的数据文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置.R ...
- maven POM —— maven权威指南学习笔记(五)
1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...
- 分享:宽恕的艺术 Forgive
宽恕的艺术 To forgive may be divine, but no one ever said it was easy. 宽恕是神圣的,但是没有人说很容易做到宽恕别人. When someo ...
- Java Filter过滤xss注入非法参数的方法
http://blog.csdn.NET/feng_an_qi/article/details/45666813 Java Filter过滤xss注入非法参数的方法 web.xml: <filt ...
- WSGI的理解 perfect
https://blog.csdn.net/hzrandd/article/details/10099871 https://blog.csdn.net/cloudxli/article/detail ...
- goland激活
http://blog.csdn.net/benben_2015/article/details/78725467 http://blog.csdn.net/john_f_lau/article/de ...
- FB05付款清帐Function
函数组:FIPI-->内部FI过帐接口1.CALL FUNCTION 'POSTING_INTERFACE_START'. -->Initial information for inter ...