天天看点

4.1 salt nginx haproxy keepalived memcached

<code>salt install haproxy</code>

<code>http:</code><code>/</code><code>/</code><code>www.cnblogs.com</code><code>/</code><code>reblue520</code><code>/</code><code>p</code><code>/</code><code>6732913.html</code>

<code>https:</code><code>/</code><code>/</code><code>chegva.com</code><code>/</code><code>794.html</code>

<code>haproxy.install.sls</code>

<code>include pkg.pkg</code><code>-</code><code>init  依赖</code>

<code>haproxy</code><code>-</code><code>install </code><code>-</code> <code>file</code><code>.managed cmd.run 编译haproxy</code>

<code>haproxy</code><code>-</code><code>init </code><code>-</code> <code>file</code><code>.managed cmd.run 启动脚本并chkconfig</code>

<code>haproxy</code><code>-</code><code>config</code><code>-</code><code>dir</code> <code>file</code><code>.directory   目录权限</code>

<code>cluster.haproxy</code><code>-</code><code>outside.sls</code>

<code>include haproxy.install  </code>

<code>haproxy</code><code>-</code><code>service </code><code>-</code> <code>file</code><code>.managed service.running  haproxy配置文件,服务自启动</code>

<code># cd /srv/salt/base/</code>

<code># vim top.sls</code>

<code>base:</code>

<code>'*'</code><code>:</code>

<code>-</code> <code>init.env_init</code>

<code>prod:</code>

<code>-</code> <code>cluster.haproxy</code><code>-</code><code>outside</code>

<code>语法</code>

<code>-</code> <code>require:</code>

<code>-</code> <code>cmd: haproxy</code><code>-</code><code>init</code>

<code>-</code> <code>watch:</code>

<code>-</code> <code>file</code><code>: haproxy</code><code>-</code><code>service</code>

<code>-</code> <code>unless: test </code><code>-</code><code>d </code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>haproxy</code>

<code>salt install keepalived </code>

<code>/</code><code>etc</code><code>/</code><code>keepalived</code><code>/</code><code>keepalived.conf</code>

<code># cp keepalived/etc/init.d/keepalived.init /srv/salt/prod/keepalived/files/</code>

<code># cp keepalived/etc/init.d/keepalived.sysconfig /srv/salt/prod/keepalived/files/</code>

<code># cp keepalived/etc/keepalived/keepalived.conf /srv/salt/prod/keepalived/files/</code>

<code>keepalived.install.sls</code>

<code>keepalived</code><code>-</code><code>install </code><code>-</code> <code>file</code><code>.managed cmd.run 编译keepalived</code>

<code>keepalived</code><code>-</code><code>init </code><code>-</code> <code>file</code><code>.managed cmd.run </code><code>file</code><code>.managed </code><code>file</code><code>.directory 启动脚本并chkconfig</code>

<code> </code> 

<code>cluster.keepalived</code><code>-</code><code>outside.sls</code>

<code>include keepalived.install  </code>

<code>keepalived</code><code>-</code><code>service </code><code>-</code> <code>file</code><code>.managed service.running  keepalived配置文件,服务自启动</code>

<code>-</code> <code>template: jinja</code>

<code>{</code><code>%</code> <code>if</code> <code>grains[</code><code>'fqdn'</code><code>] </code><code>=</code><code>=</code> <code>'mini1'</code> <code>%</code><code>}</code>

<code>-</code> <code>ROUTEID: haproxy_ha</code>

<code>-</code> <code>STATEID: MASTER</code>

<code>-</code> <code>PRIORITYID: </code><code>150</code>

<code>{</code><code>%</code> <code>elif</code> <code>grains[</code><code>'fqdn'</code><code>] </code><code>=</code><code>=</code> <code>'node2.chinasoft.com'</code> <code>%</code><code>}</code>

<code>-</code> <code>STATEID: BACKUP</code>

<code>-</code> <code>PRIORITYID: </code><code>100</code>

<code>{</code><code>%</code> <code>endif </code><code>%</code><code>}</code>

<code>salt install memcached</code>

<code>user.www  </code>

<code>libevent.install  </code><code>-</code> <code>file</code><code>.managed cmd.run require </code><code>-</code> <code>file</code><code>: libevent</code><code>-</code><code>source</code><code>-</code><code>install</code>

<code>memcached.install </code>

<code> </code><code>include: </code><code>-</code> <code>libevent.install </code><code>-</code> <code>user.www</code>

<code> </code><code>-</code> <code>file</code><code>.managed cmd.run </code>

<code> </code><code>require </code><code>-</code> <code>cmd: libevent</code><code>-</code><code>source</code><code>-</code><code>install </code><code>-</code> <code>file</code><code>: memcached</code><code>-</code><code>source</code><code>-</code><code>install</code>

<code>memcached.service</code>

<code> </code><code>include: </code><code>-</code> <code>memcached.install</code>

<code> </code><code>-</code> <code>cmd.run</code>

<code> </code><code>require </code><code>-</code> <code>cmd: memcached</code><code>-</code><code>source</code><code>-</code><code>install </code><code>-</code> <code>user: www</code><code>-</code><code>user</code><code>-</code><code>group</code>

与安装haproxy区别的是,memcached引用了libevent,本来是3步,最后变为4步

