Местоположение
Россия, Санкт-Петербург и область, Санкт-Петербург

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (39)

Лучшие ответы пользователя

Все ответы (58)
  • Как развиваться в DevOPS нуля?

    inf
    @inf
    DevOps Engineer
    Однозначные пути ещё не сформировались.
    Проще быть уже разработчиком(python/ruby/go) и заняться инфраструктурой. Главное как можно быстрей устроиться хоть куда-нибудь, хоть бесплатно, чтобы получать адекватный опыт.
    Книги и курсы без реальных задач это просто интересные истории.
    Ответ написан
  • Как установить passenger на nginx?

    inf
    @inf
    DevOps Engineer
    Вся беда-печаль установки passenger для nginx в том что nginx не поддерживает загрузку внешних модулей. То есть невозможно как для apache установить модуль и подключить его в конфигах.
    Отсюда исходит два способа установки passenger для nginx:
    1. Установка из репозитория Phusion Passenger готового nginx с уже компилированным модулем passenger
    2. Установка из репозитория скрипта компиляции nginx и passeger, того самого "passenger-install-nginx-module" который скачает последнюю версию nginx и скомпилирует его с passenger. В данном случае nginx будет располагаться где-то в /opt/nginx/

    Для обоих этих вариантов в любом случае надо подключить репозиторий Phusion Passenger
    1. Добавить ключи
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
    2. Установить пакеты
      sudo apt-get install apt-transport-https ca-certificates
    3. Создать файл /etc/apt/sources.list.d/passenger.list и вставить туда строку в соответствии со своим дистрибутивом (варианты по ссылке выше)
    4. Провести обновление sudo apt-get update

    После этого nginx если он был обновится на версию вместе с самим passenger. Если его не было, то можно запустить passenger-install-nginx-module и следовать инструкциям установки, чтобы скомпилировать у себя nginx и passenger :)
    Ответ написан
  • Как наиболее простым образом собирать докер-контейнеры для разных env?

    inf
    @inf
    DevOps Engineer
    - в зависимости от ENV выбирался docker-compose.{env}.yaml и dockerfile.{env} для каждого из контейнеров (если сборка из директории, а не из образа)

    Это так не работает. ENV задаётся сразу для определённого сервиса в docker-compose и для определённой сборки Dockerfile.

    Я бы сделал нормальный CI в gitlab, например, и билды из веток для stage и production. Тут сам docker-compose не совсем предназначен для сборок и порождает костыли.

    Удобней иметь один Dockerfile, а особые параметры передавать через --build-arg
    docker build --build-arg ENV=stage .
    Ответ написан
  • Не могу настроить capistrano, что я делаю не так?

    inf
    @inf
    DevOps Engineer
    Инструкция выглядит содержащей много лишней ерунды. Рекомендую читать с Capistrano Setup.
    По минимум для установки capistrano нужно:
    1. Понять какие инструменты нужны для деплоя: rvm, bower, etc ...
    2. Добавить всё что нужно в Gemfile
      # Use Capistrano for deployment
      group :development do
        gem 'capistrano'
        gem 'capistrano-rails'
        gem 'capistrano-bundler'
        gem 'capistrano-rvm'
        gem 'capistrano-passenger'
        gem 'capistrano-bower'
      end
    3. Откапистранить приложение bundle exec cap install
    4. Затребовать все эти модули в Capfile
      require 'capistrano/rvm'
      require 'capistrano/bundler'
      require 'capistrano/rails'
      require 'capistrano/bower'
      require 'capistrano/passenger'

    5. Заполнить минималистский config/deploy.rb
      # config valid only for current version of Capistrano
      lock '3.3.5'
      
      set :application, 'my_awesome_site'
      set :repo_url, 'git@bitbucket.org:username/my_awesome_site.git'
      
      # Default deploy_to directory is /var/www/my_app_name
      set :deploy_to, "/home/user/www/#{fetch(:application)}"
      
      # Default value for :scm is :git
      set :scm, :git

    6. Задать специфичные параметры среды развёртки в config/deploy/production.rb
      role :app, %w{myhosting.ru}
      role :web, %w{myhosting.ru}
      role :db,  %w{myhosting.ru}
      
      
      # Extended Server Syntax
      # ======================
      # This can be used to drop a more detailed server definition into the
      # server list. The second argument is a, or duck-types, Hash and is
      # used to set extended properties on the server.
      
      server 'myhosting.ru', user: 'user', roles: %w{web app db}
      set :rails_env, 'production'
      
      set :rvm_type, :user                     # Defaults to: :auto
      set :rvm_ruby_version, '2.1.4@r4'      # Defaults to: 'default'

    7. Всё. Потом сделать bundle exec cap production deploy:check и долго долго делать bundle exec cap production deploy отлавливая ошибки деплоя и исправляя их :)
    Ответ написан
  • Почему на node.js до сих пор нету фреймворка уровня symfony или zend?

    inf
    @inf
    DevOps Engineer
    Дык sailsjs есть. Всё равно все из рельс всё будут тащить.
    Да и пхп 20 лет уже развивается, а нода за 2015 год прошла от версии 0.11 до 4.2 За таким быстрым развитием платформы фреймфорки не успевают писать))
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (9)