<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 && 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
- 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,如需轉載請自行聯系原作者