3. Рабочий стол GNOME
Глава 26. Рабочий стол GNOME
26.1. GNOME: Область рабочего стола

На рабочем столе GNOME есть две особые области:
область рабочего стола (рабочая площадь в центре, занимающая большую часть экрана);
панель GNOME (полоса внизу экрана).
26.1. GNOME: Область рабочего стола
В области рабочего стола отображается содержимое папки Рабочий стол. По умолчанию в области рабочего стола расположен значок Домашняя папка, который предоставляет доступ к домашнему каталогу пользователя /home/<имя пользователя>. В этой папке по умолчанию хранятся пользовательские файлы (например, аудиозаписи, видеозаписи, документы). Домашняя папка есть у каждого пользователя системы, и по умолчанию содержащиеся в ней файлы недоступны для других пользователей (даже для чтения).
На область рабочего стола можно перетащить файлы и создать ярлыки программ.
Сценарии cloud-init
Cloud-init — это инструмент для настройки облачного сервера, который позволяет передать пользовательские параметры (user-data) при запуске виртуальной машины и тем самым ускорить и автоматизировать процесс настройки серверов.
С помощью cloud-init вы можете настроить конфигурацию сервера, установить нужное ПО, создать нужные директории и пользователей и назначить им права — и многое другое.
Сценарии cloud-init также можно передавать через Terraform, а в ближайшее время реализуем и передачу через CLI.
Форматы
Сценарии cloud-init можно передавать в виде текстовых файлов #cloud-config или shell-скриптов #!/bin/sh.
При использовании shell-скриптов необходимо учитывать следующее:
- shell-скрипт будет автоматически преобразован в
cloud-configс директивойruncmd;runcmdвыполняется однократно, поэтому после изменения скрипта и перезагрузки VDS скрипт не будет выполнен.Если вам нужно, чтобы сценарий выполнялся при каждой загрузке сервера, необходимо использовать скрипты в формате
cloud-configи директивуbootcmd.
Особенности
Сценарии выполняются от
root, поэтому в командах не требуется указыватьsudo.Все созданные файлы и директории будут принадлежать пользователю
root, поэтому если необходимо, чтобы доступ к ним имел иной пользователь, задайте в сценарии соответствующие права для него.Так как сценарий выполняется полностью автоматически, в нем не получится использоваться команды, запрашивающие действия от пользователя. Для команд, требующих подтверждения в процессе выполнения, используйте ключ
-y(например,apt upgrade -y).Лог выполнения сценария записывается в файл
/var/log/cloud-init-output.log.При использовании сторонних образов системы
cloud-initможет работать некорректно.На Ubuntu
cloud-initпо умолчанию создаст пользователяubuntu, если нет инструкцииusers. Если создание пользователей не требуется, рекомендуется указать запись вида:`users: []`
puttygen -t rsa -b 2048
ВЫЧИСЛЕНИЯ -> Сети -> Создать виртуальную сеть -> cloud-net -> Добавить -> 192.168.1.0/24 192.168.1.1 Встроенный сервер DHCP 77.88.8.8 -> Добавить -> Далее -> Создать виртуальную сеть
ВЫЧИСЛЕНИЯ -> Маршрутизаторы -> Добавить маршрутизатор -> cloud-rtr public SNAT cloud-net: 192.168.1.0/24 -> Создать (в маршрутизаторе нужно добавить статический маршрут 0.0.0.0/0 192.168.26.1)
ВЫЧИСЛЕНИЯ -> Виртуальные машины -> Создать виртуальную машину ->
- Имя: Cloud-ADM
'Образы: alt-workstation'
- Изменить тома: 30гб
'Тип ВМ: 2вЦП 4Гиб Память'
- Сетевые интерфейсы: добавить сеть(cloud-net) ipv4(192.168.1.10) готово
'скрипт настройки:
#cloud-config
ssh_pwauth: false
users:
- default
- name: altlinux
sudo: ALL=(ALL) NOPASSWD:ALL
groups: wheel
shell: /bin/bash
ssh_authorized_keys:
- "ssh-rsa *** user@host"
chpasswd:
expire: false
list: |
altlinux:P@ssw0rd
root:toor
'
-> Развернуть
ВЫЧИСЛЕНИЯ -> Плавающие IP-адреса -> Добавить плавающий IP-адрес -> сеть:public инстанс:Cloud-ADM IP:Основной -> добавить
Загрузка сценария
Загрузить сценарий cloud-init можно:
- На этапе создания сервера. Заданные параметры будут применены при установке.

- При переустановке сервера. Заданные параметры будут применены при установке.

- После создания сервера, в разделе «Конфигурация». Чтобы заданные параметры были применены при следующей перезагрузке, необходимо перезагрузить систему командой:
cloud-init clean --reboot.
vim /etc/netplan/50-cloud-init.yaml
render: NetworkManager
sudo control fusermount public
sudo systemctl daemon-reload
sudo systemctl restart gnome-remote-desktop
sudo apt-get update && sudo apt-get install -y wget unzip
wget https://hashicorp-releases.yandexcloud.net/terraform/1.14.0/terraform_1.14.0_linux_amd64.zip
sudo unzip terraform_1.14.0_linux_amd64.zip -d /usr/local/bin/
sudo apt-get install -y python3-module-openstackclient python3-module-pip
pip3 install ansible
export PATH=/home/altlinux/.local/bin:$PATH
Примеры shell-скриптов
Скрипт обязательно должен начинаться с
#!/bin/sh.
Установка пакетов
С помощью скрипта ниже установим fail2ban:
`` `#!/bin/sh apt -y update apt -y install fail2ban` ``
Установка LAMP на CentOS
#!/bin/sh
##Ставим PHP 7.2
yum -y install epel-release
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php72
yum update -y
yum install -y php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-process php-ldap php-mbstring
##Ставим MariaDB 11.02
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
bash mariadb_repo_setup
yum install -y httpd mariadb-server
##Запускаем автозагрузку сервисов
systemctl start mariadb
systemctl enable mariadb
systemctl start httpd
systemctl enable httpd
##Назначаем права
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
## Вывод phpinfo
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
## Открываем порт
iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
Примеры cloud-config
Файл обязательно должен начинаться с
#cloud-config.
Установка пакетов
`` `#cloud-config package_update: true packages: - apache2 - mariadb-server - mariadb-client` ``
Создание пользователей
`` `#cloud-config users: - name: username - name: new_username` ``