Новости:

SMF - Just Installed!

Главное меню

Последние сообщения

#81
Mail servers / От: Полноценный почтовый серве...
Последний ответ от George - Нояб. 12, 2022, 12:59
5. Настройка Dovecot

Устанавливаем Dovecot с компонентом для работы с СУБД:

Код: bash
apt install dovecot-imapd dovecot-pop3d dovecot-mysql

Настраиваем способ хранения сообщений:

Код: bash
vi /etc/dovecot/conf.d/10-mail.conf

Код: bash
mail_location = maildir:/home/mail/%d/%u/

* в данном примере сообщения будут храниться в продвинутом формате maildir в каталоге /home/mail/<почтовый домен>/<логин пользователя>.

Настраиваем слушателя для аутентификации:
Код: bash
vi /etc/dovecot/conf.d/10-master.conf
Код: bash
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    group = vmail
  }
}
* в данном примере мы настраиваем сервис для аутентификации и создаем два прослушивателя: /var/spool/postfix/private/auth — для возможности постфиксом использовать авторизацию через Dovecot (обращаем внимание, что /var/spool/postfix/private/auth — это тот же private/auth, который был прописан нами в postfix); auth-userdb — сокет для авторизации через dovecot-lda. Опция mode задает права на сокет, например, 666 позволит любому пользователю к нему подключиться; user и group задает пользователя и группу владельцев на сокет.

А также в этом файле добавим строки:

Код: bash
service stats {
    unix_listener stats-reader {
        user = vmail
        group = vmail
        mode = 0660
    }
    unix_listener stats-writer {
        user = vmail
        group = vmail
        mode = 0660
    }
[i]}

* в противном случае, мы увидим в логе ошибку error net_connect_unix(/var/run/dovecot/stats-writer) failed permission denied, так как у пользователя vmail не будет прав.[/i]

Настраиваем аутентификацию в Dovecot:

Код: bash
vi /etc/dovecot/conf.d/10-auth.conf

#!include auth-system.conf.ext
Код: vim
!include auth-sql.conf.ext

* в данном случае мы просто комментируем обычную аутентификацию и снимаем комментарий для использования sql-аутентификации.

Настраиваем использование шифрования:

Код: bash
vi /etc/dovecot/conf.d/10-ssl.conf

Код: bash
ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key
* ssl = required укажет dovecot требовать от клиентов использования шифрования; ssl_cert — путь до открытого сертификата (также нами указывался в postfix); ssl_key — путь к закрытому ключу.

Настроим автоматическое создание каталогов при первом подключении пользователя к ящику:

Код: bash
vi /etc/dovecot/conf.d/15-lda.conf

Код: bash
lda_mailbox_autocreate = yes

Настраиваем подключение к нашей базе данных:

Код: bash
vi /etc/dovecot/conf.d/auth-sql.conf.ext
Код: vim
passdb {
  ...
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  ...
  args = /etc/dovecot/dovecot-sql.conf.ext
}

* в данном примере мы указали на файл, в котором будут находиться настройки для получения пользователей и паролей из базы данных. Данная настройка является настройкой по умолчанию и, в большинстве случаев, ее не нужно менять без необходимости указать свой путь.

Откроем на редактирование файл с настройками работы с mysql:

Код: bash
vi /etc/dovecot/dovecot-sql.conf.ext
В самый низ добавим:

Код: bash
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix123
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1024 AS uid, 1024 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1024 AS uid, 1024 AS gid FROM mailbox WHERE username = '%u'

