-
Notifications
You must be signed in to change notification settings - Fork 1
/
lab1.ECS.txt
218 lines (182 loc) · 17.1 KB
/
lab1.ECS.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# Лабораторная работа номер 1. Развертывание виртуальной машины на базе Ubuntu Linux
и дальнейшее развертывание веб-сайта на ней
# Задача данной работы заключается в обучении сотрудника Sbercloud создание виртуальной машины и базы данных (Database as a service) на базе платформы Huawei Cloud
# Platform. На примере установки веб-сайта на базе Wordpress, мы сможем пройти типичный клиентский путь: от создания ресурсов в облаке до
# развертывания своего приложения.
Задание 1. Создание персонализированного проекта для своей работы.
1) Заходим на портал https://auth.hc.sbercloud.ru/
2) На квадратике авторизации нажимаем (снизу) на 'IAM User Login'
3) В 'Account name' вводим: Sbc_support
4) В 'IAM user name or email' вводим: название Вашей учетной записи (как у Вашей рабочей почты, пример:
spavel@example.ru, значит spavel)
5) В 'Password' вводим пароль, который был выбран при регистрации на портале
6) Нажимаем 'Log in'
7) Вверху рядом с логотипом и кнопкой Homepage есть селектор Проекта, в нем выбираем: lab_support_L1
# Данными операциями мы смогли выбрали отдельный субтенант внутри главного тенанта, который изначально передается клиенту.
# Для клиентов это удобно для возможности создания отдельных независимых групп, для разных отделов компании например. Из
# субтенанта нет возможности видеть ресурсы и группы из главного тенанта.
Задание 2. Настройка виртуальной локальной сети для вычеслительных ресурсов, Virtual Private Cloud
1) Возвращаемся на главную страницу через кнопку 'Homepage' вверху страницы
2) Переходим в раздел Network
3) В нем выбираем услугу Virtual Private Cloud
4) Вверху страницы жмем на зеленую кнопку Create VPC
5) В меню настройки сети в разделе Name указываем название нашей локальной сети: lab_vpc_<username>
6) В разделе CIDR Block указываем наш СИДР, в формате: 192.168.0.0/24 (можно при желании выбрать другой IP адрес)
7) В меню настройки подсети в разделе Name выставляем имя: lab_sub_<username>
8) CIDR блок оставляем как есть, можно поменять при желании
9) Далее внизу нажимаем на зеленую кнопку Create Now
# При создании локальной сети по умолчанию создается Security group с названием default. Данные группы используются для
# регулирования доступа (по портам) к вычислительным ресурсам в облаке (внешним или внутренним). Стандартные правила позволяют
# следующее клиентам: подключаться по любым портам к ресурсам внутри локальной сети. И выход в интернет по любым портам и
# адресам.
10) Создаем отдельную Security Group для открытия удаленного подключения к нашим Виртуальным Машинам.
11) В разделе Network - Virtual Private Cloud в левом подменю переходим на параметры Access Control - Security Groups
12) Нажимаем Зеленую кнопку Create Security group
13) В новом окошке проставляем название lab_sg_<username>
14) В Template выбираем Custom
15) Далее нажимаем Manage Rule
16) Переходим Inbound Rules и нажимаем на кнопку Add Rule
17) В ней выполняем следующие шаги:
17.1) В разделе Protocol & Port выбираем Custom TCP и проставляем порт 22 / В разделе Source IP address
и оставляем адрес 0.0.0.0/0 / Описание меняем по желанию
17.2) Нажимаем на зеленую кнопку ОК
18) Повторяем шаги 17 и меняем порты на: 3389, 443, 8443
# Данным шагами мы создали правила, которые позволят пользователям подключатся напрямую по SSH и RDP со своих рабочих или
# домашних машин.
Задание 3. Создаем Виртуальную машину на базе Linux Ubuntu 18.04 и Внешним IP адресом (Elastic IP)
1) Возвращаемся на главную страницу через кнопку Homepage
2) Далее в разделе Computing выбираем опцию Elastic Cloud Server
3) Внутри раздела, сверху нажимаем на зеленую кнопку Create ECS
4) На новой странице мы выбираем в разделе Specifications мы можем выбрать вычислительные параметры нашей машины или флейвор
5) Там, выбираем вкладку General-purpose и тип s6.xlarge.2
6) В разделе выбора Image выбираем:
6.1) Public image
6.2) --Select OS--: Ubuntu
6.3) --Select OS version--: 18.04
7) Меняем размер System Disk с 40 GB на 64 GB
8) Внизу жмем зеленю кнопку Next: Configure Network
9) В первом прямоугольнике Выбираем созданную нами локальную сеть и подсеть (в соответствии с Вашей учетной записью)
10) В Security Group ставим галочку напротив созданной раннее Security Group (в соответствии с Вашей учетной записью)
11) В последней части настроек выбираем EIP: Auto assign, и Bandwidth Size: 5
12) Внизу жмем на зеленую кнопку Next: Configure Advanced Settings
13) Настраиваем название машины в разделе ECS Name например: lab_ubuntu_<username>
14) В разделах пароля проставить два раза желаемый пароль
15) Далее рядом с ECS Group (Optional) нажимаем на Create ECS Group
16) Портал откроет новую вкладку
17) На новой вкладке нажимаем на зеленую кнопку Create ECS Group
18) Имя проставляем: lab_group_<username>
19) Закрываем вкладку и возвращаемся на прошлую
20) Нажимаем на кнопку обновления (закругленная стрелочка)
21) И выбираем нами созданную группу
22) Далее нажимаем кнопку Next: Confirm
23) На новой страничке проверяем параметры и жмем Apply Now
24) Далее пойдет процесс создания виртуальной машины, который может занять время
# Данными шагами мы настроили виртуальную машину с внешним доступом к ней. Ей будет присвоен свой внешний адрес, который можно
# далее использовать для удаленного подключения к созданным машинам. Необходимые порты со стороны сети портала открыты, так как
# ранее мы настроили необходимые Security Groups. Если же доступа к машине все равно нет, через портал и кнопку Remote Login
# можно открыть веб версию консоли управления ВМ. Через учетные данные администратора и интерфейс можно проверить, включен ли
# внутри фаерволл. При необходимости его можно удалить.
Задание 4. Установка веб-сервера (для веб-сайта) на Linux сервер
1) Через Putty / Terminal / Kitty / CMD или другое подключаемся к нашему сервер в облаке по внешнему адресу (EIP)
2) Обновляем Linux дистрибутив командой: apt -y upgrade
# apt - стандартный менеджер пакетов для дистрибутива Ubuntu Linux
# -y параметр, который не будет требовать дополнительных действий со стороны пользователя
# upgrade - команда обновления всей системы
3) После завершения обновления удалить ненужные пакеты командой apt autoremove
# это нужно для того, что некоторые приложения при установки на линукс сервер используют пакеты источников ядра системы
# после обновления ядра, данные источники тоже должны быть обновлены. При установке приложений, скорее всего возьмутся старые
# источники, которые не будут совместимы с системой. Потому их лучше удалять перед установкой нового приложения.
4) Устанавливаем приложение веб-сервера apt install nginx
5) Активируем старт приложения при загрузке системы systemctl enable --now nginx
6) На всякий случай полностью отключаем Firewall системы systemctl disable --now ufw
# ufw как и netplan, это новые пакеты прилоэений используемые в последних дистрибутивах Ubuntu Linux
7) Установим пакет PHP для корректного исполнения нашего веб приложения: apt install -y php-fpm php-common php-mbstring \
php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl
8) Изменить файл конфигурации PHP: nano /etc/php/7.2/fpm/php.ini
9) Изменить следующие параметры:
post_max_size = 100M
memory_limit = 256M
max_execution_time = 360
upload_max_filesize = 100M
date.timezone = Europe/Moscow
# Поиск по файлу в nano можно делать через сочетание Ctrl+W, сохранение изменений Ctrl+S, выход Ctrl+X
10) Перезапустить модуль systemctl php7.2-fpm
11) Активировать запуск модуля systemctl enable --now php7.2-fpm
Задание 5. Развертывание и настройка Базы данных для веб-приложения
1) Возвращаемся на главную страницу через кнопку Homepage
2) Далее в разделе Database выбираем опцию Relational Database Service
3) Вверху нажимаем на зеленую кнопку Create DB Instance
4) На странице настройки выставляем название в разделе DB Instance Name: lab_db_<username>
5) DB Engine выбираем MySQL
6) DB Engine Version: 8.0
7) DB Instance Type: Single
8) Instance Class: 2 vCPUs | 4 GB
9) Storage оставляем по умолчанию
10) Далее а разделе VPC настраиваем нашу локальную сеть по аналогии с ECS
11) В разделе параметров прописываем параметры подключения пользователя root (для администрирования базы)
12) Остальные параметры оставляем по умолчанию
13) Создаем базу через кнопку Create Now
# Создание базы может занять до 15 минут, так что бить тревогу не нужно
14) Перейдем к настройке базы и ее подготовке к нашему приложению
15) Как база будет создана нажимаем на название базы
16) Переходим в раздел Accounts (субменю справа)
17) Нажимаем Create Account
18) Username: wordpress
19) Password, Confirm password: какие хотите в рамках правил для паролей
# пароль запомнить, он нам дальше понадобиться для настройки приложения
20) Далее переходим в настройку Databases (субменю справа)
21) Нажимаем Create Database
22) Database name: wordpress
23) Перенести пользователя wordpress из User Not Authorized в Authorized User
24) В колонке Permission выбрать Read and write
25) Нажимаем OK
Задание 6. Настройка веб-приложения и запуск веб-сайта
1) Скачиваем необходимое нам приложение: cd /tmp && wget https://wordpress.org/latest.tar.gz
2) Распаковываем приложение: tar -zxvf latest.tar.gz
3) Переносим веб приложение в папке веб сервера: mv wordpress /var/www/html/wordpress
4) Выдаем корректные права на папки командами:
sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo chmod -R 755 /var/www/html/wordpress/
5) Создаем файл конфигурации для нашего приложения:
mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
6) Изменяем файл конфигурации: nano /var/www/html/wordpress/wp-config.php
7) В нем изменяем:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpress');
/** MySQL database password */
define('DB_PASSWORD', '!! пароль, который мы настроили для базы данных ранее !!');
/** MySQL hostname */
define('DB_HOST', '!! адрес созданного нами экземпляра базы данных !!');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
8) Сохраняем и выходим
# Сохранение файла через сочетание CTRL+S, выйти через CTRL+X
9) Изменяем файл настройки приложения: nano /etc/nginx/sites-available/wordpress
10) Вносим следующие настройки:
server {
listen 80;
listen [::]:80;
root /var/www/html/wordpress;
index index.php index.html index.htm;
server_name <VPC IP Address> <EIP Address>;
client_max_body_size 100M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
#!!! Важно заменить server_name на IP адреса из настроек ВМ консоли Sbercloud Advanced
11) Активируем приложение и его настройки: ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
12) Перезапускаем модуль и веб сервер: systemctl restart nginx.service && systemctl restart php7.2-fpm.service
13) Далее в веб браузере вводим Внешний IP Адрес и должны увидеть страницу настройки веб приложения.
14) Работа выполнена.
15) После настройки веб-сайта (по желанию можно пройти шаги для опыта), все созданные ресурсы с платформы удалить (ВМ, БД, Локальную сеть).