How I learned to stop worrying and
love the deployment
投影片
DEPLOYMENT
IS
FUCKING
HARD
!!!
偉大的航道前半段
$ ssh root@db
$ apt-get install mysql-server
$ mysql -u root
$ ssh root@web1
$ apt-get install nginx
$ vim /etc/nginx/nginx.conf
$ service nginx restart
$ ssh root@web2
$ git clone git@github.com:OnePiece/op.git
雖然我們有 Fabric
但是 Fabric 也只是讓我們在 .py 裡面寫 shell script 而已
新世界的四皇
SaltStack 是什麼?
一鍵佈署
SaltStack 可以做到什麼程度?
所有你在 command line 可以做到的事情
為什麼要用 SaltStack?
Master
$ curl -L http://bootstrap.saltstack.org | sudo sh -s -- -M -N
Minions
$ wget -O - http://bootstrap.saltstack.org | sudo sh
Components
States
SaLt State (SLS)
xxx.sls 長這個樣子
/etc/postgresql/9.1/main/postgresql.conf: # ID (unique)
file.managed: # state type
- template: jinja # parameters
- source: salt://postgresql/server/postgresql.conf
- user: postgres
- group: postgres
等價
postgresql-config: # 建議使用這種寫法
file.managed:
- template: jinja
- name: /etc/postgresql/9.1/main/postgresql.conf
- source: salt://postgresql/server/postgresql.conf
- user: postgres
- group: postgres
目錄結構
可以想成是 Python 的 module
top.sls
base: # environment
'*': # target
- common # state
'db':
- mysql.server
'vender':
- memcache.server
- rabbitmq
'web':
- nfs.client
- django
$ sudo salt '*' state.highstate
DEMO 一下
D 的意志
Deploy