Меню Рубрики

Установка postgresql ruby on rails

Предложение от 8host.com

Настройка взаимодействия Ruby on Rails и PostgreSQL

PostgreSQL (или Postgres) – это система управления базами данных (или СУБД) с открытым исходным кодом.

Ruby on Rails – это открытый веб-фреймворк, написанный в Ruby. Rails не зависит от баз данных, то есть, может быть использован с абсолютно любой БД. По умолчанию он предполагает использование MySQL; в данном руководстве показано, как вместо стандартной БД MySQL использовать Postgres. Кроме того, в этой статье показано, как создать приложение Rails на основе БД Postgres.

Примечание: данное руководство можно выполнять как на VPS, так и на локальной машине.

Установка зависимостей

Установка Rails через RVM

Самый простой способ установки Rails – использование менеджера версий RVM (который также позволяет быстро установить Ruby). Для установки RVM требуется инструмент curl.

Примечание: если менеджер RVM уже установлен, переходите к следующему разделу.

RVM позволяет автоматически установить Ruby и Rails как часть его собственной установки. Для этого запустите:

\curl -L https://get.rvm.io | bash -s stable —rails

Примечание: не забудьте просмотреть установочный скрипт RVM, прежде чем запустить его (как и любой другой другой удаленный скрипт, передаваемый в bash).

Затем RVM самостоятельно установится в систему. теперь можно использовать этот менеджер для управления версиями Ruby. Он очень полезен, поскольку позволяет устанавливать несколько версий Ruby, что может быть необходимо для поддержки различных проектов. Кроме того, RVM уже установил Rails gem.

Установка Rails при помощи RubyGems

Если RVM был установлен ранее, не стоит переустанавливать его. Просто установите Rails (он устанавливается в качестве gem-а Ruby):

Примечание: этот синтаксис можно использовать для установки любого другого gem-а Ruby, просто заменив название пакета.

Установка Postgres

Метод установки Postgres зависит от операционной системы. Полный список рекомендаций можно найти по этой ссылке. В общем, проще всего использовать для этого стандартный менеджер пакетов системы (apt-get в Ubuntu, Homebrew в OS X, etc.).

Устанавливая Postgres на локальную машину, можно также установить графический интерфейс (хотя данное руководство подразумевает использование командной строки). Конечно, pgAdmin – не самый продуктивный инструмент, но он может оказаться полезным на локальной машине.

После установки СУБД Postgres нужно установить pg gem, позволяющий соединить Postgres и Ruby. Это делается так:

Настройка Postgres

Теперь создайте пользователя Postgres для приложения Rails, которое будет создано далее. Для этого откройте стандартного пользователя Postgres:

и создайте нового пользователя (или т.н. «роль», согласно терминологии Postgres):

create role myapp with createdb login password ‘password1’

Разработка приложения Rails

Чтобы создать приложение Rails для Postgres, запустите команду:

rails new myapp —database=postgresql

Эта команда создаст каталог по имени myapp, который содержит приложение по имени myapp (это имя используется в руководстве для простоты примера; конечно, назвать приложение можно любым удобным именем).

Примечание: Rails подразумевает использование одного имени для пользователя БД и приложения, но это условие необязательно выполнять.

Теперь нужно настроить взаимодействие Rails с базой данных. Это делается при помощи файла database.yml, который находится в:

Примечание: как видно из названия, RAILS_ROOT – это root-каталог Rails. Он находится в каталоге приложения (согласно данному руководству, это каталог /myapp).

Файл database.yml используется Rails для подключения к соответствующей БД для текущего окружения Rails. Этот файл разработан согласно стандарту сериализации данных YAML. Файл содержит несколько БД для разных окружений: для разработки, тестирования и производства. По умолчанию Rails предполагает использование отдельной БД для каждого этапа. Это удобно, поскольку БД для определенного этапа ведет себя соответствующим образом (например, БД для тестирования перестраивается для каждого тестирования Rails). Каждая БД по умолчанию должна использовать имя и пароль пользователя Postgres.

Готовый файл database.yml должен выглядеть примерно так:

development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: myapp
password: password1
test:
adapter: postgresql
encoding: unicode
database: myapp_test
pool: 5
username: myapp
password: password1

Это создаст базы данных для разработки и тестирования, передаст права на них указанному в файле пользователю Postgres, а также создаст таблицы schema_migrations дл каждой БД (эти таблицы используются для записи миграций).

Запуск приложения Rails

