В рамках финального задания для новичков я предлагаю "испачкать руки" и развернуть приложение с большим количеством зависимостей на нашем тестовом стенде.
Нужно создать playbook, который выполнит развертывание приложения на узле web
. Inventory будет предоставлен. Тестовый стенд на базе CentOS 7.
-
Используем роли rotoro_cloud.mysql_role и rotoro_cloud.nginx-php-fpm-role для настройки окружения.
- нужно переопределить переменные
mysql_user_pass
- нужно переопределить переменные
-
Создаем свою роль, которая выполнит нужные команды в размещении, определенном в переменной
app_dir
-
склонировать https://github.com/rotoro-cloud/Laravel-Real-Estate-Venue-Portal.git в нужный каталог
-
создать .env из .env.example
-
поменять в нем параметры
DB_DATABASE
,DB_USERNAME
,DB_PASSWORD
на заданные ранее на уровне playbook -
с помощью пакетного менеджера OC установить
composer
-
подтянуть зависимости проекта с помощью
sudo composer install
-
выполнить создание ключа приложения
sudo php artisan key:generate;
-
наполнить базу тестовой информацией
sudo php artisan migrate --seed;
-
создать символические ссылки для хранилища
sudo rm -rf public/storage; sudo php artisan storage:link;
-
дать доступ нужным директориям
sudo chown -R nginx.nginx /usr/share/nginx/html/;
sudo chmod -R ug+rwx /usr/share/nginx/html/storage /usr/share/nginx/html/bootstrap/cache;
sudo chmod -R o+rwx /usr/share/nginx/html/storage/logs;)
-
Я предполагаю, что ты будешь использовать специализированные модули Ansible, а не только используя модули вроде command
и shell
В курсе будет демонстрация решения, если ты вдруг застрял.
Для проверки используй ссылку в терминале Estate App
.
Я предлагаю начать с такой конструкции плейбука, estate-app-role
предстоит собрать тебе
- name: Deploy the Application
hosts: web
become: yes
vars:
app_dir: /usr/share/nginx/html/
git_repo: https://github.com/rotoro-cloud/Laravel-Real-Estate-Venue-Portal.git
db_name: appDb
mysql_user_name: username
mysql_user_password: Password
service_user: nginx
service_group: nginx
php_repo: remi-php74
roles:
- role: mysql-role
- role: nginx-php-fpm-role
- role: estate-app-role
Transformed Bootstrap theme Homespace into a mini-clone of Hirespace.com portal, fully manageable with adminpanel generated with QuickAdminPanel, to manage all the venues, locations, event types.
Also added SEO important stuff like Articles Slugs in URLs.
This is a result of 2-hours live-coding series on Youtube: see playlist
- Front-end part is taken from Homespace theme by Colorlib and transformed into Laravel Blade and assets.
- Admin part is fully generated with QuickAdminPanel.
- Clone the repository with git clone
- Copy .env.example file to .env and edit database credentials there
- Run composer install
- Run php artisan key:generate
- Run php artisan migrate --seed (it has some seeded data for your testing)
- That's it: launch the main URL.
- You can login to adminpanel by going go
/login
URL and login with credentials admin@admin.com - password
Basically, feel free to use and re-use any way you want.
- Check out our adminpanel generator QuickAdminPanel
- Read our Blog with Laravel Tutorials
- FREE E-book: 50 Laravel Quick Tips (and counting)
- Subscribe to our YouTube channel Laravel Business
- Enroll in our Laravel Online Courses