Packer for quick builds images

Packer — это инструмент для создания одинаковых образов ОС для различных платформ из одного описания.
Что потребуется?
Packer
VirtualBox
Vagrant
Установка в osx через brew
brew install packer
Теперь проверяем версию

Далее делаем создаем папку http

И в ней файл proccesed.cfg

С содержанием

Далее нам нужно создать скрипты, по этому создаем папку scripts

Структура

Далее скрипты
1) base.sh

2) cleanup.sh

3) vagrant.sh

4) virtualbox.sh

5) zerodisk.sh

6) nginx.sh

Теперь запускаем процесс сборки, но вначале проверим наш шаблон

После выполнения команды мы должны увидеть следующее сообщение

Сама сборка

После сборки мы увидим готовый образ для Vagrant
ubuntu-14-04-x64-virtualbox.box

Развертывание Django framework на Ubuntu server

Короткое how to  по развертыванию django с uwsgi и  nginx как frontend

Берем сервер под управлением  ubuntu  и начнем устанавливать нужно по.

Список необходимого софта:

  1. Nginx
  2. uwsgi

Установка nginx

Для начала нам нужно подключить репозитарий от разработчиков, для этого устанавливаем ключ и подключаем репозитарий:

root@fr01:~# cd /tmp/root@fr01:/tmp# wget http://nginx.org/keys/nginx_signing.keyroot@fr01:/tmp# apt-key add nginx_signing.keyOK
Далее подключаем репозитарий
vi /etc/apt/sources.list.d/nginx.list
Во вновь созданный файл достаточно прописать следующее
deb http://nginx.org/packages/ubuntu/ trusty nginxdeb-src http://nginx.org/packages/ubuntu/ trusty nginx
В моем примери используется Ubuntu 14.04 поэтому я использую trusty. Вы можете узнать имя релиза набрав в консоле команду lsb_release -c.
Теперь обновляем список пакетов и устанавливаем nginx
apt-get update && apt-get install nginx
Создадим vhost для django примерно будет выглядить вот так:
vi /etc/nginx/conf.d/default.conf
server {listen 80; # на каком порту слушаемserver_name localhost; # доменное имяlarge_client_header_buffers 16 64k;proxy_buffers 8 32k;proxy_buffer_size 64k;access_log /var/log/nginx/django_access.log main;#путь до log файлаadd_header Strict-Transport-Security max-age=15768000;add_header X-Frame-Options DENY;location / { #описываем секцию работы с апликейшенuwsgi_pass unix:///opt/srv/django/uwsgi.sock;uwsgi_param Host $host;uwsgi_param X-Real-IP $remote_addr;uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto;include uwsgi_params;}location /static/ {root /opt/srv/django/;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}}

Установка uwsgi
Устанавливаем нужные пакеты
apt-get install uwsgi uwsgi-core uwsgi-plugin-python python-setuptools python-django
Далее сконигурируем необходимые app
vi /etc/uwsgi/apps-available/django.ini
Содержимое файла может быть примерно таким:
[uwsgi]master = trueprocesses = 8listen = 128gid = nginxuid = nginxvacuum = trueplugins = pythonharakiri = 15socket = /opt/srv/django/uwsgi.sockumask = 0111chmod-socket = 666chdir = /opt/srv/django/uwsgi_s/module = uwsgi_s.wsgi:applicationenable-metrics = truestats = 127.0.0.1:1717stats-http = truebuffer-size = 65536
Далее делаем symlink и включаем app
ln -s /etc/uwsgi/apps-available/django.ini /etc/uwsgi/apps-enabled/service uwsgi restart

Создадим директории
root@fr01:/tmp# mkdir /opt/srv/django/ -p
Выставим права

root@fr01:/tmp# chown -R nginx:nginx /opt/srv/django/

Далее устанавливаем virtualenv
root@fr01:/opt/srv/django# sudo easy_install virtualenv
Переходим в директорию и активируем virtualenv

cd /opt/srv/django && virtualenv .New python executable in /opt/srv/django/bin/pythonInstalling setuptools, pip, wheel...done.root@fr01:/opt/srv/django# lltotal 36drwxr-xr-x 8 nginx nginx 4096 Mar 18 09:33 ./drwxr-xr-x 3 root root 4096 Mar 18 09:02 ../drwxr-xr-x 5 nginx nginx 4096 Mar 18 09:19 admin/drwxr-xr-x 2 root root 4096 Mar 18 09:33 bin/drwxr-xr-x 3 root root 4096 Mar 18 09:33 lib/drwxr-xr-x 2 root root 4096 Mar 18 09:33 local/-rw-r--r-- 1 root root 60 Mar 18 09:33 pip-selfcheck.jsondrwxr-xr-x 3 nginx nginx 4096 Mar 18 09:21 static/drwxr-xr-x 3 nginx nginx 4096 Mar 18 09:21 uwsgi_s/srw-rw-rw- 1 nginx nginx 0 Mar 18 09:22 uwsgi.sock=
На этом все, теперь можно проверить работоспособность либо в браузере либо к примеру с помощью curl
root@fr01:/opt/srv/django# curl -I 127.0.0.1HTTP/1.1 200 OKServer: nginx/1.8.1Date: Fri, 18 Mar 2016 06:50:32 GMTContent-Type: text/htmlConnection: keep-aliveX-Frame-Options: SAMEORIGINStrict-Transport-Security: max-age=15768000X-Frame-Options: DENY

Настройка puppet master и добавление агентов

Приступим к установки агентов и первоночальной настройки. К примеру сервер которым будет управлять мой puppet master называется puppet-node, а сам мастером выступает сервер с именем puppet-master

Установка puppet в Ubuntu

Установка
Рассмотрим установку puppet master, для начала подключим репозиторий от разработчиков и установим нужные пакеты. Для этого перейдем во временную папку и скачаем последний стабильный релиз

root@fr01:~# cd /tmp/root@fr01:/tmp# wget https://apt.puppetlabs.com/puppetlabs-release-stable.deb
После скачивания можно установить пакет puppetlabs-release( версия может быть отличная от моей)

root@fr01:/tmp# dpkg -i puppetlabs-release-stable.deb Selecting previously unselected package puppetlabs-release.(Reading database ... 55824 files and directories currently installed.)Preparing to unpack puppetlabs-release-stable.deb ...Unpacking puppetlabs-release (1.0-11) ...Setting up puppetlabs-release (1.0-11) ...
Обновляем список репозитариев и устанавливаем пакет

root@fr01:/tmp# apt-get updateroot@fr01:/tmp# apt-get install puppet -y

После установки проверяем версию и чистим после себя
root@fr01:/tmp# puppet --version3.8.1root@fr01:/tmp# rm puppetlabs-release-stable.deb

На этом установка завершена, теперь можно приступать к настройки Puppet master.