环境
LNMP运行环境(Ubuntu14.04 PHP5.5.9 ),系统包含以下运行软件 nginx1.4.6 mysql5.5.44 php5.5.9 apt-get安装,保证系统的纯净,配套组合,运行程序安全稳定。
安装Git
1 | $ apt-get update && apt-get install git -y |
用户root配置公钥
- 生成 SSH-Key
1 | $ ssh-keygen -t rsa -C 'xxxxx@company.com' |
- 添加公钥
将 /root/.ssh/id_rsa.pub 中的内容复制到公钥一栏中。
- 用 ssh 命令测试
1 | $ ssh -T git@gitee.com |
用户www-data配置公钥
- 查看 nginx 使用的用户和用户组
1 | $ vi /etc/nginx/nginx.conf |
- 为 www-data 用户创建 .ssh 目录
1 | $ mkdir -p /var/www/.ssh/ && chmod -R 777 /var/www/.ssh/ |
- 为 www-data 用户生成 SSH-Key
1 | $ sudo -u www-data ssh-keygen -t rsa -C 'xxxxx@company.com' |
- 添加公钥
将 /var/www/.ssh/id_rsa.pub 中的内容复制到公钥一栏中。
- 登录 www-data 用户
1 | $ su - www-data |
返回上面的内容表示 www-data 用户不能被登录。
- 修改 /etc/passwd 文件
1 | www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin |
修改 www-data 用户可以登录。
- 用 ssh 命令测试
1 | $ ssh -T git@gitee.com |
创建 test 项目
- 创建 test/index.html,代码如下
1 | <!DOCTYPE html> |
- 创建 test/webhooks.php,代码如下
1 | <?php |
- 项目示例
登录服务器,在 /usr/share/nginx/html 目录下,拉取 test 项目。
- test 目录赋权限
1 | $ chown -R www-data:www-data /usr/share/nginx/html/test/ |
配置WebHooks
- 点击添加 webHook
- 点击添加
注意:这里的签名密钥要跟 webhooks.php 中保持一致。
测试自动部署
- 首次访问
1 | $ curl 47.117.122.160 |
- 编辑 test/index.html,代码如下
1 | <!DOCTYPE html> |
提示:可以在 Gitee 仓库的 master 分支上直接编辑。
- 再次访问
1 | $ curl 47.117.122.160 |
访问内容发生变化,表示配置成功。
关联
[[Git 无法自动检测电子邮件地址]]
[[Git 配置多个SSH-Key]]
[[Linux 集群部署解决方案一]]