Теперь можно запустить приложение Rails:

Перейдите на localhost:3000, и на экране появится посадочная страница Rails.

Для взаимодействия с БД нужно создать scaffold:

rails g scaffold Post title:string body:text
rake db:migrate

Теперь перейдите на localhost:3000/posts. На этой странице можно создавать, редактировать и удалять посты.

Готово! Теперь приложение Rails может взаимодействовать с базой данных Postgres.

Примечание: больше информации можно найти в руководстве по началу работы с Rails.

источник

Предложение от 8host.com

Настройка приложения Ruby on Rails на PostgreSQL в Ubuntu 18.04

Приложения на веб-фреймворке Ruby on Rails по умолчанию используют базу данных SQLite. Это очень легкая, портируемая и дружественная система управления базами данных, которая особенно хорошо работает в средах с нехваткой памяти. В большинстве случаев это неплохой вариант. Однако для очень сложных приложений, которым требуется более надежная целостность данных и программная расширяемость, SQLite слишком слабая. Тут лучше использовать PostgreSQL. Чтобы настроить приложение Ruby on Rails для использования PostgreSQL, вам нужно выполнить несколько дополнительных шагов.

В этом мануале мы покажем, как настроить среду разработки Ruby on Rails на использование PostgreSQL на сервере Ubuntu 18.04. Вы узнаете, как установить и настроить PostgreSQL, а затем протестируете ваши настройки, создав приложение Rails, которое использует PostgreSQL в качестве своей базы данных.

Требования

  • Сервер Ubuntu 18.04, настроенный по этому мануалу.
  • Среда разработки Ruby on Rails на вашем сервере. Создать ее поможет мануал Установка Ruby on Rails с помощью rbenv в Ubuntu 18.04. В мануале мы используем версию 2.6.3 для Ruby и 5.2.3 для Rails. Чтобы уточнить последние версии, проверьте официальные сайты Ruby и Rails.

1: Установка PostgreSQL

Сначала нужно установить на свой сервер PostgreSQL.

Откройте сессию пользователя с доступом к sudo и обновите список пакетов APT, чтобы получить последние версии репозиториев:

Теперь можно установить PostgreSQL:

sudo apt install postgresql postgresql-contrib libpq-dev

В предыдущей команде указано несколько пакетов. Первый, postgresql, содержит основную программу PostgreSQL. Второй пакет, postgresql-contrib, добавляет несколько функций в PostgreSQL и расширяет возможности СУБД. Пакет libpq-dev – это библиотека PostgreSQL, которая позволяет клиентам отправлять запросы и получать ответы от бэкенд-сервера, благодаря чему ваше приложение сможет взаимодействовать с БД.

Теперь СУБД PostgreSQL и ее зависимости установлены на ваш сервер. Пора создать роль, с помощью которой приложение Rails сможет создать свою БД.

2: Создание новой роли

В PostgreSQL роли можно использовать для организации разрешений и авторизации – так же, как используются пользователи в Linux. на данном этапе вы узнаете, как создать новую роль суперпользователя для пользователя в Linux, что позволит вам создавать и настраивать базы данных в системе PostgreSQL.

Чтобы создать роль суперпользователя PostgreSQL, введите следующую команду, заменив выделенное имя именем вашего пользователя Ubuntu 18.04:

sudo -u postgres createuser -s 8host -P

Поскольку мы указали флаг -P, команда предложит ввести пароль для новой роли. Введите пароль, только обязательно запишите его, чтобы вы могли использовать его в конфигурационном файле.

Только что мы использовали createuser для создания роли по имени 8host. Флаг -S передал этому пользователю привилегии суперпользователя, а флаг sudo -u позволил запустить команду из учетной записи postgres, которая автоматически создается при установке PostgreSQL.

Примечание: Поскольку режим аутентификации для PostgreSQL в Ubuntu 18.04 начинается с ident, по умолчанию пользователь Ubuntu может работать в PostgreSQL только с той ролью, имя которой совпадает с его именем. За дополнительной информацией обращайтесь к официальной документацией PostgreSQL.

Если вы не использовали флаг -P в команде, но хотите установить пароль для роли после ее создания, откройте консоль PostgreSQL:

Вы получите следующий вывод:

psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))
Type «help» for help.
postgres=#

Консоль PostgreSQL в командной строке определяется префиксом postgres=#. Введите эту команду, чтобы установить пароль для новой роли БД (укажите свое имя):

