Я использовал 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»