jinying8869 发表于 2018-12-25 12:05:19

4.1 salt nginx haproxy keepalived memcached

salt install haproxy  

  

  

  
http://www.cnblogs.com/reblue520/p/6732913.html
  

  
https://chegva.com/794.html
  

  

  
haproxy.install.sls
  
include pkg.pkg-init依赖
  
haproxy-install - file.managed cmd.run 编译haproxy
  
haproxy-init - file.managed cmd.run 启动脚本并chkconfig
  
haproxy-config-dir file.directory   目录权限
  

  
cluster.haproxy-outside.sls
  
include haproxy.install
  
haproxy-service - file.managed service.runninghaproxy配置文件,服务自启动
  

  
# cd /srv/salt/base/
  
# vim top.sls
  
base:
  
'*':
  
- init.env_init
  
prod:
  
'*':
  
- cluster.haproxy-outside
  

  
语法
  
- require:
  
- cmd: haproxy-init
  
- watch:
  
- file: haproxy-service
  
- unless: test -d /usr/local/haproxy
salt install keepalived  
/etc/keepalived/keepalived.conf
  
# cp keepalived/etc/init.d/keepalived.init /srv/salt/prod/keepalived/files/
  
# cp keepalived/etc/init.d/keepalived.sysconfig /srv/salt/prod/keepalived/files/
  
# cp keepalived/etc/keepalived/keepalived.conf /srv/salt/prod/keepalived/files/
  

  
keepalived.install.sls
  
include pkg.pkg-init依赖
  
keepalived-install - file.managed cmd.run 编译keepalived
  
keepalived-init - file.managed cmd.run file.managed file.directory 启动脚本并chkconfig
  

  

  
cluster.keepalived-outside.sls
  
include keepalived.install
  
keepalived-service - file.managed service.runningkeepalived配置文件,服务自启动
  

  
语法
  
- template: jinja
  
{% if grains['fqdn'] == 'mini1' %}
  
- ROUTEID: haproxy_ha
  
- STATEID: MASTER
  
- PRIORITYID: 150
  
{% elif grains['fqdn'] == 'node2.chinasoft.com' %}
  
- ROUTEID: haproxy_ha
  
- STATEID: BACKUP
  
- PRIORITYID: 100
  
{% endif %}
salt install memcached  
user.www
  
libevent.install- file.managed cmd.run require - file: libevent-source-install
  
memcached.install
  
include: - libevent.install - user.www
  
- file.managed cmd.run
  
require - cmd: libevent-source-install - file: memcached-source-install
  
memcached.service
  
include: - memcached.install
  
- cmd.run
  
require - cmd: memcached-source-install - user: www-user-group
  与安装haproxy区别的是,memcached引用了libevent,本来是3步,最后变为4步
salt install nginx (三步)  
pcre-source-install-file.managed -cmd.run
  
nginx.install
  
-include - pcre.install - user.www
  
nginx-source-install-file.managed -cmd.run
  
nginx.service
  
- include nginx.install
  
nginx-init -file.managed -cmd.run
  
/usr/local/nginx/conf/nginx.conf
  
nginx-service file.directory
salt php+nginx虚拟主机  
1.php配置
  
2.php redis 模块
  
3.php memcached模块
  
4.bbs 论坛
  

  
1.php配置
  
php-init
  
php-install -include - file.manage -cmd.run
  
2.php redis模块
  
php-redis-install
  
- file.manage -cmd.run
  
- file.append
  

  

  
总结
  
1.php配置
  
pkg-php - pkg.installed
  
php-source-install - file.manage -cmd.run
  
php-ini
  
php-fpm
  
php-fastcgi-service
  
2.php redis 模块
  
redis-plugin
  
/usr/local/php-fastcgi/etc/php.ini
  
3.php memcached模块
  
memcache-plugin
  
/usr/local/php-fastcgi/etc/php.ini
  
4.bbs 论坛
  
- require:
  
- service: php-fastcgi-service
  
- watch_in:
  