PostgreSQL предложит вам ввести пароль. Введите и затем подтвердите его.

Теперь выйдите из консоли PostgreSQL, введя эту команду:

Вы вернетесь в обычную командную строку.

Итак, вы создали новую роль PostgreSQL с привилегиями суперпользователя. Теперь пора создать новое приложение Rails, которое будет использовать эту роль для создания базы данных.

3: Создание нового Rails-приложения

Теперь вы можете создать новое приложение Rails, настроенное на использование PostgreSQL в качестве базы данных.

Сначала перейдите в свой домашний каталог:

Создайте новое приложение Rails в этом каталоге, заменив имя приложения:

rails new appname -d=postgresql

Опция -d=postgresql задает PostgreSQL в качестве базы данных.

После того как вы запустите эту команду, в вашем домашнем каталоге появится новая папка appname, содержащая все элементы базового приложения Rails.

Перейдите в каталог приложения:

Теперь, когда вы создали новое приложение Rails и перешли в корневой каталог своего проекта, вы можете создать и настроить базу данных PostgreSQL.

4: Настройка и создание базы данных

При создании баз данных для разработки и тестирования приложение Rails мы будем использовать роль PostgreSQL, которую ранее создали для своего пользователя Ubuntu. Чтобы Rails мог создавать эти БД, нужно откорректировать конфигурации базы данных вашего проекта. После этого можно создать БД.

Сначала необходимо внести в ваше приложение Rails пароль для роли PostgreSQL, которую вы создали ранее. Для защиты конфиденциальной информации, такой как пароли, рекомендуется хранить ее в переменной среды, а не записывать ее непосредственно в конфигурации.

Чтобы сохранить ваш пароль в переменной среды при входе в систему, выполните следующую команду, где вместо APPNAME укажите имя вашего приложения, а вместо PostgreSQL_Role_Password – пароль, который вы создали в предыдущем разделе:

Читайте также:  Установка forkplayer на самсунг с флешки

echo ‘export APPNAME_DATABASE_PASSWORD=»PostgreSQL_Role_Password»‘ >>

Эта команда записывает команду export в ваш файл

/.bashrc, благодаря чему переменная среды будет установлена при входе в систему.

Чтобы экспортировать переменную для текущего сеанса, используйте команду source:

Теперь, когда вы сохранили пароль в своей среде, пришло время отредактировать сам конфигурационный файл.

Откройте конфигурации БД в текстовом редакторе:

В разделе default найдите строку:

и добавьте после нее следующие выделенные строки, указав свои учетные данные и переменную среды, которую вы создали. Этот раздел будет выглядеть примерно так:


default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool:
username: 8host

password:
development:

Благодаря этим настройкам приложение Rails сможет запускать базу данных с правильной ролью и паролем.

За дополнительной информацией по настройке баз данных в Rails обратитесь к документации.

Теперь, когда вы внесли изменения в config/database.yml, создайте базы данных для вашего приложения с помощью команды rails:

Когда Rails закончит процесс, вы получите сообщение:

Created database ‘appname_development’
Created database ‘appname_test’

Согласно выводу, команда создала базы данных development и test на сервере PostgreSQL.

Итак, у вас есть БД PostgreSQL, связанные с вашим приложением Rails. Давайте проверим, все ли работает правильно.

5: Тестирование настройки

Чтобы убедиться, что ваше приложение может использовать базу данных PostgreSQL, попробуйте запустить его в браузере.

Используя команду rails server, запустите ваше веб-приложение на встроенном веб-сервере Puma:

rails server —binding=127.0.0.1

Флаг —binding привязывает приложение к указанному IP. По умолчанию этот флаг привязывает Rails к 0.0.0.0, но при этом Rails будет прослушивать все интерфейсы. Более безопасно использовать 127.0.0.1, то есть localhost. По умолчанию приложение прослушивает порт 3000.

Как только приложение Rails запустится, ваша командная строка исчезнет, заменившись сообщением:

