saltstack之配置管理实践2 功能模块 haproxy

7年前 (2017-05-24) gtj saltstack, 自动化 0评论 已收录 1217℃



此架构需要用saltstack管理的功能模块有:nginx haproxy php memcached (mysql暂不讲)

[root@linux-node1 ~]# mkdir /srv/salt/prod/pkg
[root@linux-node1 ~]# mkdir /srv/salt/prod/haproxy
[root@linux-node1 ~]# mkdir /srv/salt/prod/haproxy/files

状态模块:状态间的关系
功能:条件判断,主要用于cmd状态模块
常用方法:
onlyif:检查的命令,仅当``onlyif``选项指向的命令返回true时才执行name定义的命令
unless:用于检查的命令,仅当``unless``选项指向的命令返回false时才执行name指向的命令

官方文档:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkg.html
状态模块:cmd
功能:执行任意命令
常用方法:
cmd.run #执行任意命令,注意:每次运行状态都会执行
cmd.wait ##当监控的其他状态改变时才执行
pkg.remove ##确保软件包已卸载,如果之前已安装,进行卸载
pkg.purge ##除remove外,也会删除其配置文件

官网文档:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html
状态模块:file
功能:管理文件状态
常用方法:
file.managed ##保证文件存在并且为对应的状态
file.recurse ##保证目录存在并且为对应的状态
file.absent ##确保文件不存在,如果存在就删除

官方文档:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.pkg.html
状态模块:pkg
功能:管理软件包状态
常用方法:
pg.installed ##确保软件包已安装,如果没有安装就安装
pkg.latest ##确保软件包是最新版本,如果不是,进行升级
pkg.remove ##确保软件包已卸载,如果之前已安装,进行卸载
pkg.purge ##除remove外,也会删除其配置文件

官方文档:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.service.html
状态模块:service
功能:管理服务状态
常用方法:
service.running #确保服务处于运行状态,如果没有运行就启动
service.enabled #确保服务开机自动启动
service.disabled ##确保服务开机不自动启动
service.dead ##确保服务当前没有运行,如果运行就停止。

官方文档:https://docs.saltstack.com/en/latest/ref/states/requisites.html
功能名称:requisites
功能:处理状态间的关系
常用方法:
require #我依赖某个状态
require_in ##我被某个状态依赖
watch ##我关注某个状态
watch_in ##我被某个状态关注

zabbix agent安装:
zabbix-agent:
pkg.installed:
- name: zabbix22-agent
file.managed:
- name: /etc/zabbix_agentd.conf
- source: salt://zabbix/files/zabbix_agentd.conf
- template:jinja
- defaults:
Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}
- require:
- pkg: zabbix-agent
service.running:
- enable: True
- watch:
- pkg: zabbix-agent

内核参数优化:
net.ipv4.ip_forward:
sysctl.present:
- value: 1
vm.swappiness:
sysctl.present:
- value: 0

##在用saltstack写自动化脚本之前,我们先要手工部署,把步骤记录下来:
cd /usr/local/src
tar zxf haproxy-1.6.2.tar.gz
cd haproxy-1.6.2
make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
vim /usr/local/src/haproxy-1.6.2/examples/haproxy.init
BIN=/usr/local/haproxy/sbin/$BASENAME
##保存退出
cp /usr/local/src/haproxy-1.6.2/examples/haproxy.init /srv/salt/prod/haproxy/files/

#########################################################################################################################################################
[root@linux-node1 ~]# cat /srv/salt/prod/pkg/pkg-init.sls
pkg-init:
pkg.installed:
- names:
- gcc
- gcc-c++
- glibc
- make
- autoconf
- openssl
- openssl-devel
##############################################################
[root@linux-node1 ~]# cat /srv/salt/prod/haproxy/install.sls
include:
- pkg.pkg-init

haproxy-install:
file.managed:
- name: /usr/local/src/haproxy-1.6.2.tar.gz
- source: salt://haproxy/files/haproxy-1.6.2.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src && tar zxf haproxy-1.6.2.tar.gz && cd haproxy-1.6.2 && make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
- unless: test -d /usr/local/haproxy
- require:
- pkg: pkg-init
- file: haproxy-install

haproxy-init:
file.managed:
- name: /etc/init.d/haproxy
- source: salt://haproxy/files/haproxy.init
- mode: 755
- user: root
- group: root
- require:
- cmd: haproxy-install
cmd.run:
- name: chkconfig --add haproxy
- unless: chkconfig --list | grep haproxy
- require:
- file: haproxy-init

net.ipv4.ip_nonlocal_bind:
sysctl.present:
- value: 1

haproxy-config-dir:
file.directory:
- name: /etc/haproxy
- mode: 755
- user: root
- group: root
##########################################################################################################################################################

[root@linux-node1 ~]# salt 'linux-node1' state.sls haproxy.install env=prod test=True ##必须指定env,不然默认会去base环境下找

[root@linux-node1 ~]# tree /srv/salt/prod/haproxy/
/srv/salt/prod/haproxy/
├── files
│ ├── haproxy-1.6.2.tar.gz
│ └── haproxy.init
└── install.sls

1 directory, 3 files

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。

×
订阅图标按钮
Less is more!!!