- service: nginx-service
  所有的目录结构
  # tree /srv/salt/
  /srv/salt/├── base│ ├── init│ │ ├── audit.sls
  ├── cluster
  │ ├── files
  │ │ ├── haproxy-outside.cfg
  │ │ └── haproxy-outside-keepalived.conf
  │ ├── haproxy-outside-keepalived.sls
  │ └── haproxy-outside.sls
  ├── haproxy
  │ ├── files
  │ │ ├── haproxy-1.5.3.tar.gz
  │ │ └── haproxy.init
  │ └── install.sls
  ├── keepalived
  │ ├── files
  │ │ ├── keepalived-1.2.17.tar.gz
  │ │ ├── keepalived.init
  │ │ └── keepalived.sysconfig
  │ └── install.sls
  ├── libevent
  │ ├── files
  │ │ └── libevent-2.0.22-stable.tar.gz
  │ └── install.sls
  ├── memcached
  │ ├── files
  │ │ └── memcached-1.4.24.tar.gz
  │ ├── install.sls
  │ └── service.sls
  ├── nginx
  │ ├── files
  │ │ ├── nginx-1.9.1.tar.gz
  │ │ ├── nginx.conf
  │ │ └── nginx-init
  │ ├── install.sls
  │ └── service.sls
  ├── pcre
  │ ├── files
  │ │ └── pcre-8.37.tar.gz
  │ └── install.sls
  ├── php
  │ ├── files
  │ │ ├── init.d.php-fpm
  │ │ ├── memcache-2.2.7.tgz
  │ │ ├── php-5.6.9.tar.gz
  │ │ ├── php-fpm.conf.default
  │ │ ├── php.ini-production
  │ │ └── redis-2.2.7.tgz
  │ └── install.sls
  ├── user
  │ └── www.sls
  └── web
  ├── bbs.sls
  └── files
  └── bbs.conf
  salt安装nginx服务
  vim /srv/salt/top.sls
  dev:
  'minion.hello.com':
  - nginx
  cd /srv/salt
  mkdir dev
  cd dev
  mkdir nginx
  /srv/salt/dev/nginxnginx.sls
  nginx:
  pkg:
  - installed
  service:
  - running
  - enable: Ture
  - watch:
  - file: /etc/nginx/nginx.conf
  - file: /etc/nginx/conf.d/default.conf
  - require:
  - pkg: nginx
  /etc/nginx/nginx.conf:
  file.managed:
  - source: salt://nginx/nginx.conf
  - mode: 664
  - user: root
  - group: root
  /etc/nginx/conf.d/default.conf:
  file.managed:
  - source: salt://nginx/default.conf
  - mode: 664
  - user: root
  - group: root
  salt 'minion.hello.com' state.highstate
  salt haproxy
  http://www.cnblogs.com/caoxiaojian/p/5095653.html
  这篇博文写的非常详细,极力推荐,但是要自己操作。因为目录结构复杂点。
  mkdir /srv/salt/prod/pkg/
  mkdir /srv/salt/prod/haproxy/
  mkdir /srv/salt/prod/haproxy/files
  cd /srv/salt/prod/pkg/
  vim pkg-init.sls

  pkg-init:                            #>  pkg.installed:                  # pkg模块 installed方法
  - names:
  - gcc
  - gcc-c++
  - glibc
  - make
  - autoconf
  - openssl
  - openssl-devel
  cd /srv/salt/prod/haproxy/files/
  ll
  -rw-r--r-- 1 root root 1538976 11月7 09:04 haproxy-1.6.2.tar.gz
  cp haproxy-1.6.2.tar.gz/usr/local/src/
  cd /usr/local/src/
  make TARGET=linux26 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy
  vim haproxy.init
  BIN=/usr/local/haproxy/sbin/$BASENAME
  cp haproxy.init /srv/salt/prod/haproxy/files/
  cd /srv/salt/prod/haproxy/
  vim install.sls
  include:                                                   # 导入pkg目录下的pkg-init.sls文件
  - pkg.pkg-init
  haproxy-install:                                           # 定义声明一个ID
  file.managed:                                          # file模块下的managed方法
  - name: /usr/local/src/haproxy-1.6.2.tar.gz            # 文件名:拷贝minion端这里,文件名是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                   # 判断是否存在,unless返回值是false时,才执行命令
  - require:                                             # 依赖下面的内容
  - pkg: pkg-init                                       # pkg是模块
  - file: haproxy-install                              # file也是模块
  haproxy-init:                                              # 定义声明一个ID
  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: haproxy-init
  net.ipv4.ip_nonlocal_bind:                                 # 定义声明一个ID
  sysctl.present:                                          # 修改系统的kernel值
  - value: 1                                             # 改值为1
  haproxy-config-dir:
  file.directory:
  - name: /etc/haproxy
  - user: root
  - group: root
  - mode: 755
  salt 'linux-node1.*' state.sls haproxy.install env=prod
  注意
  cat /etc/salt/master
  file_roots:
  base:
  - /srv/salt/base
  prod:
  - /srv/salt/prod
  interface: ip
  nodegroups:
  mysql: 'cm1'
  目录结构
  # tree
  .
  ├── base
  │   └── _modules
  │       └── my_disk.py
  └── prod
  ├── haproxy
  │   ├── files
  │   │   ├── haproxy-1.5.4.tar.gz
  │   │   └── haproxy.init
  │   └── install.sls
  └── pkg
  └── pkg-init.sls


页: [1]
查看完整版本: 4.1 salt nginx haproxy keepalived memcached