=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode…
* Version 3.12.1 (ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:3000
Use Ctrl-C to stop

Чтобы проверить, работает ли ваше приложение, откройте на сервере новое окно терминала и с помощью команды curl отправьте запрос на 127.0.0.1:3000:

Вы получите много выходных данных в формате HTML, в конце будет что-то вроде:


Rails version: 5.2.3

Ruby version: 2.6.3 (x86_64-linux)

источник

Разработка приложения на основе Ruby и Postgres в Службе приложений Azure в Linux Build a Ruby and Postgres app in Azure App Service on Linux

Служба приложений на платформе Linux — это высокомасштабируемая служба размещения с самостоятельной установкой исправлений на основе операционной системы Linux. App Service on Linux provides a highly scalable, self-patching web hosting service using the Linux operating system. В этом руководстве показано, как создать приложение Ruby и подключить его к базе данных PostgreSQL. This tutorial shows how to create a Ruby app and connect it to a PostgreSQL database. По завершении вы получите приложение Ruby on Rails, работающее в службе приложений под управлением Linux. When you’re finished, you’ll have a Ruby on Rails app running on App Service on Linux.

В этом руководстве описано следующее: In this tutorial, you learn how to:

  • Создание базы данных PostgreSQL в Azure Create a PostgreSQL database in Azure
  • Подключение приложения Ruby on Rails к PostgreSQL Connect a Ruby on Rails app to PostgreSQL
  • Развертывание приложения в Azure Deploy the app to Azure
  • Обновление модели данных и повторное развертывание приложения. Update the data model and redeploy the app
  • Потоковая передача журналов диагностики из Azure. Stream diagnostic logs from Azure
  • Управление приложением на портале Azure. Manage the app in the Azure portal

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу. If you don’t have an Azure subscription, create a free account before you begin.

Предварительные требования Prerequisites

Для работы с этим руководством сделайте следующее: To complete this tutorial:

Подготовка локальной базы данных Postgres Prepare local Postgres

На этом шаге вы создадите пример базы данных на локальном сервере Postgres. In this step, you create a database in your local Postgres server for your use in this tutorial.

Подключение к локальному серверу Postgres Connect to local Postgres server

Откройте окно терминала и выполните команду psql для подключения к локальному серверу Postgres. Open the terminal window and run psql to connect to your local Postgres server.

Если подключение установлено, это означает, что база данных Postgres запущена. If your connection is successful, your Postgres database is running. В противном случае запустите локальную базу данных Postgres, выполнив инструкции по скачиванию ядра PostgreSQL. If not, make sure that your local Postgres database is started by following the steps at Downloads — PostgreSQL Core Distribution.

Введите \q , чтобы выйти из клиента Postgres. Type \q to exit the Postgres client.

С помощью своего имени пользователя для входа в Linux создайте пользователя Postgres, который сможет создавать базы данных, выполняя следующую команду: Create a Postgres user that can create databases by running the following command, using your signed-in Linux username.

Создание приложения Ruby on Rails локально Create a Ruby on Rails app locally

На этом шаге вы создадите пример приложения Ruby on Rails, настроите его подключение к базе данных и запустите это приложение в локальной среде. In this step, you get a Ruby on Rails sample application, configure its database connection, and run it locally.

Клонирования репозитория Clone the sample

Откройте окно терминала и c помощью команды cd перейдите в рабочий каталог. In the terminal window, cd to a working directory.

Выполните команду ниже, чтобы клонировать репозиторий с примером. Run the following command to clone the sample repository.

С помощью команды cd перейдите в клонированный каталог. cd to your cloned directory. Установите необходимые пакеты. Install the required packages.

Локальный запуск примера Run the sample locally

Выполните перенос Rails, чтобы создать таблицы, необходимые для приложения. Run the Rails migrations to create the tables the application needs. Чтобы узнать, какие таблицы создаются при переносе, просмотрите каталог db/migrate в репозитории Git. To see which tables are created in the migrations, look in the db/migrate directory in the Git repository.

Запустите приложение. Run the application.

Откройте браузер и перейдите по адресу http://localhost:3000 . Navigate to http://localhost:3000 in a browser. Добавьте несколько задач на странице. Add a few tasks in the page.

Чтобы остановить сервер Rails, введите Ctrl + C в окне терминала. To stop the Rails server, type Ctrl + C in the terminal.

Использование Azure Cloud Shell Use Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно. You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Начало работы с Azure Cloud Shell To start Azure Cloud Shell:

Параметр Option Пример и ссылка Example/Link
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом. Select Try It in the upper-right corner of a code block. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически. Selecting Try It doesn’t automatically copy the code to Cloud Shell.
Перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell, чтобы открыть Cloud Shell в браузере. Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Select the Cloud Shell button on the menu bar at the upper right in the Azure portal.

Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия: To run the code in this article in Azure Cloud Shell:

Запустите Cloud Shell. Start Cloud Shell.

В блоке кода нажмите кнопку Копировать, чтобы скопировать код. Select the Copy button on a code block to copy the code.

Вставьте код в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS. Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

Нажмите клавишу ВВОД, чтобы выполнить код. Select Enter to run the code.

Создание Postgres в Azure Create Postgres in Azure

На этом этапе вы создадите базу данных Postgres в Базе данных Azure для PostgreSQL. In this step, you create a Postgres database in Azure Database for PostgreSQL. Позже вы настроите приложение Ruby on Rails для подключения к этой базе данных. Later, you configure the Ruby on Rails application to connect to this database.

Создание группы ресурсов Create a resource group

Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (веб-приложений, баз данных и учетных записей хранения) и управление ими. A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия. For example, you can choose to delete the entire resource group in one simple step later.

В Cloud Shell создайте группу ресурсов с помощью команды az group create . In the Cloud Shell, create a resource group with the az group create command. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении Западная Европа. The following example creates a resource group named myResourceGroup in the West Europe location. Чтобы просмотреть все поддерживаемые расположения для службы приложений в Linux в ценовой категории Базовый, выполните команду az appservice list-locations —sku B1 —linux-workers-enabled . To see all supported locations for App Service on Linux in Basic tier, run the az appservice list-locations —sku B1 —linux-workers-enabled command.

Обычно группа ресурсов и ресурсы создаются в ближайших регионах. You generally create your resource group and the resources in a region near you.

По завершении команды в выходных данных JSON будут отображаться свойства группы ресурсов. When the command finishes, a JSON output shows you the resource group properties.

Создание сервера Postgres Create a Postgres server

Создайте сервер PostgreSQL с помощью команды az postgres server create . Create a PostgreSQL server with the az postgres server create command.

Выполните следующую команду в Cloud Shell и замените заполнитель

placeholder. Имя сервера должно быть уникальным на всех серверах в Azure. The server name needs to be unique across all servers in Azure.

После создания сервера базы данных Azure для PostgreSQL в Azure CLI отображаются следующие сведения. When the Azure Database for PostgreSQL server is created, the Azure CLI shows information similar to the following example:

Настройка брандмауэра сервера Configure server firewall

В Cloud Shell создайте правило брандмауэра для сервера Postgres, выполнив команду az postgres server firewall-rule create , чтобы разрешить подключения клиентов. In the Cloud Shell, create a firewall rule for your Postgres server to allow client connections by using the az postgres server firewall-rule create command. Если для начального и конечного IP-адресов задано значение 0.0.0.0, брандмауэр открыт только для других ресурсов Azure. When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources. Замените заполнитель

Вы можете применить еще более строгие ограничения в правиле брандмауэра, разрешив только исходящие IP-адреса, используемые приложением. You can be even more restrictive in your firewall rule by using only the outbound IP addresses your app uses.

Локальное подключение к рабочему серверу Postgres Connect to production Postgres server locally

В Cloud Shell установите соединение с сервером Postgres в Azure. In the Cloud Shell, connect to the Postgres server in Azure. Используйте значение, указанное ранее для заполнителей

При появлении запроса на ввод пароля используйте пароль My5up3r$tr0ngPa$w0rd! , указанный во время создания сервера базы данных. When prompted for a password, use My5up3r$tr0ngPa$w0rd!, which you specified when you created the database server.

Создание рабочей базы данных Create a production database

В командной строке postgres создайте базу данных. At the postgres prompt, create a database.

Создание пользователя с разрешениями Create a user with permissions

Создайте пользователя базы данных с именем railsappuser и предоставьте ему все привилегии в базе данных sampledb . Create a database user called railsappuser and give it all privileges in the sampledb database.

Завершите подключение к серверу, введя команду \q . Exit the server connection by typing \q .

Подключение приложения к Azure Postgres Connect app to Azure Postgres

На этом шаге вы подключите приложение Ruby on Rails к базе данных Postgres, созданной в Базе данных Azure для PostgreSQL. In this step, you connect the Ruby on Rails application to the Postgres database you created in Azure Database for PostgreSQL.

Настройка подключения к базе данных Configure the database connection

В репозитории откройте файл config/database.yml. In the repository, open config/database.yml. В нижней части файла замените рабочие переменные следующим кодом. At the bottom of the file, replace the production variables with the following code.

Сохраните изменения. Save the changes.

Локальное тестирование приложения Test the application locally

Вернитесь в окно терминала на локальном компьютере и установите следующие переменные среды: Back in the local terminal, set the following environment variables:

Выполните перенос базы данных Rails с настроенными рабочими значениями для создания таблиц в базе данных Postgres Базы данных Azure для PostgreSQL. Run Rails database migrations with the production values you just configured to create the tables in your Postgres database in Azure Database for PostgreSQL.

При использовании в рабочей среде приложению Rails нужны предкомпилированные ресурсы. When running in the production environment, the Rails application needs precompiled assets. Создайте необходимые ресурсы, выполнив следующую команду: Generate the required assets with the following command:

В рабочей среде Rails также используются секреты для управления безопасностью. The Rails production environment also uses secrets to manage security. Создайте секретный ключ. Generate a secret key.

Сохраните секретный ключ в соответствующих переменных, используемых в рабочей среде Rails. Save the secret key to the respective variables used by the Rails production environment. Для удобства используйте один ключ для обеих переменных. For convenience, you use the same key for both variables.

Включите обработку файлов JavaScript и CSS в рабочей среде Rails. Enable the Rails production environment to serve JavaScript and CSS files.

Запустите пример приложения в рабочей среде. Run the sample application in the production environment.

Перейдите на страницу http://localhost:3000 . Navigate to http://localhost:3000 . Если страница загрузилась без ошибок, это значит, что приложение Ruby on Rails подключается к базе данных Postgres в Azure. If the page loads without errors, the Ruby on Rails application is connecting to the Postgres database in Azure.

Добавьте несколько задач на странице. Add a few tasks in the page.

Чтобы остановить сервер Rails, введите Ctrl + C в окне терминала. To stop the Rails server, type Ctrl + C in the terminal.

Фиксация изменений Commit your changes

Чтобы зафиксировать изменения, выполните следующие команды Git: Run the following Git commands to commit your changes:

Ваше приложение готово к развертыванию. Your app is ready to be deployed.

Развертывание в Azure Deploy to Azure

На этом этапе вы развернете приложение Rails, подключенное к базе данных Postgres, в Службе приложений Azure. In this step, you deploy the Postgres-connected Rails application to Azure App Service.

Настойка пользователя развертывания Configure a deployment user

Для развертывания в веб-приложение Azure из FTP и локального репозитория Git можно использовать пользователя развертывания. FTP and local Git can deploy to an Azure web app by using a deployment user. Настроив один раз пользователя развертывания, вы сможете использовать его для всех последующих развертываний в Azure. Once you configure your deployment user, you can use it for all your Azure deployments. Имя пользователя и пароль учетной записи развертывания отличаются от учетных данных подписки Azure. Your account-level deployment username and password are different from your Azure subscription credentials.

Чтобы настроить пользователя развертывания, выполните в Azure Cloud Shell команду az webapp deployment user set. To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Вместо и

укажите имя пользователя и пароль развертывания. Replace and

with a deployment user username and password.

  • Имя пользователя должно быть уникальным в Azure. Кроме того, чтобы отправка в локальный репозиторий Git работала, имя пользователя не должно содержать символ @. The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Пароль должен содержать не менее восьми символов и включать два из трех следующих элементов: буквы, цифры и символы. The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.

В выходных данных JSON пароль отображается как null . The JSON output shows the password as null . Если появляется сообщение об ошибке ‘Conflict’. Details: 409 , измените имя пользователя. If you get a ‘Conflict’. Details: 409 error, change the username. Если появляется сообщение об ошибке ‘Bad Request’. Details: 400 , используйте более надежный пароль. If you get a ‘Bad Request’. Details: 400 error, use a stronger password.

Запишите имя пользователя и пароль и используйте их для развертывания веб-приложений. Record your username and password to use to deploy your web apps.

Создание плана службы приложений Create an App Service plan

В Cloud Shell создайте план службы приложений в группе ресурсов с помощью команды az appservice plan create . In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

В следующем примере создается план службы приложений с именем myAppServicePlan в ценовой категории Бесплатный ( —sku F1 ) в контейнере Linux ( —is-linux ). The following example creates an App Service plan named myAppServicePlan in the Free pricing tier ( —sku F1 ) and in a Linux container ( —is-linux ).

После создания плана службы приложений в Azure CLI отображается информация следующего вида: When the App Service plan has been created, the Azure CLI shows information similar to the following example:

Создание веб-приложения Create a web app

Создайте веб-приложение в плане службы приложений myAppServicePlan . Create a web app in the myAppServicePlan App Service plan.

Когда веб-приложение будет создано, в Azure CLI отобразится примерно следующее: When the web app has been created, the Azure CLI shows output similar to the following example:

Вы создали пустое веб-приложение с включенным развертыванием Git. You’ve created an empty new web app, with git deployment enabled.

Настройка параметров базы данных Configure database settings

В службе приложений переменные среды задаются в качестве параметров приложения с помощью команды az webapp config appsettings set в Cloud Shell. In App Service, you set environment variables as app settings by using the az webapp config appsettings set command in the Cloud Shell.

Команда Cloud Shell ниже позволяет настроить параметры приложения DB_HOST , DB_DATABASE , DB_USERNAME и DB_PASSWORD . The following Cloud Shell command configures the app settings DB_HOST , DB_DATABASE , DB_USERNAME , and DB_PASSWORD . Замените заполнители и

Настройка переменных среды Rails Configure Rails environment variables

В окне терминала на локальном компьютере создайте новый секрет для рабочей среды Rails в Azure. In the local terminal, generate a new secret for the Rails production environment in Azure.

Настройте переменные, необходимые для рабочей среды Rails. Configure the variables required by Rails production environment.

В следующей команде Cloud Shell замените два заполнителя новым секретным ключом, созданным в окне терминала на локальном компьютере. In the following Cloud Shell command, replace the two placeholders with the new secret key you generated in the local terminal.

Свойство со значением ASSETS_PRECOMPILE=»true» указывает контейнеру Ruby по умолчанию предварительно компилировать ресурсы во время каждого развертывания Git. ASSETS_PRECOMPILE=»true» tells the default Ruby container to precompile assets at each Git deployment. См. подробнее о предварительно компилируемых ресурсах и обслуживании статических ресурсов. For more information, see Precompile assets and Serve static assets.

Публикация в Azure из Git Push to Azure from Git

В окне терминала на локальном компьютере добавьте удаленное приложение Azure в локальный репозиторий Git. In the local terminal, add an Azure remote to your local Git repository.

Выполните публикацию в удаленную службу приложений Azure, чтобы развернуть приложение Ruby on Rails. Push to the Azure remote to deploy the Ruby on Rails application. После этого введите пароль, указанный ранее в процессе создания пользователя развертывания. You are prompted for the password you supplied earlier as part of the creation of the deployment user.

Во время развертывания служба приложений Azure будет взаимодействовать с Git. During deployment, Azure App Service communicates its progress with Git.

Переход к приложению Azure Browse to the Azure app

Вы запустили управляемое данными приложение Ruby on Rails в службе приложений Azure. Congratulations, you’re running a data-driven Ruby on Rails app in Azure App Service.

Локальное обновление и повторное развертывание модели Update model locally and redeploy

На этом шаге вы внесете некоторые изменения в модель данных task и веб-приложение, а затем опубликуете обновления в Azure. In this step, you make a simple change to the task data model and the webapp, and then publish the update to Azure.

Для сценария с задачами необходимо изменить приложение, чтобы можно было пометить задачу как выполненную. For the tasks scenario, you modify the application so that you can mark a task as complete.

Добавление столбца Add a column

В окне терминала перейдите к корневой папке репозитория Git. In the terminal, navigate to the root of the Git repository.

Создайте миграцию, при которой столбец логических значений Done добавляется в таблицу Tasks : Generate a new migration that adds a boolean column called Done to the Tasks table:

Эта команда создает файл миграции в каталоге db/migrate. This command generates a new migration file in the db/migrate directory.

В окне терминала выполните перенос базы данных Rails, чтобы внести изменения в локальную базу данных. In the terminal, run Rails database migrations to make the change in the local database.

Обновление логики приложения Update application logic

Откройте файл app/controllers/tasks_controller.rb. Open the app/controllers/tasks_controller.rb file. В конце файла найдите следующую строку: At the end of the file, find the following line:

Измените эту строку, добавив в нее новый параметр Done . Modify this line to include the new Done parameter.

Обновление представлений Update the views

Откройте файл app/views/tasks/_form.html.erb, который является формой редактирования. Open the app/views/tasks/_form.html.erb file, which is the Edit form.

Найдите строку и вставьте непосредственно под ней следующий код: Find the line and insert the following code directly below it:

Откройте файл app/views/tasks/show.html.erb, который является страницей представления с одной записью. Open the app/views/tasks/show.html.erb file, which is the single-record View page.

Найдите строку и вставьте непосредственно под ней следующий код: Find the line and insert the following code directly below it:

Откройте файл app/views/tasks/index.html.erb, который является страницей индекса для всех записей. Open the app/views/tasks/index.html.erb file, which is the Index page for all records.

Найдите строку и вставьте непосредственно под ней следующий код: Find the line and insert the following code directly below it:

В этом же файле найдите строку и вставьте непосредственно под ней следующий код: In the same file, find the line and insert the following code directly below it:

Локальная проверка изменений Test the changes locally

В окне терминала на локальном компьютере запустите сервер Rails. In the local terminal, run the Rails server.

Чтобы увидеть, как изменится состояние задачи, перейдите по адресу http://localhost:3000 и добавьте или измените элемент. To see the task status change, navigate to http://localhost:3000 and add or edit items.

Чтобы остановить сервер Rails, введите Ctrl + C в окне терминала. To stop the Rails server, type Ctrl + C in the terminal.

Публикация изменений в Azure Publish changes to Azure

В окне терминала выполните перенос базы данных Rails для рабочей среды, чтобы внести изменения в базу данных Azure. In the terminal, run Rails database migrations for the production environment to make the change in the Azure database.

Зафиксируйте все изменения в Git, а затем отправьте изменения кода в Azure. Commit all the changes in Git, and then push the code changes to Azure.

После выполнения команды git push перейдите в приложение Azure и проверьте новые функции. Once the git push is complete, navigate to the Azure app and test the new functionality.

Добавленные задачи сохраняются в базе данных. If you added any tasks, they are retained in the database. Изменения в схеме данных не влияют на имеющиеся данные. Updates to the data schema leave existing data intact.

Потоковая передача журналов диагностики Stream diagnostic logs

Можно получить доступ к журналам консоли, которые были созданы в контейнере. You can access the console logs generated from inside the container. Сначала выполните приведенную ниже команду в Cloud Shell для включения ведения журнала контейнера. First, turn on container logging by running the following command in the Cloud Shell:

После включения ведения журнала контейнера, выполните следующую команду, чтобы просмотреть поток данных журнала. Once container logging is turned on, run the following command to see the log stream:

Если журналы консоли не отображаются, проверьте еще раз через 30 секунд. If you don’t see console logs immediately, check again in 30 seconds.

Чтобы остановить потоковую передачу журналов, нажмите клавиши Ctrl + C . To stop log streaming at any time, type Ctrl + C .

Управление приложением Azure Manage the Azure app

Перейдите на портал Azure, чтобы управлять созданным приложением. Go to the Azure portal to manage the app you created.

В меню слева щелкните Службы приложений, а затем — имя своего приложения Azure. From the left menu, click App Services, and then click the name of your Azure app.

Отобразится страница обзора вашего приложения. You see your app’s Overview page. Вы можете выполнять базовые задачи управления: обзор, завершение, запуск, перезагрузку и удаление. Here, you can perform basic management tasks like stop, start, restart, browse, and delete.

В меню слева доступны страницы для настройки приложения. The left menu provides pages for configuring your app.

Очистка ресурсов Clean up resources

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. In the preceding steps, you created Azure resources in a resource group. Если эти ресурсы вам не понадобятся в будущем, вы можете удалить группу ресурсов, выполнив следующую команду в Cloud Shell: If you don’t expect to need these resources in the future, delete the resource group by running the following command in the Cloud Shell:

Ее выполнение может занять до минуты. This command may take a minute to run.

Дальнейшие действия Next steps

В этом руководстве вы узнали, как выполнять следующие задачи: In this tutorial, you learned how to:

  • Создание базы данных Postgres в Azure Create a Postgres database in Azure
  • Подключение приложения Ruby on Rails к Postgres Connect a Ruby on Rails app to Postgres
  • Развертывание приложения в Azure Deploy the app to Azure
  • Обновление модели данных и повторное развертывание приложения. Update the data model and redeploy the app
  • Потоковая передача журналов диагностики из Azure. Stream diagnostic logs from Azure
  • Управление приложением на портале Azure. Manage the app in the Azure portal

Перейдите к следующему руководству, чтобы научиться сопоставлять пользовательские DNS-имена с приложением. Advance to the next tutorial to learn how to map a custom DNS name to your app.

Также ознакомьтесь с другими ресурсами: Or, check out other resources:

источник

Добавить комментарий

Adblock
detector