Рубрики
Uncategorized

Ansible Rails — легко развернуть приложения Ruby on Rails

Я использовал Heroku для развертывания моих приложений Ruby on Rails, но я всегда хотел узнать, как все это работает … Tagged with Rails, DevOps, WebDev, Ruby.

Я использовал Heroku для развертывания моих приложений Ruby on Rails, но я всегда хотел узнать, как все это работает под капюшоном. За последние пару месяцев я решил узнать больше о том, как настроить сервер и развернуть приложение Rails для производства. Я сделал этот проект с открытым исходным кодом под названием Ansible Rails Чтобы объединить мое обучение.

Ansible Rails — это Ansible Playbook для легкого развертывания Ruby on Rails Applications. Он использует бродяги, чтобы обеспечить среду, в которой вы можете проверить свои развертывания. Ансистрано используется для окончательного развертывания нашего приложения для постановки и производственной среды.

Ansible Rails автоматизирует следующие задачи —

  • Установка общих пакетов
  • Установите Ruby (через rbenv)
  • Установите рельсы 6, Puma, Sidekiq
  • SSH затвердевание
  • Установка брандмауэра (UFW)
  • Редис
  • Nodejs/Webpack/пряжа
  • PostgreSQL и другая роль, которая экономит резервное копирование на S3
  • Настройка nginx с некоторой разумной конфигурацией (благодаря nginxconfig.io)
  • Установите Certbot (для LetsEncrypt SSL Certs)
  • Развертывание с использованием Ansistrano
  • Ansistrano ‘Hooks’ предусмотрены для выполнения следующих задач —
    • Установка всех наших драгоценных камней
    • Предварительные активы
    • Перенос нашей базы данных (с помощью RUN_ONCE)

Вы можете найти подробное руководство по настройке и использованию/документацию здесь — https://github.com/emailthis/ansible-rails . Но следующий раздел содержит учебник, который поможет вам быстро начать.

Примечание : Если вы раньше не использовали Ansible, не волнуйтесь, это действительно легко понять и начать с него. Проще говоря, Ansible-это инструмент автоматизации с открытым исходным кодом. Это помогает вам легко настроить серверы. Вам нет необходимости в SSH на каждом сервере, чтобы выполнять работу Grunt (например, обновление пакетов, установка DepedEntes и т. Д.). Вы можете написать простой файл YAML, содержащий кучу задач, а затем сказать Ansible выполнить эти задачи на вашем сервере. Вы можете прочитать больше об этом Здесь Анкет

Начиная

Шаг 1: установка

git clone https://github.com/EmailThis/ansible-rails ansible-rails
cd ansible-rails

Шаг 2: Конфигурация

Open app-vars.yml и изменить следующие переменные.

app_name:           YOUR_APP_NAME   // Replace with name of your app
app_git_repo:       "YOUR_GIT_REPO" // e.g.: github.com/EmailThis/et
app_git_branch:     "master"        // branch that you want to deploy (e.g: 'production')

postgresql_db_user:     "{{ deploy_user }}_postgresql_user"
postgresql_db_password: "{{ vault_postgresql_db_password }}" # from vault (see next section)
postgresql_db_name:     "{{ app_name }}_production"

nginx_https_enabled: false # change to true if you wish to install SSL certificate 

Шаг 3: развернуть!

vagrant up

Если вы не хотите использовать бродяги. Измените Инвентаризация/Развитие.ini Файл, а затем запустите следующие команды

ansible-playbook -i inventories/development.ini provision.yml
ansible-playbook -i inventories/development.ini deploy.yml

Документация

Для получения дополнительной информации и документации, пожалуйста, обратитесь к github Repo — https://github.com/emailthis/ansible-rails

Вопросы, комментарии, предложения?

Пожалуйста, дайте мне знать, если вы столкнетесь с какими -либо проблемами или есть ли у вас какие -либо вопросы. Я был бы рад помочь. Я также приветствовал бы любые улучшения/предложения по запросам.

Бесстыдный заглушка 🙈: вот приложение что я развернул, используя этот инструмент. Это Простая закладка и инструмент «прочитать позже» под названием Emailthis.me (Думайте об этом как о более простой альтернативе карману, которая превращает ваш почтовый ящик в ваш список чтения).

Дайте мне знать, что вы думаете об этом 🙌 🏻

Оригинал: «https://dev.to/bharani91/ansible-rails-deploy-ruby-on-rails-apps-easily-47f8»