这是一个 Ansible Playbook 的仓库,可以用它快速配置 iOS 开发需要的服务器,仅支持 Debian(8.0) 和 Ubuntu。请先阅读 Ansible 的入门文档,不然遇到问题可能会没有方向。如果你用 Mac OS X,建议在 Dash 里安装 Ansible 的文档。
目前可以安装的服务有(没勾勾的还没好):
- Countly Server
- GitLab 7.10.1 (用户名:
root
, 初始密码:5iveL!fe
) - GitLab-CI (依懒 GitLab,只要把
install_ci
设置成 True 就能安装,详见roles/gitlab/defaults/main.yml
) - Shadowsocks
- COW
- Jenkins (默认在 8080 端口,设置在
011_jenkins.yml
) - Ghost
- NewRelic agent
- Ajenti (默认在 8000 端口,用户
root
,密码admin
) - Uptime (默认 8082 端口,用户
root
,密码admin
) - Huginn (默认 5000 端口,用户
admin
,密码password
) - Phabricator
- RedMine
- Gem in a Box (默认端口: 9922)
- Let's Chat
- Cachet
- Munin / Nagios / Sensu
还有一些日常上网用的服务配置可以移步 vpn-deploy-playbook。
sudo pip install ansible
- 安装 Ansible (版本至少 1.8 以上)git clone https://github.com/lexrus/ios-dev-playbook.git
- 下载项目cd ios-dev-playbook
- 进入目录cp ansible_hosts.ini{.example,}
- 复制 ansible_hosts.ini.example 到 ansible_hosts.ini,然后修改相应的服务器地址- 如果要备份这些配置,可以用
rake dropbox
,它会把重要的配置备份到~/Dropbox/.ios-dev-playbook
目录下 - 确保你的服务器可以用 SSH key 验证登录
- 安装相应的服务,如 GitLab:
rake gitlab
,更多命令用rake -T
列出 - 如果遇到问题可以试着用
rake deps
更新第三方 roles,用 Ansible Galaxy 更新依赖的 roles(.ansible_galaxy_dependencies) rake jessie
自动升级 Debian Wheezy 没有经过测试,不保证能成功
- 备份策略是: 永不备份;
- 各个服务的使用方法这里就不赘述了,我在上面的列表里加了相应的链接;
- GitLab 对内存有一定要求,建议使用最少 1G 内存的主机,不过我在执行 GitLab 的 role 前加了设置 swap 等于两倍内存的 role,一般 512M 内存的 VPS 也能撑住 5 人以下的小团队,但是一般运维会建议不要使用 swap; 另外,旧的 omnibus 版本在安装时会被自动备份、升级,详见
roles/gitlab/tasks/main.yml
,手动操作可以看这里; - 建议 Web 服务不要装在一起;
- Ghost 的 role 会自动装上这些 themes: ghostium、ghostrayder、ghostwriter、GhostScroll、Readium
- Ajenti 强烈建议使用 SSL 连接,但是 Safari 访问非 443 端口使用自签证书的服务器会比较麻烦,所以我暂时禁用了,可以进管理界面打开。不使用 SSL 有安全隐患,请避免在生产环境使用这样的配置。另外,重签证书可以用
ajenti-ssl-gen hostname.com -f; service ajenti restart
; - 使用内网或本地 RubyGems 镜像时,一般不想修改 Gemfile,那么可以这样操作(注意替换地址):
bundle config mirror.https://rubygems.org http://localhost:9922 ; bundle config mirror.http://rubygems.org http://localhost:9922
测试需要 Vagrant,在本项目目录中 rake test_ubuntu
就会拉一个 ubuntu/trusty64 的镜像试着跑大部分配置,测 Debian Wheezy 请用 rake test_debian
。
如果你用的是 Mac OS X,推荐先装 Brew 和 Cask,然后运行 brew cask install vagrant virtualbox
。
Vagrant 测试的 roles 都写在 tests/vagrant_test.yml 里了。
本地用 Vagrant 测试会消耗很多时间,尤其是在网速不理想的情况下。并且,请确保你的电脑有至少 2G 的空闲内存。
Travis 设置了测试 playbook 的语法是否正确,以及 001_common_utilities.yml
是否能顺利跑通。
如果你觉得这个项目有用,那就请我喝一杯咖啡吧。我的 PayPal 和支付宝帐号都是: [email protected]
欢迎你使用我的推广链接注册自己的虚拟服务器:
我的 DigitalOcean 推广链接 新加坡节点延时都很低,每月 5 刀起,通过推广链接注册就送 10 刀。
我的 Vultr 推广链接 最低每月 5 刀,使用优惠码 SSDVPS 就送 20 刀。
我的 Linode 推广链接 Linode 虽然贵一点(每月 10 刀起),但是服务非常稳定,性能也不错。
请 提 issue 或者在 Twitter 上 @lexrus。
本项目的源码遵循 MIT 协议,详见 LICENSE
文件。