Результат:
1) Виртуалка в облаке, Ubuntu 14.04 LTS
2) Внутри нее lxc
3) Внутри lxc крутится гитлаб
4) Наружу проброшены порты 10080 для веба и 10022 для SSH
5) Никакой ручной настройки взаимодействия компонентов
навеяно гистом:
https://gist.github.com/olegchir/273a36f4acf67a7be11e
Установка lxc:
apt‑add‑repository ppa:ubuntu‑lxc/stable
apt‑get update
apt‑get install lxc lxc‑templates cgmanager cgroup‑lite
reboot
Настройка виртуалки
apt‑get install cloud‑utils
lxc‑create -n gitlab -t ubuntu‑cloud
lxc‑start -n gitlab -d
lxc‑ls -f
добавить 'IP gitlab.lxc' в файл /etc/hosts
lxc‑attach -n gitlab
Установка Gitlab
wget
https://downloads‑packages.s3.amazonaws.com/ubuntu‑14.04/gitlab_7.3.2-omnibus‑1_amd64.debsudo apt‑get install openssh‑server
sudo apt‑get install postfix # 'Internet Site', айди — github.lxc
sudo dpkg -i gitlab_7.3.2-omnibus‑1_amd64.deb
sudo -e /etc/gitlab/gitlab.rb
Поменять адрес на
external_url '
http://gitlab.mysite.com:10080'
Добавить
gitlab_rails['gitlab_shell_ssh_port'] = 10022
sudo gitlab‑ctl reconfigure
Переключить SSH на другой порт
vim /etc/ssh/sshd_config
Добавить под Port 22
Port 10022
service ssh restart
Проброс портов (в автозагрузку)
/my/bin/gitlab_ports
#!/bin/bash
sudo iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 10080 -j DNAT --to 10.0.3.178:10080
sudo iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 10022 -j DNAT --to 10.0.3.178:10022
sudo iptables -A FORWARD -p tcp -d 10.0.3.178 --dport 10080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -p tcp -d 10.0.3.178 --dport 10022 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT