|
11 | 11 | ga('create', 'UA-11694057-1', 'netkiller.github.io'); |
12 | 12 | ga('send', 'pageview'); |
13 | 13 |
|
14 | | -</script></head><body class="tabular" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="webpage"><a name="deployment.git"></a><table border="0" cellpadding="0" cellspacing="0" width="100%" summary="Navigation"><tr><td valign="top" align="left" bgcolor="#4080FF"><img src="../graphics/spacer.gif" alt=" " width="1" height="1"></td><td></td><td rowspan="2" valign="top" align="left" bgcolor=""><h1>Deployment GIT</h1><hr><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46368304"></a>Installation</h2></div></div></div> |
| 14 | +</script></head><body class="tabular" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="webpage"><a name="deployment.git"></a><table border="0" cellpadding="0" cellspacing="0" width="100%" summary="Navigation"><tr><td valign="top" align="left" bgcolor="#4080FF"><img src="../graphics/spacer.gif" alt=" " width="1" height="1"></td><td></td><td rowspan="2" valign="top" align="left" bgcolor=""><h1>Deployment GIT</h1><hr><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp74612848"></a>Installation</h2></div></div></div> |
15 | 15 |
|
16 | 16 | <a class="ulink" href="https://github.com/netkiller/deployment.git" target="_top">https://github.com/netkiller/deployment.git</a> |
17 | 17 | <pre class="screen"> |
|
27 | 27 | $ cd deployment/ |
28 | 28 | $ ln -s bin/deploy.git run |
29 | 29 | </pre> |
30 | | - </div><hr><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46551472"></a>使用说明</h2></div></div></div> |
| 30 | + </div><hr><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp74616432"></a>使用说明</h2></div></div></div> |
31 | 31 |
|
32 | 32 | <pre class="screen"> |
33 | 33 |
|
|
56 | 56 | cron edit |
57 | 57 |
|
58 | 58 | </pre> |
59 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46242912"></a>模拟演示</h2></div></div></div> |
| 59 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp74617648"></a>模拟演示</h2></div></div></div> |
60 | 60 |
|
61 | 61 | <div class="orderedlist"><p class="title"><b>环境说明</b></p><ol class="orderedlist" type="1"><li class="listitem"> |
62 | 62 | <p>development 开发环境</p> |
|
66 | 66 | <p>production 生产环境,当testing环境通过测试后,将testing 合并到 主干 即成为生产环境的代码 </p> |
67 | 67 | <p>另外我们可以通过release功能将主干的代码复制到tags中,命名采用版本号</p> |
68 | 68 | </li></ol></div> |
69 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46177040"></a>创建配置文件</h2></div></div></div> |
| 69 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp74624144"></a>创建配置文件</h2></div></div></div> |
70 | 70 |
|
71 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp46158960"></a>development</h3></div></div></div> |
| 71 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp74624816"></a>development</h3></div></div></div> |
72 | 72 |
|
73 | 73 | <p>部署开发代码到开发环境</p> |
74 | 74 | <p>cat deployment/conf/development/mydomain.com/www.conf </p> |
|
85 | 85 | eF9nJCcGKJPsiqZsfjGXxwfF41cLibTo |
86 | 86 | </pre> |
87 | 87 | </div> |
88 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp45463072"></a>testing</h3></div></div></div> |
| 88 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp74628080"></a>testing</h3></div></div></div> |
89 | 89 |
|
90 | 90 | <p>部署测试分支到测试环境</p> |
91 | 91 | <p>cat deployment/conf/testing/mydomain.com/www.conf </p> |
|
102 | 102 | eF9nJCcGKJPsiqZsfjGXxwfF41cLibTo |
103 | 103 | </pre> |
104 | 104 | </div> |
105 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp45466336"></a>production</h3></div></div></div> |
| 105 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp74631392"></a>production</h3></div></div></div> |
106 | 106 |
|
107 | 107 | <p>部署主干代码到远程主机</p> |
108 | 108 | <p>cat deployment/conf/production/mydomain.com/www.conf </p> |
|
120 | 120 | </pre> |
121 | 121 | </div> |
122 | 122 |
|
123 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp45892320"></a>配置排出列表</h3></div></div></div> |
| 123 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp74634736"></a>配置排出列表</h3></div></div></div> |
124 | 124 |
|
125 | 125 | <p>有时我们不希望某些文件被上传到服务器上。我们可以通过排除列表来排除上传</p> |
126 | 126 | <pre class="screen"> |
|
130 | 130 | /backup/*.sql |
131 | 131 | </pre> |
132 | 132 | </div> |
133 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp45894000"></a>配置文件管理</h3></div></div></div> |
| 133 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp75315568"></a>配置文件管理</h3></div></div></div> |
134 | 134 |
|
135 | 135 | <p>生产环境的安全问题,例如数据库联接信息,开发环境与测试环境的数据库是可以供发人员和测试人员随意操作的,损坏之后恢复即可,但生产环境的数据库是不能随便操作的,除运维人员其他人是不应该有权限的, 我们希望部署到生产环境的时候使用另一个配置文件,并且这个配置文件只有运维人员才能编辑。</p> |
136 | 136 | <p>config/database.php 将覆盖原有的配置文件,然后上传到生产环境</p> |
|
141 | 141 | ... |
142 | 142 | </pre> |
143 | 143 | </div> |
144 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp45897120"></a>部署前/后脚本</h3></div></div></div> |
| 144 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp75318656"></a>部署前/后脚本</h3></div></div></div> |
145 | 145 |
|
146 | 146 | <p>部署前需要做什么</p> |
147 | 147 | <pre class="screen"> |
|
158 | 158 | ssh www@192.168.1.1 "chown 777 -R /www/mydomain.com/www.mydomain.com/images/upload" |
159 | 159 | </pre> |
160 | 160 | </div> |
161 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp45901280"></a>配置部署节点</h2></div></div></div> |
| 161 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75322656"></a>配置部署节点</h2></div></div></div> |
162 | 162 |
|
163 | 163 | <p>在需要部署的节点上安装rsync</p> |
164 | 164 | <pre class="screen"> |
|
229 | 229 | EOD |
230 | 230 |
|
231 | 231 | </pre> |
232 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp45907056"></a>部署代码</h2></div></div></div> |
| 232 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75328320"></a>部署代码</h2></div></div></div> |
233 | 233 |
|
234 | 234 | <div class="tip"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../graphics/tip.gif"></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"> |
235 | 235 | <p>development | testing 建议使用分支管理, 而production是用master分支</p> |
|
255 | 255 | </pre> |
256 | 256 | <p>每次部署都会在服务器 /www/mydomain.com/backup/ 下备份更改的文件</p> |
257 | 257 |
|
258 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp46671584"></a>回撤操作</h3></div></div></div> |
| 258 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp75334368"></a>回撤操作</h3></div></div></div> |
259 | 259 |
|
260 | 260 | <p>当程序升级失败需要立即回撤到指定版本时使用</p> |
261 | 261 | <pre class="screen"> |
|
270 | 270 | ./run revert production mydomain www 29dd5c3de6559e2ea6749f5a146ee36cbae750a7 |
271 | 271 | </pre> |
272 | 272 | </div> |
273 | | - <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp46674400"></a>发行一个版本</h3></div></div></div> |
| 273 | + <div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp75337184"></a>发行一个版本</h3></div></div></div> |
274 | 274 |
|
275 | 275 | <p>release 升级你的版本</p> |
276 | 276 | <pre class="screen"> |
277 | 277 | $ ~/deployment/run release mydomain.com www stable-2.0 |
278 | 278 | </pre> |
279 | 279 | </div> |
280 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46676192"></a>分支管理</h2></div></div></div> |
| 280 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75338976"></a>分支管理</h2></div></div></div> |
281 | 281 |
|
282 | 282 | <p>查看当前分支</p> |
283 | 283 | <pre class="screen"> |
|
297 | 297 | * development |
298 | 298 | master |
299 | 299 | </pre> |
300 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46680320"></a>备份操作</h2></div></div></div> |
| 300 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75343104"></a>备份操作</h2></div></div></div> |
301 | 301 |
|
302 | 302 | <p>将生产环境备份至本地</p> |
303 | 303 | <pre class="screen"> |
304 | 304 | $ ~/deployment/run backup mydomain.com www /backup/2012-06-12/ |
305 | 305 | </pre> |
306 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46682000"></a>日志</h2></div></div></div> |
| 306 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75344784"></a>日志</h2></div></div></div> |
307 | 307 |
|
308 | 308 | <p>部署日志 deploy.YYYY-MM-DD.log, 记录部署时间与动态</p> |
309 | 309 | <pre class="screen"> |
|
346 | 346 | -------------------------------------------------- |
347 | 347 |
|
348 | 348 | </pre> |
349 | | - </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp46685952"></a>debug</h2></div></div></div> |
| 349 | + </div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp75348736"></a>debug</h2></div></div></div> |
350 | 350 |
|
351 | 351 | <p>启用调试模式</p> |
352 | 352 | <pre class="screen"> |
|
0 commit comments