Заглавная Обсуждение
Читать Просмотр кода История

3. Рабочий стол GNOME

ALT Linux

⁠Глава 26. Рабочий стол GNOME

26.1. GNOME: Область рабочего стола

26.2. Панель GNOME

26.3. Запуск приложений

Рабочий стол 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 можно:

  • На этапе создания сервера. Заданные параметры будут применены при установке.

![081449bf 55b6 44d0 Bd74 578830f3efef](https://content.timeweb.com/assets/853e691e-3c2c-400e-a86e-def8985a7901?width=773&height=440)

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

![Без Названия (1)](https://content.timeweb.com/assets/36bc5af7-e9c3-469a-a238-80f497501f25?width=1473&height=1213)

  • После создания сервера, в разделе «Конфигурация». Чтобы заданные параметры были применены при следующей перезагрузке, необходимо перезагрузить систему командой: 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` ``
Категория: ALT Linux