* в данном примере мы настроили запрос на получение данных из базы mysql (mariadb). password_query — запрос на получение пароля из таблицы mailbox; user_query — запрос на получение данных пользователя (домашняя почтовая директория, идентификатор 1024 (идентификатор созданного нами ранее пользователя vmail).

И, напоследок, настраиваем интерфейс, на котором будет слушать dovecot:

Код: bash
vi /etc/dovecot/dovecot.conf

Код: vim
listen = *

* по умолчанию, dovecot слушает также на ipv6 (listen = *, ::). Если на сервере не используется 6-я версия протокола TCP/IP, в логах dovecot появятся ошибки:
master: Error: service(imap-login): listen(::, 143) failed: Address family not supported by protocol
master: Error: service(imap-login): listen(::, 993) failed: Address family not supported by protocol


Разрешаем запуск dovecot:

Код: bash
systemctl enable dovecot

Перезапускаем dovecot:

Код: bash
systemctl restart dovecot
#82
Mail servers / От: Полноценный почтовый серве...
Последний ответ от George - Нояб. 12, 2022, 12:52
4. Установка и настройка Postfix

Установка Postfix в Ubuntu выполняется командой:

Код: bash
apt install postfix postfix-mysql

* помимо самого postfix, мы также установим postfix-mysql для возможности работы с СУБД.

В процессе установки должно появиться окно «Postfix Configuration» — оставляем Internet Site:




В следующем окне оставляем имя сервера и нажимаем Enter.

После установки пакетов создаем учетную запись, от которой мы будем работать с каталогом виртуальных почтовых ящиков:

Код: bash
groupadd -g 1024 vmail
Код: bash
useradd -d /home/mail -g 1024 -u 1024 vmail -m

* сначала мы создаем группу vmail и guid 1024, после — пользователя vmail с uid 1024 и домашней директорией /home/mail — в ней у нас будет храниться почта. Обратите внимание, что в некоторых системах идентификатор группы и пользователя 1024 может быть занят. В таком случае необходимо создать другой, а в данной инструкции ниже заменить все 1024 на альтернативный.


Если директория для почты ранее уже была создана, то необходимо задать в качестве владельца нашего созданного пользователя:

Код: bash
chown vmail:vmail /home/mail

Теперь открываем на редактирование конфигурационный файл почтового сервера:

Код: bash
vi /etc/postfix/main.cf

И редактируем следующие строки:

Код: vim
mydestination = localhost.$mydomain, localhost, localhost.localdomain
...
inet_protocols = ipv4
...
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
smtpd_tls_key_file = /etc/ssl/mail/private.key

* где:

    mydestination — указываем, для каких доменов принимаем входящую почту.
    inet_protocols — данный параметр задаст протокол для работы postfix. В данном примере на ipv4 — если в нашей системе не используется IPv6, могут возникнуть проблемы при маршрутизации почты. Также можно задать значения all или ipv6.
    smtpd_tls_cert_file — полный путь до публичного сертификата.
    smtpd_tls_key_file — полный путь до приватного сертификата.

Если имя сервера отличается от имени, по которому сервер будет зарегистрирован в DNS, задаем опцию:

Код: bash
myhostname = mx01.example.ru

Теперь в конец конфигурационного файла допишем следующее:

Код: vim
virtual_mailbox_base = /home/mail
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1024
virtual_uid_maps = static:1024
virtual_gid_maps = static:1024
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_helo_required = yes

* где:

    virtual_mailbox_base — базовый путь хранения почтовых ящиков в системе UNIX.
    virtual_alias_maps — формат и путь хранения алиасов для виртуальных пользователей.
    virtual_mailbox_domains — формат и путь хранения доменов виртуальных пользователей.
    virtual_mailbox_maps — формат и путь хранения почтовых ящиков для виртуальных пользователей.
    virtual_minimum_uid — с какого номера присваивать идентификаторы пользователям.
    virtual_uid_maps — идентификатор пользователя, от которого записываются сообщения.
    virtual_gid_maps — идентификатор группы, от которой записываются сообщения.
    virtual_transport — задает доставщика сообщений.
    dovecot_destination_recipient_limit — передача сообщений от Postfix в Dovecot выполняется по заданному количеству (в нашем примере, по 1 шт.).
    smtpd_sasl_auth_enable — разрешает sasl аутентификацию.
    smtpd_sasl_exceptions_networks — исключение сетей от использования шифрования.
    smtpd_sasl_security_options — дополнительные опции настройки sasl.
    broken_sasl_auth_clients — эту опцию прописываем для клиентов MS Outlook.
    smtpd_sasl_type — указывает тип аутентификации.
    smtpd_sasl_path — путь до временных файлов обмена информацией с Dovecot. Указывается либо абсолютный путь, либо относительный queue_directory (по умолчанию /var/spool/postfix). Итого, полный путь — /var/spool/postfix/private/auth.
    smtp_use_tls — по возможности, использовать шифрованное соединение для подключение к другому серверу SMTP при отправке письма.
    smtpd_use_tls — указывает клиентам на наличие поддержки TLS.
    smtpd_tls_auth_only — использовать только TLS.
    smtpd_helo_required — требовать начинать сессию с приветствия.

Создаем файл с настройками обращения к базе с алиасами:

Код: bash
vi /etc/postfix/mysql_virtual_alias_maps.cf

Код: vim
user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

* где user и password — логин и пароль для подключения к MySQL; hosts — имя сервера баз данных (в нашем случае, локальный сервер); dbname — имя базы данных; query — шаблон запроса к данным.


Создаем файл с инструкцией получения данных по виртуальным доменам:
Код: bash
vi /etc/postfix/mysql_virtual_domains_maps.cf

Код: vim
user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'

И файл с почтовыми ящиками:

Код: bash
vi /etc/postfix/mysql_virtual_mailbox_maps.cf

Код: vim
user = postfix
password = postfix123
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'

Открываем файл master.cf и дописываем в самый конец:
Код: bash
vi /etc/postfix/master.cf
Код: vim
submission   inet  n  -  n  -  -  smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=/var/spool/postfix/private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname

smtps   inet  n  -  n  -  -  smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

dovecot   unix  -  n  n  -  -  pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

 * необходимо убедиться, что в содержимом файла нет других раскомментированных опций для submission, smtps и dovecot (по умолчанию, их нет). В данном случае, мы настроили работу postfix на портах 25, 465 и 587. В файле master.cf мы настраиваем работу вспомогательных сервисов для Postfix. Описание каждого сервиса начинается с новой строки без отступа. Затем идут настройки для сервиса и параметры запуска. Для примера, рассмотрим первую добавленную строку — 
submission   inet  n  -  n  -  -  smtpd:


    submission — имя сервиса. Возможно использование заранее определенных в postfix служб или создание своих. В данном примере submission для подключения MUA по порту 587 при отправке почты.
    inet — тип обслуживания. Возможны варианты inet (сокет TCP/IP), unix (потоковый сокет), unix-dgram (сокет дейтаграммы), fifo (именованный канал очереди), pass (потоковый сокет UNIX-домена).
    первый "n" — является ли сервис частным и должен быть ограниченным. Возможны варианты y или n. Для типа обслуживания inet может быть только n.
    первый "-" — работает ли служба с правами root. Возможны варианты y, n и -. Прочерк означает неприменимость данного параметра к конкретному сервису.
    второй "n" — должна ли служба работать в окружении chroot. Возможны варианты y или n.
    второй "-" — через какое время в секундах пробудить службу, если она неактивна.
    третий "-" — максимальное количество одновременно выполняемых процессов, которые может запустить данный сервис.
    smtpd — выполняемая команда.

* после команды идут аргументы ее запуска. Они могут переопределять параметры, заданные в main.cf. Каждый аргумент записывается с новой строки и начинается с двух пробелов. В данном примере мы используем следующие аргументы:

    smtpd_tls_security_level — задает уровень безопасности с применением TLS. В данном примере may говорит о возможности его использования.
    smtpd_sasl_auth_enable — разрешает sasl аутентификацию.
    smtpd_sasl_type — указывает тип аутентификации.
    smtpd_sasl_path — путь до временных файлов обмена информацией с сервером хранения почты (в нашем случае Dovecot). Указывается либо абсолютный путь, либо относительный queue_directory.
    smtpd_sasl_security_options — дополнительные опции настройки sasl.
    smtpd_sasl_local_domain — добавить домен для пользователей, которые проходят smtp-аутентификацию.
    syslog_name — префикс названия службы при занесении ее в системный журнал.
    smtpd_tls_wrappermode — запускать ли службу в нестандартном режиме (для поддержки TLS).
    smtpd_client_restrictions — настройки ограничения клиентских соединений. В данном примере разрешить только авторизованных.

Генерируем сертификаты безопасности. Для этого создаем каталог, в котором их разместим:

Код: bash
mkdir -p /etc/ssl/mail

И сгенерируем их следующей командой:

Код: bash
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=relay.example.ru"

* сертификат сгенерирован на 1461 день, ключи subj могут быть произвольными, CN необходимо указать в соответствии с именем сервера, по которому мы будем подключаться к почте.
* если мы хотим использовать сертификат, который будет проходить все проверки безопасности, его нужно купить или запросить у Let's Encrypt.


Разрешаем запуск postfix:

Код: bash
systemctl enable postfix

Перезапускаем его:

Код: bash
systemctl restart postfix
#83
VMware Tools – набор специализированного программного обеспечения, который значительно повышает производительность и обеспечивает дополнительные возможности по управлению гостевой операционной системы. Он содержит оптимизированные драйвера, помогает управлять состоянием и включением/отключением виртуальной машины, через интерфейс VMWare.

Работать можно и без него, но при его наличии делать это существенно удобнее. Давайте разберемся, как установить этот инструментарий, если в качестве операционной системы у нас используется CentOS 7 или RedHat Linux.
Рекомендованный способ установки VMWare Tools

На данный момент, актуальный вариант – пакет open-vm-tools – это официально поддерживаемая версия VMware Tools с открытым исходным кодом, доступная через репозитории операционной системы. Пакет оптимизирован под каждую систему и т.к. ставится через yum, обновляется автоматически, без лишних телодвижений.

Установить, соответственно, элементарно:
Код: bash
yum -y install open-vm-tools
1
   
Код: bash
yum -y install open-vm-tools

Установщик сам добавит всё недостающее ПО и разрешит зависимости. Но бывает, что данный способ по каким-то причинам не подходит и тогда переходим к следующему абзацу.
Ручная установка VMWare Tools

Если по каким-то соображениям open-vm-tools не устраивает, то можно поставить по старинке, руками, с образа поставляемого вместе с VMWare.

Загрузите гостевую систему и выберите в панели меню VMWare VM -> Install VMWare Toold
Установка VMWare Tools
Далее все действия выполняем под root .

Примонтируем подключенный образ:

   
Код: bash
mkdir /media/cdrom && mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only

Затем копируем архив с VMWare Tools в /tmp и распаковываем его:
Код: bash
cp /media/cdrom/VMwareTools-*.tar.gz /tmp # cd /tmp # tar -zxf VMwareTools-*.tar.gz
   
Код: bash
cp /media/cdrom/VMwareTools-*.tar.gz /tmp
Код: bash
cd /tmp
Код: bash
tar -zxf VMwareTools-*.tar.gz

Добавим дополнительные пакеты, необходимые для запуска установщика:

Код: bash
yum -y install kernel-devel gcc dracut make perl
   
Код: bash
yum -y install kernel-devel gcc dracut make perl
Для установки я буду использовать ключ --default , обозначающий, что все параметры оставляем по умолчанию. Если вас что-то в стандартных настройках не устраивает, не указывайте его. Тогда, в процессе, вам будут задаваться вопросы по значениям параметров (ни разу у меня не было такой необходимости). Так же нам понадобится --force-install , без которого установщик не запустится, и выдаст предупреждение, что рекомендуется ставить open-vm-tools . Что-то, похожее на данный текст:

open-vm-tools packages are available from the OS vendor and VMware recommends
using open-vm-tools packages. See http://kb.vmware.com/kb/2073803 for more
information.
Do you still want to proceed with this installation? [no]
INPUT: [no] default


Запускаем установку:

Код: bash
cd vmware-tools-distrib/
Код: bash
./vmware-install.pl --default --force-install

Проверяем работоспособность (если все в порядке в ответ получим active ):

   
Код: bash
systemctl is-active vmware-tools
acvtive

Или более подробно:
Код: bash
systemctl status vmware-tools
1
   
Код: bash
systemctl status vmware-tools

Если все у нас завершилось успешно, не забудем удалить наши временные файлы в /tmp и отмонтировать образ:

Код: bash
rm -rf vmware-* VMwareTools-* # umount -f /media/cdrom
1
2
   
Код: bash
rm -rf vmware-* VMwareTools-*
Код: bash
umount -f /media/cdrom

Управление сервисом производится через утилиту vmware-toolbox-cmd . Например, можно посмотреть версию:

 
Код: bash
 vmware-toolbox-cmd -v 10.2.0.7047 (build-7259539)
1
2
   
 
Код: bash
vmware-toolbox-cmd -v
10.2.0.7047 (build-7259539)
#84
You can place the automatically generated number anywhere else in the name by using a token. When you type the pool name, type n surrounded by curly brackets to designate the token.

For example: amber-{n}-desktop

When a machine is created, Horizon 7 replaces {n} with a unique number.

You can generate a fixed-length token by typing {n:fixed=number of digits}.

Horizon 7 replaces the token with numbers containing the specified number of digits.

For example, if you type amber-{n:fixed=3}, Horizon 7 replaces {n:fixed=3} with a three-digit number and creates these machine names: amber-001, amber-002, amber-003, and so on.
#85
Примеры команды NET USE

Таким образом, команда NET USE подключает или отключает компьютер от общего ресурса. Хотя у команды NET USE довольно обширный синтаксис в реальной жизни используются не все ее параметры. Попробуем разобраться в работе этой популярной команды и привести реальные примеры, которые пригодятся в работе.

    Для вывода сведений о текущих подключениях введите команду net use.
    Для подключения сетевого диска командой net use с именем диска Z: из общего каталога Public2$ компьютера \\Nuclear следует ввести команду - net use z: \\Nuclear\Public2$
    Пример отключение сетевого диска net use delete. Для отключения от каталога \\Nuclear\Public2$ подключенного сетевого диска в системе с именем Z: служит команда - net use z: /delete
    Чтобы подключить общую папку Backup$ с компьютера Nuclear под пользователем administrator так, как если бы он подключался из домена Podryad.local, следует ввести - net use d: \\Nuclear\Backup$ /user:Podryad.local\administrator
    В том случае, если название компьютера состоит из нескольких слов и между ними есть пробелы, то все имя компьютера от двойной обратной черты до конца должно быть заключено в прямые кавычки. Например, для подключения к совместно используемому ресурсу Share1 на сервере «Сервер 1» команда будет иметь вид - net use k: \\"Сервер 1"\Share1
    Для восстановления текущих подключений при следующих входах в сеть, независимо от будущих изменений, служит команда net use /persistent:yes.
#86
В командной строке NET USE используется для подключения и отключения от общих сетевых ресурсов (дисков) и для вывода сведений о текущих подключениях. Когда команда используется без параметров, выводится список всех подключений данного компьютера. От себя хочу отметить, что команду Net use можно использовать и при работе с Windows 10.
Синтаксис команды NET USE

Для отображения справки для указанной команды net следует ввести команду net help use.

    net use [{имя_устройства|*}] [\\имя_компьютера\ресурс[\том]] [{пароль|*}]] [/user:[имя_домена\]] [/user:[имя_домена_с_точкой\]имя_пользователя] [/user: [имя_пользователя@имя_домена_с_точкой] [/savecred] [/smartcard] [{/delete | /persistent:{yes|no}}]
    net use [имя_устройства [/home[{пароль|*}] [/delete:{yes|no}]]
    net use [/persistent:{yes|no}], где

    Имя_устройства - задает имя ресурса при подключении или имя устройства при отключении. Существует два вида имен устройств: имена для дисковых устройств (то есть, диски с буквенными обозначениями от D: до Z:) и для принтеров (соответственно, от LPT1: до LPT3:). Ввод звездочки (*) вместо имени определенного устройства обеспечит присвоение такому устройству ближайшего доступного имени.
    \\имя_компьютера\имя_ресурса - указывает имя сервера и общего ресурса. Если параметр «имя_компьютера» содержит пробелы, все имя компьютера от двойной обратной черты (\\) до конца (например, "\\Computer Name\Share Name") должно быть заключено в прямые кавычки ("). Имя компьютера может иметь длину от 1 до 15 знаков.
    \том - задает имя тома системы NetWare. Для подключения к серверам Netware необходимо установить и запустить клиент для сетей NetWare.
    Пароль - задает пароль, необходимый для подключения к общему ресурсу. Введите звездочку (*) для вывода приглашения на ввод пароля. При вводе с клавиатуры символы пароля не выводятся на экран.
    /user - задает другое имя пользователя для подключения к общему ресурсу.
    имя_домена - задает имя другого домена. Пропуск параметра «имя_домена» приводит к тому, что команда net use использует имя домена, заданное при входе в систему.
    имя_пользователя - указывает имя пользователя для подключения.
    имя_домена _с_точкой - указывает полное имя домена, в котором присутствует учетная запись пользователя.
    /savecred - сохраняет введенные учётные данные для дальнейшего использования.
    /smartcard - указывает необходимость считывания учетных данных со смарт-карты для сетевого подключения. При наличии нескольких смарт-карт появится запрос на указание одной из них.
    /delete - отменяет указанное сетевое подключение. Если подключение задано с символом звездочки (*), будут отменены все сетевые подключения.
    /persistent:{yes|no} - управляет постоянными сетевыми подключениями. По умолчанию берется последнее использованное значение. Подключения без устройства не являются постоянными. Выбор значения Yes приводит к сохранению всех существующих соединений и восстановлению их при следующем подключении. При выборе значения No выполняемые и последующие подключения не сохраняются. Существующие подключения восстанавливаются при следующем входе в систему. Для удаления постоянных подключений используется ключ /delete.
    /home - подключает пользователя к его основному каталогу.

Как видите, синтаксис команды довольно таки длинный, однако следует отметить, что на практике используются не все ее параметры.
#87
Полное описание возможностей

On the Connection Server are three utilities that you can use for the maintenance of instant-clone VMs in vCenter Server and the clusters that the VMs are in.

The utilities are IcMaint.cmd, IcUnprotect.cmd, and IcCleanup.cmd and are located in C:\Program Files\VMware\VMware View\Server\tools\bin.
IcMaint.cmd

This command deletes the golden images, which are the parentVMs in vCenter Server from the ESXi host so that the host can be put into maintenance mode. The host is not automatically put into maintenance mode. To perform maintenance on the host, the vCenter Server administrator must manually put the host into maintenance mode.

Syntax:

IcMaint.cmd -vc hostname_or_IP_address -uid user_ID -hostName ESXi_hostname -maintenance ON|OFF

Parameters:

    -vc host name or IP address of vCenter Server
    -uid vCenter Server user ID
    -hostname ESXi host name
    -maintenance ON|OFF

    This parameter specifies whether the host is available for hosting the golden image VM.

    After the command is run on the host, the InstantClone.Maintenance annotation value is set to 1 and the golden image VMs are deleted. After the golden image VMs are deleted, the InstantClone.Maintenance annotation value is set to 2 and no more golden image VMs are created on the host. When you run this command again with -maintenance OFF, the InstantClone.Maintenance annotation value is cleared for the host to become available for hosting golden image VMs.

All the parameters are required.
IcUnprotect.cmd

After ClonePrep creates folders and VMs, you can use this utility to unprotect folders and VMs, delete VMs, and detect VMs whose golden image or snapshot is deleted. ClonePrep is the mechanism that customizes instant clones during the creation process.
Note: An internal service for instant clones that runs during instant clone operations, detects if any internal folders need to be reprotected. If these folders are not empty then the service automatically protects the folders again.

Syntax:

IcUnprotect.cmd -vc hostname_or_IP_address -uid user_ID [-includeFolders][-skipCertVeri]

Parameters:

    -action

    You can use the following options for this parameter:
        unprotect. Unprotect internal VMs.
        delete. Delete internal VMs.
        detect. Detect and list internal VMs whose golden image or snapshot is deleted.

    If you don't specify the -action parameter, the internal VMs are unprotected by default.
    -vc host name or IP address of vCenter Server
    -uid vCenter Server user ID
    -clientId instant-clone client ID (Optional)

    If clientId is not specified, protection is removed from all ClonePrep VMs in all data centers.
    -domain domain name (Optional)

    You can use multiple domain names separated by comma and no space.
    -host host name (Optional)

    You can use multiple host names separated by comma and no space.
    -datastore datastore name (Optional)

    You can use multiple datastore names separated by comma and no space.
    -vmName VM name (Optional)

    You can use multiple VM names separated by comma and no space.
    -vmType internal VM type (Optional)

    You can use multiple VM types separated by comma and no space. You can use template, replica, parent as options for this parameter.
    -includeFolders include folders

    This parameter unprotects the folders in addition to the VMs.
    -skipCertVeri skip certification verification

    IcUnprotect.cmd enforces host name verification. You must enter the correct host name of the vCenter Server instead of its IP address when you specify the command parameters. To disable host name verification and use the IP address of vCenter Server instead, use -skipCertVeri.

Specify the following parameters to delete all parentVMs in vCenter Server:

IcUnprotect -action delete -vc <IP address of vCenter Server> -uid <vCenter Server user ID> -clientId <instant clone client ID> -host <hostname 1>,<hostname 2> -vmType parent

Specify the following parameters to delete specific parentVMs in vCenter Server:

IcUnprotect -action delete -vc <IP address of vCenter Server> -uid <vCenter Server user ID> -clientId <instant clone client ID> -host <hostname 1>,<hostname 2> -vmType parent -vmName <parentVM name 1>,< parentVM name 2>

IcCleanup.cmd

You can use this utility to unprotect and delete some or all of the internal VMs created by instant clones. This utility also provides a list command to group internal VMs into the hierarchical structure according to their golden VM and the snapshot used to create the instant clone pool. The list command has a detect option which only reveals the internal VM groups with priming tag or snapshot missing. You can then unprotect and delete a specific group or all of these groups. You can also output all the groups into a disk file for future reference.

Syntax:

iccleanup.cmd -vc vcName -uid userId [-skipCertVeri] [-clientId clientUuid]

Parameters:

    -vc host name or IP address of vCenter Server
    -uid vCenter Server user ID
    -skipCertVeri Skip the vCenter Server certificate verification (Optional)
    -clientId Client UUID, the unique ID for the server cluster made up of Connection Server and one or more replica servers. (Optional)
    Note: To find the client UUID, log into Connection Server or any of the replica servers, run ADSI Edit. In DC=vdi, dc=vmware, dc=int > OU=Properties > OU=Global > CN=Common, find the value for pae-GUID, which is the value for the client UUID. If you do not specify the client UUID, the cleanup tool will deal with all the internal VMs. If you specify the client UUID, the cleanup tool will deal with only the internal VMs that belong to that particular client UUID.

Commands:

    list List some or all the internal VMs and present them in a hierarchical structure, also known as internal VM groups. Options include:
        -all List all the internal VM groups
        -D,--detect Detect mode lists only the internal VM groups with missing priming tag or snapshot
        -h,--help Print the available usage and options for this command

    After you run the list command, you can see qualified internal VMs presented in a hierarchical structure known as internal VM groups. For these internal VM groups, you can run these commands:
        unprotect Unprotect some or all the internal VM groups using these options:
            -all Unprotect all the internal VMs. Without the -I option, you must specify -all to unprotect all the internal VM groups
            -I,--index Unprotect a certain internal VM group
            -h,--help Print the available usage and options for this command
        delete Delete some or all the internal VM groups
        output Output the internal VM groups into a disk file.
            -F,--file File name to save the internal VM groups
            -h,--help Print the available usage and options for this command
        back Return to the main menu
    unprotect unprotect some or all the internal VMs, including folders. Options include:
        -A,--adDomain Domain name
        -H,--host Host name
        -D,--datastore Datastore name
        -T,--vmType Internal VM type: template, replica, or parent
        -N,--name Internal VM name
        -I,--includeFolders Include the internal VM folders
        -all Unprotect all the internal VMs
        -h,--help Print the available usage and options for this command
    delete delete some or all internal VMs, including folders. Options include:
        -A,--adDomain Domain name
        -H,--host Host name
        -D,--datastore Datastore name
        -T,--vmType Internal VM type: template, replica, or parent
        -N,--name Internal VM name
        -I,--includeFolders Include the internal VM folders
        -all Delete all the internal VMs
        -h,--help Print the available usage and options for this command
    exit Log off vCenter Server and quit the program

#88
If you get an error about the Remove-VM method being disabled by horizon.daas, you will first need to unprotect folders in vCenter. To do that run the following command using PowerCLI on the Horizon Connection Broker.

Код: bash
IcUnprotect.cmd -vc hostname_or_IP_address -uid user_ID -password password [-clusterId cluster_ID] [-includeFolders]

Я долго пытался найти в инете как найти user_id.. Не нашел, и просто запустил как Adminstrator@vsphere.local - все отработало

Удалить все orphaned:

Save the commands outlined in red into a .ps1 script file. 

Run the script using PowerCLI from the vCenter server. In case of an appliance, run it from any machine that has PowerCLI installed.

$vcserver = "vcenter.domain.com"
$vcusername = "vcenter_admin"
$vcpassword = "password"

Connect-VIServer -Server $vcserver -User $vcusername -Password $vcpassword

$allVMs=Get-VM
foreach ($vm in $allVMs) { if ($vm.ExtensionData.Runtime.ConnectionState -eq "orphaned") {$vm | Remove-VM}
}
#89
Настройки *nix (почта, web, система etc) / Раширить LVM раздел
Последний ответ от George - Окт. 09, 2022, 11:17
В панели управления облаком увеличим объем диска на один гигабайт. Отобразим информацию о нем в консоли:

Код: bash
echo 1 > /sys/block/sdd/device/rescan
Код: bash
parted /dev/sde/ print free

Мы видим, что у нас добавилось свободное дисковое пространство.


Разделы, использующие LVM, помечены соответствующим тегом. В этом конкретном примере мы будем увеличивать диск под номером три до необходимого нам объёма. Нам не придется ставить дополнительные утилиты, так как все инструменты по умолчанию присутствуют во всех популярных дистрибутивах Linux.

Мы воспользуемся возможностями parted. Но предварительно отобразим размер свободного пространства в мегабайтах для наглядности.

Код: bash
parted /dev/sde unit MB print free


Далее смотрим на ключевые столбцы — Start, End и Size. Свободное дисковое пространство заканчивается на точке в 6442 Мбайта.


Чтобы расширить последний раздел, прописываем команду:

Код: bash
parted /dev/sde resizepart 3 6441MB


Обратите внимание, что мы уменьшили цифровое значение в конце на один мегабайт. Проверим внесенные изменения:

Код: bash
parted /dev/sde print free

Свободное дисковое пространство уменьшилось до одного мегабайта, а наш второй раздел имеет объем в 3806 Мбайт.


Вернемся в GParted и обновим информацию по разделам. Сейчас LVM в /dev/sde3 не «растянут» до конца.


Посмотрим на объем текущего физического тома – для этого выполним:

Код: bash
pvdisplay



Как физические тома у нас помечены два устройства — sde2 и sde3. Последний имеет объем в 2,5 Гб, но в GParted эта цифра равна 3,5 Гб. Чтобы исправить ситуацию и синхронизировать значения, нужно выполнить команду:
Код: bash
pvresize /dev/sde3


Повторяем pvdisplay и видим, что объем физического раздела увеличился.


Чтобы отобразить существующие логические разделы, обратимся к команде:

Код: bash
lvscan

В нашей группе томов присутствуют два логических раздела — root и data.


Мы можем увеличить любой из этих томов. Для примера расширим /root следующей командой:

Код: bash
lvextend /dev/vg/root -l +100%FREE -r


Ключ -r автоматически расширит и раздел, и файловую систему внутри него (как в случае с xfr, так и с ext). Переходим в GParted и видим, что операция выполнена успешно:

image
Теперь, если прописать в консоли df -h, мы увидим, что устройство dev/mapper/vg-root имеет объем в два гигабайта, хотя изначально его объем был равен одному гигабайту.

#90
Web servers / От: NGINX + Apache + MariaDB (...
Последний ответ от George - Окт. 05, 2022, 12:54
3. Создание пользователя FTP

Для возможности подключения к сайту по FTP, создаем отдельного пользователя:

Код: bash
ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=site1.local --uid=33 --gid=33 --home=/var/www/$TMP_SITE --shell=/usr/sbin/nologin

* тут мы создадим пользователя site1.local, который будет иметь доступ к каталогу
/var/www/$TMP_SITE
.
🡱 🡳

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.