<code>salt install nginx (三步)</code>

<code>pcre</code><code>-</code><code>source</code><code>-</code><code>install  </code><code>-</code><code>file</code><code>.managed </code><code>-</code><code>cmd.run</code>

<code>nginx.install   </code>

<code> </code><code>-</code><code>include </code><code>-</code> <code>pcre.install </code><code>-</code> <code>user.www</code>

<code> </code><code>nginx</code><code>-</code><code>source</code><code>-</code><code>install  </code><code>-</code><code>file</code><code>.managed </code><code>-</code><code>cmd.run </code>

<code>nginx.service</code>

<code> </code><code>-</code> <code>include nginx.install</code>

<code> </code><code>nginx</code><code>-</code><code>init </code><code>-</code><code>file</code><code>.managed </code><code>-</code><code>cmd.run</code>

<code> </code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>nginx</code><code>/</code><code>conf</code><code>/</code><code>nginx.conf</code>

<code> </code><code>nginx</code><code>-</code><code>service </code><code>file</code><code>.directory</code>

<code>salt php</code><code>+</code><code>nginx虚拟主机</code>

<code>1.php</code><code>配置</code>

<code>2.php</code> <code>redis 模块</code>

<code>3.php</code> <code>memcached模块</code>

<code>4.bbs</code> <code>论坛</code>

<code>php</code><code>-</code><code>init</code>

<code>php</code><code>-</code><code>install </code><code>-</code><code>include </code><code>-</code> <code>file</code><code>.manage </code><code>-</code><code>cmd.run</code>

<code>2.php</code> <code>redis模块</code>

<code>php</code><code>-</code><code>redis</code><code>-</code><code>install</code>

<code>  </code><code>-</code> <code>file</code><code>.manage </code><code>-</code><code>cmd.run</code>

<code>  </code><code>-</code> <code>file</code><code>.append</code>

<code>总结</code>

<code>pkg</code><code>-</code><code>php </code><code>-</code> <code>pkg.installed </code>

<code>php</code><code>-</code><code>source</code><code>-</code><code>install </code><code>-</code> <code>file</code><code>.manage </code><code>-</code><code>cmd.run</code>

<code>php</code><code>-</code><code>ini </code>

<code>php</code><code>-</code><code>fpm</code>

<code>php</code><code>-</code><code>fastcgi</code><code>-</code><code>service</code>

<code>redis</code><code>-</code><code>plugin</code>

<code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>php</code><code>-</code><code>fastcgi</code><code>/</code><code>etc</code><code>/</code><code>php.ini</code>

<code>memcache</code><code>-</code><code>plugin</code>

<code>-</code> <code>service: php</code><code>-</code><code>fastcgi</code><code>-</code><code>service</code>

<code>-</code> <code>watch_in:</code>

<code>-</code> <code>service: nginx</code><code>-</code><code>service</code>

所有的目录结构

[root@saltstack-node1 ~]# 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

│ │ ├── haproxy-1.5.3.tar.gz

│ │ └── haproxy.init

│ └── install.sls

├── keepalived

│ │ ├── keepalived-1.2.17.tar.gz

│ │ ├── keepalived.init

│ │ └── keepalived.sysconfig

├── libevent

│ │ └── libevent-2.0.22-stable.tar.gz

├── memcached

│ │ └── memcached-1.4.24.tar.gz

│ ├── install.sls

│ └── service.sls

├── nginx

│ │ ├── nginx-1.9.1.tar.gz

│ │ ├── nginx.conf

│ │ └── nginx-init

├── pcre

│ │ └── pcre-8.37.tar.gz

├── php

│ │ ├── 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

├── 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/nginx  nginx.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:

    - source: salt://nginx/default.conf

salt 'minion.hello.com' state.highstate

salt haproxy

<a href="http://www.cnblogs.com/caoxiaojian/p/5095653.html" target="_blank">http://www.cnblogs.com/caoxiaojian/p/5095653.html</a>

这篇博文写的非常详细,极力推荐,但是要自己操作。因为目录结构复杂点。

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:                            # ID describe

  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 &amp;&amp; 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/ &amp;&amp; tar zxf haproxy-1.6.2.tar.gz &amp;&amp; cd haproxy-1.6.2 &amp;&amp; make TARGET=linux26 PREFIX=/usr/local/haproxy &amp;&amp; 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

    - mode: 755

      - cmd: haproxy-install

  cmd.run:

    - name: chkconfig --add haproxy

    - unless: chkconfig --list |grep haproxy

      - file: haproxy-init

net.ipv4.ip_nonlocal_bind:                                   # 定义声明一个ID

  sysctl.present:                                          # 修改系统的kernel值

    - value: 1                                               # 改值为1

haproxy-config-dir:                                                    

  file.directory:

    - name: /etc/haproxy

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'

目录结构

[root@nginx salt]# tree

.

├── base

│   └── _modules

│       └── my_disk.py

└── prod

    ├── haproxy

    │   ├── files

    │   │   ├── haproxy-1.5.4.tar.gz

    │   │   └── haproxy.init

    │   └── install.sls

    └── pkg

        └── pkg-init.sls

本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1915156,如需转载请自行联系原作者

继续阅读