Персональна освітня сорінка
by Pavlo Shcherbukha
Linux-based операційні системи зараз присутні у більшості популярних хмарах і на linux-подібних операційних системах побудовані контейнерні платформи. Ubuntu легка в установці. Має свій GUI інерфейс. Має широке ком’юніті та на її базі можна підняти віртуалки у більшості хмар. Ну як мінімум віртуальні машини з ubuntu 20.04 присутні в хмарах IBM, AWS, Oracle, DigitalOcean, AZURE в різних конфігурація (по кількості процесорів та пам’яті). Ну а в AZURE на ній навіть Kubernetes кластер можна підняти. Більш того, якщо дозволяють ресурси вашого комп’ютера, то на вашому компі чи laptop можна поставити віртуалізацію від Microsoft Hyper-v та на неї поставити ту ж таки ubuntu 20.04. Вона займе менше ресурсів, ніж інші операційні системи. Системні вимоги до windows для установки Hyper-v показані на pic-00.

А на pic-022 показана уже запущена віртуалка на hyper-v з її конфігурацією. Більш того, віртуалка буде підключена до мережі internet і ви зможете спілкуватися і з інтернет і з вашою, так би мовити, host-машиною. Ну, і замість того, щоб інсталювати та деінсталювати різне програмне забезепечення для вивчення та проведеня тестів на ваш ноутбук, то краще все поставити на віртуалку. Ну, як зламається - то створите нову віртуалку - та і все. З особистого досвіду, то на ubuntu-віртуалку ставив собі docker і в контейнерах підінімав для вивення fluent-d, elastic, kibana. Для windwos - користувача, спершу не звично. Але через деякий час звикаєш, і коли починаеш подорожувати по різних хмарах - то кругом все більш-менш однакове і знайоме.

Більш того, більша частина описаного, підійде і для операційної системи на базі Raspberry PI: Install Ubuntu
on a Raspberry Pi .
Тому, як на мене, то це ідеальна операційна система для вивчення Linex. Тому, далі по тексту, опсані кроки по налаштуанню OS UBUNTU для роботи розробника.
Матеріал взято відсіля: digitalocean create-a-new-sudo-enabled-user-on-ubuntu-20-04-quickstart
ssh root@your_server_ip_address
в даном випадку username=psh
sudo adduser psh
кругом можна проклікати enter. Пароль в хмарах бажано придумувати складний - обижаються на прості (: . Ну, мають право.
sudo usermod -aG sudo psh
Перевіряємо результати роботи
su - psh
В резульаті буде
psh@instance-20220409-1955:~$
* Спробуємо виконати команду, що вимагає привілегій sudo
Прочитаємо зміст каталога root, що доступний зазичай root клристувачу
```bash
sudo ls -la /root
```
Матеріал взятий відсіля: Ubuntu 20.04 GUI installation
$ sudo apt update
$ sudo apt install tasksel
Для перевірки установки виконаємо команду отримання списку пакетів
tasksel --list-tasks
sudo tasksel install ubuntu-desktop
reboot
$ sudo systemctl set-default graphical.target
sudo apt update
Взято відсіль: https://www.youtube.com/watch?v=Moscv2moML8
sudo apt install xrdp
sudo systemctl enable xrdp
sudo systemctl status xrdp
Повинно бути щось отаке.

pic-1
Якщо виявлені помилки (не стартонув), значить скоріше всього не відкрито порт 3389 на сервері.
Для цього потрібно встановити пакет мережевних утиліт.
sudo apt install net-tools
Перевіряємо дсотупність портів
netstat -nltp
Повинно бути щось схоже як на pic-02.

pic-2
Якщо порт 3389 не слухається, то потрібно його відкрити шляхом редагування файлу редактором nano
sudo nano /etc/iptables/rules.v4
та додати рядок, що на малюнку обведено червоною рамкою

pic-3
про налаштування статичного iptables то читатати по лінку How to configure iptables on Ubuntu
В принципі на віртуалці все, але є нуюанс, якщо віртуалка піднята в хмарі то потрібно прокопати канал з вашого компа в віртуальну приватну мережу. Показую на прикладі ORACLE CLOUD.
Взято відсіль: https://www.youtube.com/watch?v=Moscv2moML8 , але в принципі, якщо ви створюєте віртуалку в хмарі, то вона створюється зразу у віртуальній приватній мережі і там потрібно буде вікрити доступ.
Заходимо на перелік Virtual Cloud Networks https://cloud.oracle.com/networking/vcns
Заходимо в свою VCN Virtual Cloud Network

pic-4
Та вікриваємо меню: “Security List”. В нему внесенмо правило для мережі.

pic-5

pic-6
Заходимо в “Security List”, що створено за замовчуванням, та вносимо правило для доступу но порта RDP 3389

pic-7
Запускаєм: %windir%\system32\mstsc.exe
або просто mstsc.exe та вносимо публічний IP вашої терміналки:

pic-8
Ну, а далі підключаємося під root ubunta або під користувачм, що ви створили psh

pic-9
Вілціяля:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
$locale - всі локалі
$locale -a Display a list of all available locales
$locale -a -v
$locale -a -v -Display Detail info
locale: en_US archive: /usr/lib/locale/locale-archive
-------------------------------------------------------------------------------
title | English locale for the USA
source | Free Software Foundation, Inc.
address | http://www.gnu.org/software/libc/
email | bug-glibc-locales@gnu.org
language | American English
territory | United States
revision | 1.0
date | 2000-06-24
codeset | UTF-8
locale: en_US.utf8 archive: /usr/lib/locale/locale-archive
-------------------------------------------------------------------------------
title | English locale for the USA
source | Free Software Foundation, Inc.
address | http://www.gnu.org/software/libc/
email | bug-glibc-locales@gnu.org
language | American English
territory | United States
revision | 1.0
date | 2000-06-24
codeset | UTF-8
locale: C.UTF-8 directory: /usr/lib/locale/C.UTF-8
-------------------------------------------------------------------------------
title | C locale
email | aurel32@debian.org
language | C
revision | 1.6
date | 2016-08-08
codeset | UTF-8
$locale -c charmap Display the available charmap
Для настройки на ураїнську установити пакет:
sudo dpkg-reconfigure locales
та вибрати локаль uk_UA.UTF-8.
Установити часову зону:
timedatectl list-timezones - отримати список
sudo timedatectl set-timezone Europe/Kiev установити часову зону києва
timedatectl - отримати поточну часову зону
cd ~
curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
nano nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
- перевірити версію Node.js, повинна бути версія 16 те версію npm, повинна бути 8
nodejs -v
npm -v
9. <a name="p09">Установка git під ubuntu</a>
```bash
sudo apt install git -y
Для установки Visual Studio Code потрібно виконати таку послаідоність команд
sudo apt update
sudo apt install software-properties-common apt-transport-https wget
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt install code
sudo apt update
sudo apt upgrade
В результаті знайдете в GUI з’явиться уже знайома іконка. Нажимаємо на іконку і працюємо

pic-10
Таким чином створена робоча машина для розробки під Node.js. Звичайно, для віртуалок, де тільки виконується запуск прграм GUI та Visual Studio Code ставити не обов’зково. І навіть RDP там не потрібне. До них підключаюьбся по shh з допомогою putty.
В таких випадках з widows машини підключаються по ssh або через putty.
tags: