该文档描述如何使用 Tsuru 和 Docker 构建自己的私有 PaaS 服务。
文档假设你已经在64位的 Ubuntu 12.04 LTS 上安装了 Tsuru。
开源项目Docker,Red Hat新的虚拟化选择 http://www.linuxidc.com/Linux/2013-10/91051.htm
dockerlite: 轻量级 Linux 虚拟化 http://www.linuxidc.com/Linux/2013-07/87093.htm
Docker的搭建Gitlab CI 全过程详解 http://www.linuxidc.com/Linux/2013-12/93537.htm
Docker 和一个正常的虚拟机有何区别? http://www.linuxidc.com/Linux/2013-12/93740.htm
Docker 将改变所有事情 http://www.linuxidc.com/Linux/2013-12/93998.htm
安装之前
开始安装之前,需要先安装 curl 和 Python-software-properties 两个软件包,这两个软件包用来安装额外的资源库。
sudo apt-get update sudo apt-get install curl python-software-properties -qqy
添加资源库
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-add-repository ppa:tsuru/lvm2 -y sudo apt-add-repository ppa:tsuru/ppa -y
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
安装 beanstalkd
sudo apt-get install beanstalkd -qqy cat > /tmp/default-beanstalkd <<EOFBEANSTALKD_LISTEN_ADDR=127.0.0.1BEANSTALKD_LISTEN_PORT=11300DAEMON_OPTS="-l $BEANSTALKD_LISTEN_ADDR -p $BEANSTALKD_LISTEN_PORT -b /var/lib/beanstalkd"START=yesEOFsudo mv /tmp/default-beanstalkd /etc/default/beanstalkd sudo service beanstalkd start
安装 redis
sudo apt-get install redis-server -qqy
安装 hipache
sudo apt-get install node-hipache -qqy sudo start hipache
安装 docker
sudo apt-get install lxc-docker -qqyecho export DOCKER_OPTS="-H 127.0.0.1:4243" | sudo tee -a /etc/default/dockerecho export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc sudo stop docker sudo start docker
安装 gandalf
sudo apt-get install gandalf-server -qqyhook_dir=/home/git/bare-template/hooks sudo mkdir -p $hook_dirsudo curl https://raw.githubusercontent.com/tsuru/tsuru/master/misc/git-hooks/post-receive -o ${hook_dir}/post-receive sudo chmod x ${hook_dir}/post-receive sudo chown -R git:git /home/git/bare-template# make sure you write the public IP of the machine in the "host" parameter# in the /etc/gandalf.conf filesudo start gandalf-server sudo start git-daemon
安装 tsuru API server
sudo apt-get install tsuru-server -qqy
sudo curl http://script.cloud.tsuru.io/conf/tsuru-docker-single.conf -o /etc/tsuru/tsuru.conf# make sure you replace all occurrences of {{{HOST_IP}}} with the machine's# public IP in the /etc/tsuru/tsuru.conf filesudo sed -i -e 's/=no/=yes/' /etc/default/tsuru-server sudo start tsuru-ssh-agent sudo start tsuru-server-api sudo start tsuru-server-collector
平台安装
curl https://raw.githubusercontent.com/tsuru/tsuru/master/misc/platforms-setup.js | mongo tsuru
这样它们就从 basebuilder 被安装到你指定的系统中,例如 Python:
docker build --no-cache -t tsuru/python https://raw.githubusercontent.com/flaviamissi/basebuilder/master/python/Dockerfile
将 Python 替换成其他平台(你可以检查 basebuilder 来获取支持的平台列表).
使用 tsuru 客户端
恭喜你,现在你已经有一个可以运行的 tsuru 服务器了,你可以参考 tsuru client usage guide 来开始构建你的应用程序。
添加服务
这里有一份完整的关于如何一步步的安装 MySQL 服务的文档:Install and configure a MySQL service.
DNS 服务器
你也可以给 Tsuru 集成一个 DNS 服务器,可参考 Here you can find an example of using bind as a DNS forwarder, 与 Tsuru 进行集成。