This repository has been archived by the owner. It is now read-only.
💀 ansible configs for deploying scala.moscow sites
Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
group_vars
roles
tasks
templates
tools
.gitignore
CHANGELOG.md
README.md
Vagrantfile
production.hosts
setup_base_image.yml
setup_basehost0.yml
setup_basehosts_and_images.yml
setup_containers.yml
setup_front_container.yml
setup_images.yml
setup_nginx_image.yml
site.yml
sync_basehost0.yml
vagrant.hosts

README.md

Deploy for all *.scala.moscow servers & containers

Join the chat at https://gitter.im/scala-moscow/scala.moscow

Схема

Настройка с помощью ansible, сервисы запускаются в контейнерах docker.

В данный момент используется один VDS с 512mb RAM и SSD, в котором стартуют все docker контейнеры. При необходимости количество VDS можно будет увеличить и разнести по ним docker контейнеры.

С помощью ansible настраивается basehost0 и docker images внутри него, но не создаются контейнеры. Docker images создаются на основе phusion baseimage.

Image создаются только если image с таким названием и версией ещё нет в локальном хранилище. Поэтому для пересборки image нужно поднять в group_vars/basehosts соотвествующую версию в настройке docker_%NAME%_image_version.

Основная конфигурация внутри images делается силами ansible, а не Dockerfiles. Для этого создаётся временный контейнер, который настраивается с помощью ansible через playbook с названием setup_%IMAGE%_image.yml. После конфигурации через ansible изменения во временном конейтнере commit'яться и получается конечный image.

На основе созданных images уже строятся различные контейнеры.

Запуск playbook идемпотентен, т.е. их можно перезапускать любое количество раз, если изменения не требуются они не будут произведены.

Docker images

  • base - phusion baseimage (ubuntu 14.04) + ansible
  • nginx - base + nginx

Docker контейнеры

Локальный запуск

  • поставить vagrant
  • поставить ansible
  • находясь в корне репозитория vagrant up
  • будет запущена vagrant машина с ip адресом 192.168.78.10
  • прописать в /etc/hosts домены для scala.moscow
192.168.78.10 scala.moscow.local hub.scala.moscow.local feed.scala.moscow.local
  • ansible запускать с опцией
anbible-playbook -i vagrant.hosts PLAYBOOK

Provisioning

  • setup_basehost0.yml – настройка basehost0

  • setup_images.yml – настройка базовых images для docker

  • setup_basehosts_and_images.yml – настройка всех basehost и images в них

  • setup_containers.yml – настройка контейнеров

  • site.yml – настройка всего сразу

Остальные playbook запускаются внутри контейнеров из basehost, запуск их локально не имеет смысла.

Shell доступ

  • basehost0
vagrant ssh
  • контейнеры
vagrant ssh
docker exec -ti NAME bash