Новости:

SMF - Just Installed!

Главное меню

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

#1
Установка Docker на Ubuntu 22.04 сводится к перечню команд в терминале. Ниже размещена пошаговая инструкция с пояснениями к выполняемым действиям. Алгоритм также подойдет и для серверных версий Ubuntu.

1. Обновляем индексы пакетов apt

К сожалению, в стандартном репозитории не всегда размещены новейшие релизы ПО. Поэтому в этой инструкции мы будем загружать Docker из его официального репозитория, чтобы установить именно последний релиз. В первую очередь, нам нужно обновить индексы пакетов:
 
Код: bash
sudo apt update

2. Устанавливаем дополнительные пакеты

Для установки докера потребуется дополнительно загрузить 4 пакета, а именно:

    curl — необходим для работы с веб-ресурсами;
    software-properties-common — пакет для управления ПО с помощью скриптов;
    ca-certificates — содержит информацию о центрах сертификации;
    apt-transport-https — необходим для передачи данных по протоколу HTTPS.

Скачаем их:

 
Код: bash
sudo apt install curl software-properties-common ca-certificates apt-transport-https -y

Флаг -y означает, что на все вопросы терминала ответом будет «Да».

3. Импортируем GPG-ключ

GPG-ключ нужен для верификации подписей ПО. Он понадобится для добавления репозитория докера в локальный список. Импортируем GPG-ключ:

Код: bash
wget -O- https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null

Во время импорта терминал может вывести предупреждение, после чего сообщит об успешном выполнении команды.

4. Добавляем репозиторий докера

Добавим репозиторий для нашей версии Ubuntu, которая называется «Jammy». Для других версий ОС нужно использовать их кодовые имена, которые были перечислены в разделе «Системные требования». Выполняем команду:

  
Код: bash
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable"| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Во время выполнения терминал попросит подтвердить выполнение операции. Нажимаем Enter.

5. В очередной раз обновляем индексы пакетов

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

Код: bash
sudo apt update

6. Проверяем репозиторий

Убедимся, что инсталляция будет осуществлена из нужного нам репозитория. Выполняем следующую команду:
 
Код: bash
apt-cache policy docker-ce

Вывод:

Image3

В зависимости от выхода новых версий Docker вывод может иметь другой вид. Главное убедиться, что установка будет осуществляться из репозитория докера.

7. Устанавливаем докер

После осуществление всех манипуляций с репозиториями можно перейти непосредственно к установке:

Код: bash
sudo apt install docker-ce -y

После выполнения команды начнется установка Докера.

Убедимся в успешности установки, проверив статус в системе:

Код: bash
sudo systemctl status docker

Вывод:

Image1

Как видим, всё в порядке: служба Docker имеет статус Active(Running).
Ubuntu 22.04 — Установка Docker Compose

Docker Compose — это инструмент Докера, предназначенный для управления большим количеством контейнеров. Он используется в проектах, в которых используется много контейнеров, которые должны работать вместе как единое целое. Вручную управлять этим процессом затруднительно. Весь процесс управления описывается в рамках одного YAML-файла: он содержит настройки и конфигурацию всех контейнеров и приложений в них.

Есть несколько способов установить Docker Compose. Мы рассмотрим два из них: установку из репозитория ОС, а также способ установить последнюю версию вручную.
Установка с помощью apt-get

Если для вас установка именно последней версии не является принципиальным моментом, то установка можно осуществить из репозитория Ubuntu. Для этого выполняем следующую команду:

Код: bash
  
sudo apt-get install docker-compose

Ручная установка

Переходим в репозиторий на GitHub и находим номер версии новейшего релиза (Latest).

На момент обновления статьи Latest-версия Docker Compose для установки на Ubuntu 22.04 — v2.38.2. Загрузим её:

 
Код: bash
sudo curl -L "https://github.com/docker/compose/releases/download/v2.38.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

В команде с помощью параметров $(uname-s) и $(uname -m) автоматически учитываются характеристики системы и её архитектура. После окончания загрузки изменим права доступа скачанного файла:

Код: bash
sudo chmod +x /usr/local/bin/docker-compose
Заключение

В рамках этого материала мы рассмотрели установку Docker на Ubuntu 22.04, а также несколько путей установки Docker Compose. Для своих экспериментов и практической деятельности вы можете арендовать облачный сервер на Timeweb Cloud. А если вы уже работаете с контейнерами и рассматриваете способы их оркестрации, то у Timeweb Cloud есть сервис Managed Kubernetes, который поможет вам автоматизировать управление контейнерами.
#2
Proxmox / Перенос виртуальной машины с г...
Последний ответ от George - Май 13, 2025, 04:47
В жизни бывает, когда сталкиваешься с тем, что раньше никогда не приходилось делать. Вот и я столкнулся с proxmox. Году в 2021 я его попробовал, развернул 3 ноды, поднял на них 11 windows. Но при попытке выключить ноду, мою витруалку не мигрировало, как в vmware, а выключило и включило на другой ноде. После этого я слегка потерял интерес к данной системе. Но жизнь снова столкнула нас. Нашел в инете статью и сохранил себе

Мы рассмотрим один из способов переноса виртуальной машины с гипервизора VMware в Proxmox — экспорт шаблона ovf с последующим его импортом на новый гипервизор. Для выполнения задачи будет использоваться утилита ovftool, которую мы установим на хост Proxmox.

Подробнее про миграцию серверов в Proxmox можно почитать на официальном сайте гипервизора.


Установка ovftool

Утилита ovftool нужна для экспорта виртуальной машины VMware в шаблон ovf. Она может быть установлена простой распаковкой архива в любой каталог компьютера или сервера. Мы будем устанавливать ovftool на гипервизор Proxmox.

Первым делом переходим на страницу загрузки утилиты и копируем ссылку на последнюю версию архива:
скачать естественно нельзя, я приложу файл, скачанный мной в мае 2025
Копируем ссылку для скачивания архива ovftool

Используя данную ссылку, загружаем архив, подключившись к Proxmox по SSH:

Загружаем соответственно, через winscp, поскольку нельзя скачать и с proxmox тоже

Код: bash
curl -sOL https://vdc-download.vmware.com/vmwb-repository/dcr-public/2ee5a010-babf-450b-ab53-fb2fa4de79af/2a136212-2f83-4f5d-a419-232f34dc08cf/VMware-ovftool-4.4.3-18663434-lin.x86_64.zip

Распаковываем скачанный архив:

Код: bash
unzip VMware-ovftool-*.zip


Переносим распакованный каталог в папку /opt:

Код: bash
mv ovftool /opt/

ovftool установлен. Можно переходить к экспорту/импорту машины.
[нет. Надо еще права задать на исполнение. Я через winscp дал из всей папке[/i]

Перенос виртуальной машины
Синтаксис для экспорта виртуальной машины следующий:

Код: bash
/opt/ovftool/ovftool vi://<user>:<password>@<vm_host>/<vm_folder>/<vm_name> <path/to/export>

* где:

user — имя пользователя, под которым мы подключаемся к гипервизору.
password — пароль пользователя. Если не задать, то будет запрошен интерактивно.
vm_host — имя гипервизора, с которого мы будем экспортировать виртуальную машину.
vm_folder — каталог, в котором находится виртуальная машина.
vm_name — имя виртуальной машины.
path/to/export — путь, где будет сохранен каталог, в котором будет экспортирован шаблон выгруженной виртуальной машины.
Предположим, что нам нужно перенести виртуальную машину win11 с гипервизора esxi1.cloud-life.site. Команда будет такой:
Код: bash
/opt/ovftool/ovftool vi://root@esxi1.cloud-life.site /win11 ./

* импорт будет выполнен в текущий каталог, где мы находимся при выполнении команды ovftool. В нем будет создан каталог по имени машины (в нашем случае, win11), а в нем будут размещены файлы экспортированной машины.

ЦитироватьУ команды ovftool есть много полезных опций. Наиболее полезны noSSLVerify и powerOffSource:

/opt/ovftool/ovftool --noSSLVerify --powerOffSource vi://root@esxi1.cloud-life.site/win11 ./

* noSSLVerify — не выполняет проверку сертификата. Удобно, если у нас самоподписанный сертификат на хосте vmware. powerOffSource — автоматически выключит виртуальную машину, если она включена (включенную машину нельзя экспортировать).

Начнется процесс экспорта-импорта. Он займет какое-то время — просто ждем. Как было сказано выше, в текущем каталоге будет создана папка с именем переносимой виртуальной машины.

Теперь можно создать новую виртуальную машину на Proxmox из шаблона ovf. Синтаксис следующий:
Код: bash
qm importovf <VMID> ./<vm_name>/<vm_name>.ovf <pve_storage>

* где:

<VMID> — идентификатор для создаваемой виртуальной машины (должен быть уникальным для гипервизора или его кластера).
./<vm_name>/<vm_name>.ovf — путь до выгруженного ovf файла.
<pve_storage> — имя хранилища Proxmox.
Например:

Код: bash
qm importovf 333 ./win11/win11.ovf ssd1

* в данном примере будет создана виртуальная машина с идентификатором 333 на хранилище ssd1.

Готово. Перенос виртуальной машины из VMware в Proxmox по простому сценарию выполнен.

Действия после переноса
После того, как у нас все получилось и виртуальная машина создана на гипервизоре Proxmox, рекомендую выполнить удаление гостевой утилиты vmware и установить гостевую систему Proxmox. Также нам понадобится настроить сеть.

Добавление сетевого адаптера
Импортированная виртуальная машина будет создана без сетевого интерфейса. Его проще всего добавить в веб-инструменте управления Proxmox.

Для этого переходимо к созданной машине - Hardware - Add - Network Device.

Смена утилит гостевой операционной системы
Нам необходимо сначала удалить утилиту для VMware, после установить и запустить утилиту qemu.

Удаление гостевой утилиты VMware
Как правило, устанавливается либо родная утилита, либо open-vm-tools. В зависимости от этого, наши действия будут различаться.

1. Для удаления родной утилиты достаточно ввести команду:

Код: bash
/usr/bin/vmware-uninstall-tools.pl

Если система вернет ошибку, то переходим ко второму варианту.

2. Сначала остановим службу vmtoolsd:
Код: bash
systemctl disable vmtoolsd --now

После удалим open-vm-tools. В зависимости от используемой системы это выполняется разными командами.

а) Deb (Ubuntu / Debian / Astra Linux):

Код: bash
apt purge open-vm-tools

б) RPM (Rocky Linux / РЕД ОС / CentOS):

Код: bash
yum erase open-vm-tools

Установка гостевой утилиты Proxmox (qemu)
В зависимости от типа Linux команды будут отличаться.

а) DEB-based (Ubuntu / Debian / Astra Linux):

Код: bash
apt update
Код: bash
apt install qemu-guest-agent
б) RPM (Rocky Linux / РЕД ОС / CentOS):

Код: bash
yum install qemu-guest-agent

Установка завершена.

Для запуска сервиса выполняем:
Код: bash
systemctl enable qemu-guest-agent --now

В сводке виртуальной машины мы теперь можем увидеть информацию об IP-адресе, которая получена при помощи гостевого агента.

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

Код: bash
qm template 333
На этом моменте я перестал читать, и удивился, почему не грузится. Решение простое - тип контроллера устанавливаем VmwareParavirtualх. Другой вариант - ниже, я не пробовал

Решение возможных проблем
Рассмотрим в данном разделе проблемы, с которыми столкнулся я.

Dracut: /dev/disk/by-uuid does not exist
Система не грузится на импортированной виртуальной машине, выдавая ошибку загрузки. Сообщения могут быть разные, например:

dracut warning: /dev/disk/by-uuid/xxxx does not exist

Причина: в перенесенной системе нет нужных драйверов для дискового контроллера, как правило, scsi.

Решение: мы можем изменить настройку виртуальной машины на использование контроллера sata. Как правило, это решает проблему и позволяет загрузить виртуальную машину.

Изменения нужно внести в конфигурационном файле виртуальной машины

Код: bash
vi /etc/pve/qemu-server/<VMID>.conf

Необходимо заменить scsi0 на sata0.

Это можно сделать одной командой sed. Например, для нашей перенесенной машины:

Код: bash
sed -i 's/scsi0/sata0/' /etc/pve/qemu-server/333.conf

#3
mysql (Mariadb) / Создание БД и удаленного польз...
Последний ответ от George - Апр. 30, 2025, 09:19
my.cnf (my.ini on windows)
#Replace xxx with your IP Address
bind-address        = xxx.xxx.xxx.xxx
Then:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
Then:
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
Depending on your OS, you may have to open port 3306 to allow remote connections.


firewall-cmd --zone=public --add-port=3000/tcp --permanent

Because of your password. You can see password validate configuration metrics using the following query in MySQL client:
SHOW VARIABLES LIKE 'validate_password%';
The output should be something like that :
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
Now that the rules for a valid password are clear, you could chose a valid password.
To check the strength of the password you chose, use the VALIDATE_PASSWORD_STRENGTH() function, for example:
SELECT VALIDATE_PASSWORD_STRENGTH('weak');
+------------------------------------+
| VALIDATE_PASSWORD_STRENGTH('weak') |
+------------------------------------+
|                                 25 |
+------------------------------------+
SELECT VALIDATE_PASSWORD_STRENGTH('lessweak$_@123');
+----------------------------------------------+
| VALIDATE_PASSWORD_STRENGTH('lessweak$_@123') |
+----------------------------------------------+
|                                           50 |
+----------------------------------------------+
SELECT VALIDATE_PASSWORD_STRENGTH('N0Tweak$_@123!');
+----------------------------------------------+
| VALIDATE_PASSWORD_STRENGTH('N0Tweak$_@123!') |
+----------------------------------------------+
|                                          100 |
+----------------------------------------------+
Alternatively, you can lower the password policy level or change the validation rules, for example:
SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.number_count = 0;


sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Copy
Search for a line that begins with bind-address and set its value to the IP address on which a MySQL server should listen.

By default, the value is set to 127.0.0.1 (listens only in localhost).

In this example, we'll set the MySQL server to listen on all IPv4 interfaces by changing the value to 0.0.0.0

mysqld.cnf
bind-address           = 0.0.0.0
# skip-networking
Copy
If there is a line containing skip-networking, delete it or comment it out by adding # at the beginning of the line.

In MySQL 8.0 and higher, the bind-address directive may not be present. In this case, add it under the [mysqld] section.

Once done, restart the MySQL service for changes to take effect. Only root or users with sudo privileges can restart services.

To restart the MySQL service on Debian or Ubuntu, type:

sudo systemctl restart mysql
Copy
On RedHat based distributions like CentOS to restart the service run:

sudo systemctl restart mysqld
Copy
Granting Access to a User from a Remote Machine
The next step is to allow access to the database to the remote user.

Log in to the MySQL server as the root user by typing:

sudo mysql
Copy
If you are using the old, native MySQL authentication plugin to log in as root, run the command below and enter the password when prompted:

mysql -uroot -p
Copy
From inside the MySQL shell, use the GRANT statement to grant access to the remote user.

GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Copy
Where:

database_name is the name of the database that the user will connect to.
user_name is the name of the MySQL user.
ip_address is the IP address from which the user will connect. Use % to allow the user to connect from any IP address.
user_password is the user password.
For example, to grant access to a database dbname to a user named foo with password my_passwd from a client machine with IP 10.8.0.5, you would run:

GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Copy
Configuring Firewall
The last step is to configure your firewall to allow traffic on port 3306 (MySQL default port) from the remote machines.

Iptables
If you are using iptables as your firewall, the command below will allow access from any IP address on the Internet to the MySQL port. This is very insecure.

sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Copy
Allow access from a specific IP address:

sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
Copy
UFW
UFW is the default firewall tool in Ubuntu. To allow access from any IP address on the Internet (very insecure), run:

sudo ufw allow 3306/tcp
Copy
Allow access from a specific IP address:

sudo ufw allow from 10.8.0.5 to any port 3306
Copy
FirewallD
FirewallD is the default firewall management tool in CentOS. To allow access from any IP address on the Internet (very insecure) type:

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
CopyCopy
To allow access from a specific IP address on a specific port, you can either create a new FirewallD zone or use a rich rule. Well create a new zone named mysqlzone:

sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
CopyCopyCopyCopyCopy
Verifying the Changes
To verify that the remote user can connect to the MySQL server, run the following command:

mysql -u user_name -h mysql_server_ip -p
Copy
Where user_name is the name of the user you granted access to, and mysql_server_ip is the IP address of the host where the MySQL server runs.
#4
Создаешь vmkernel например vmk1 и через SSH и esxcli такой командой задаешь адрес и шлюз:
Код: bash
esxcli network ip interface ipv4 set -i vmk1 -t static -g 10.10.10.1 -I 10.10.10.5 -N 255.255.255.0
-g gateway, -I address, -N netmask значения свои подставишь.
#5
mikroTik / От: Настройка IKEv2 mikrotik
Последний ответ от George - Апр. 15, 2025, 12:58
Возможные проблемы и их решения:
Если компьютер в домене, и в домене есть ЦС, т.е. на компе есть сертификат компа, то, поскольку в windows нельзя выбрать сертификат для vpn соединение не устанавливается, т.к. отсылается не верный сертификат. Решается вот такой командой в powershell
Код: bash
Set-VpnConnection -Name "My VPN Connection" -MachineCertificateIssuerFilter 'C:\mycerts\cert_export_MikrotikIKEv2-CA.crt'
Также действуем при наличии не одного IKEv2 подключения. НО!
Это не помогло в моем случае - в логах микротика все норм, подключение установлено, а вот в винде мне писало "неприемлемые учетные данные IKE"
решение - добавляем в реестр ключ:
Код: bash
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters" /v DisableIKENameEkuCheck /t REG_DWORD /d 1
#6
Сетевое оборудование / Доступ к web интерфейсу cataly...
Последний ответ от George - Март 27, 2025, 06:12

Заходим в консоль и дальше configure terminal.

Включим HTTP:
Код: bash
ip http server
Код: bash
ip http authentication local

При необходимости отключить HTTP и HTTPS можно так:
Код: bash
no ip http server
Код: bash
no ip http secure-server
Добавим пользователя если его нет:

Код: bash
username NAME privilege 15 secret PASSWORD

Если необходимо разрешить доступ к HTTP только определенным IP, то посмотрим какие правила есть на коммутаторе:

Код: bash
exit
Код: bash
show access-list
Код: bash
show ip access-lists
Код: bash
configure terminal

Если необходимого правила нет, то создадим:

Код: bash
access-list 10 permit 192.168.1.22
Код: bash
access-list 10 permit 192.168.3.10

Применим правило к HTTP:


Код: bash
ip http access-class 10

Отменить можно так:

Код: bash
no ip http access-class 10
Если необходимо указать максимальное количество попыток подключений:

Код: bash
ip admission max-login-attempts 5
Код: bash
show ip admission configuration

Выйдем их режима конфигурирования и сохраним конфигурацию:

Код: bash
exit
Код: bash
write
#7
Сетевое оборудование / Как правильно обновить IOS в ф...
Последний ответ от George - Март 26, 2025, 06:07
Итак, у вас есть файл с расширением tar, содержащий свежий IOS, который вы хотите использовать в своих коммутаторах. Процедура обновления не представляет никакой сложности, но хочется сразу предупредить о том, что восстановление коммутатора без рабочего IOS, при отсутствии надлежащего опыта, представляет собой более сложный и запутанный процесс, чем само обновление. Поэтому, нижеследующие действия производите на свой страх и риск.
Чтобы передать файл с IOS на коммутатор, вам понадобиться рабочий tftp-сервер, однако его настройка выходит за рамки данной статьи. Разместите tar-файл в рабочем каталоге сервера, после чего убедитесь, что файл имеет верную контрольную md5 сумму. Многие системные администраторы игнорируют сверку контрольных сумм по совершенно непонятным причинам. Эта процедура отнимает совсем немного времени, зато позволяет избежать больших проблем в будущем. И это время совершенно не сравнимо со временем восстановления коммутатора после заливки туда битого IOS-а.
Зайдите на коммутатор и выполните команду dir flash:, чтобы убедиться, что у вас имеется достаточно места на флеш-карте.
cisco #dir flash:
Directory of flash:/
    2  -rwx        9392   Dec 8 2010 21:22:46 +02:00  private-config.text
  547  -rwx        3096   Mar 1 1993 02:00:39 +02:00  multiple-fs
    4  -rwx        9148   Dec 8 2010 21:22:46 +02:00  config.text
    5  drwx         512   Mar 1 1993 02:09:03 +02:00  c2960-lanlitek9-mz.122-44.SE6
27998208 bytes total (18006528 bytes free)
Возможно, вам понадобиться удалить старый IOS, чтобы освободить место для нового. Сделать это можно так:
cisco#delete /force /recursive flash:c2960-lanlitek9-mz.122-44.SE6
Далее произведите загрузку и распаковку нового IOS-са на коммутатор:
cisco #archive tar /xtract tftp://c2960-lanlitek9-tar.122-52.SE.tar flash:
Loading c2960-lanlitek9-tar.122-52.SE.tar from 10.10.10.10 (via Vlan1): !
c2960-lanlitek9-mz.122-52.SE/ (directory)
c2960-lanlitek9-mz.122-52.SE/html/ (directory)
extracting c2960-lanlitek9-mz.122-52.SE/html/stylesheet.css (22059 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/ajax.js (28348 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/title.js (577 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/sorttable.js (48234 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/toolbar.js (6383 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/ip.js (3500 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/appsui.js (1749 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/helpframework.js (865 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/layers.js (1616 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/sitewide.js (12467 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/graph.js (39650 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/framework.js (24955 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/combo.js (9353 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/forms.js (13756 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/converter.js (4829 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/fpv.js (41015 bytes)!
extracting c2960-lanlitek9-mz.122-52.SE/html/more.txt (62 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/graph_dash.js (18865 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/telnet.shtml (6642 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/bottombanner.htm (4108 bytes)
...
extracting c2960-lanlitek9-mz.122-52.SE/c2960-lanlitek9-mz.122-52.SE.bin (7731596 bytes)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
extracting c2960-lanlitek9-mz.122-52.SE/info (423 bytes)
extracting info (106 bytes)
[OK - 11448320 bytes]
cisco#
Теперь необходимо произвести проверку загруженного образа, чтобы убедиться в его корректности:
cisco#verify /md5 flash:c2960-lanlitek9-mz.122-52.SE/c2960-lanlitek9-mz.122-52.SE.bin
.............................Done!
verify /md5 (flash:c2960-lanlitek9-mz.122-52.SE/c2960-lanlitek9-mz.122-52.SE.bin) = 4568ddfab7a957c62821e0011b3b4ed0
cisco#
Остался последний шаг: перезагрузить коммутатор и убедиться что все работает:
cisco#reload
Proceed with reload? [confirm]
Как вы видите, процедура обновления IOS довольно проста и незатейлива. Однако, хотелось бы ещё раз подчеркнуть, что она небезопасна, особенно, если вы удаляете старый IOS перед заливкой нового. Если вы работаете с удаленным коммутатором, то вы должны быть железно уверены, что канал связи будет работать стабильно на протяжении всей процедуры обновления. В противном случае вас ждет поездка и обучение восстановлению коммутаторов в полевых условиях.

Еще не пробовал, просто сохранил себе инструкцию. Сразу скажу, что места, скорее всего, не хватит. И есть более простой способ, через tftp, выложу ниже. Это, скорее, способ для "поднятия"
#8
Узнать текущую версию из командной строки ESXi (предварительно нужно разрешить SSH доступ к хосту ESXi):

Код: bash
vmware -v

VMware ESXi 8.0.2 build-22380479
получить номер билда esxi

В нашем примере на хосте установлена версий ESXi 8.0 Update2.

Датe установки (обновления) образа ESXi можно узнать командой:

Код: bash
esxcli software vib list | grep 'Install\|esx-base'

esxcli дата обновления образа esxi

Вы можете получить обновлений для хоста VMware ESXi двумя способами:

Онлайн установка обновления на хосте ESXi
Сначала рассмотрим онлайн обновление ESXi. Подключить к консоли ESXi и проверьте версию используемого профиля.

Код: bash
esxcli software profile get

В нашем примере используется кастомный дистрибутив ESXi 8.0.2 от HPE (HPE-Custom-AddOn_802.0.0.11.5.0-6).

esxcli узнать текущий профиль образа esxi

Разрешите ESXi хосту доступ в Интернет, открыв правило в файероле:

Код: bash
esxcli network firewall ruleset set -e true -r httpClient

Выведите список доступных образов в VMware online depot:

Код: bash
esxcli software sources profile list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

спосок обновлений в online depot vmware esxi

В данном случае последняя доступный образа для нашей версии ESXi — ESXi-8.0U2b-23305546-standard.

Переведите хост в режим обслуживания:

Код: bash
esxcli system maintenanceMode set --enable=true
Запустите онлайн обновление вашего образа ESXi до указанного билда:

Код: bash
esxcli software profile update -p ESXi-8.0U2b-23305546-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

В моем случае появилось предупреждение:

Hardware precheck of profile ESXi-8.0U2b-23305546-standard failed with warnings: <CPU_SUPPORT OVERRIDEWARNING: The CPUs on this host are not supported by ESXi 8.0.2. You can override and force install, but it is not officially supported nor recommended. Please refer to KB 82794 for more details.
esxcli обновления ошибка hardware The CPUs on this host are not supported

В данном случае версия CPU на хосте не поддерживается в новом билде. Чтобы игнорировать это предупреждение, нужно добавить параметр —no-hardware-warning в предыдущую команду.

После окончания обновления образа ESXi появится сообщение:

The update completed successfully, but the system needs to be rebooted for the changes to be effective.
А также список установленных пакетов VIB.

Отключите HTTP доступ в интернет:

Код: bash
esxcli network firewall ruleset set -e false -r httpClient

Перезагрузите ESXi сервер:

Код: bash
Reboot

Отключите режим обслуживания:

Код: bash
esxcli system maintenanceMode set --enable=false

Проверьте, что версия ESXi была обновлена:

Код: bash
esxcli software profile get

образ esxi обновлен

Если онлайн обновление ESXi невозможно, или при обновлении из командной строки появляется ошибка Got no data from process: LANG=en_US.UTF-8, нужно выполнить офлайн установку обновления.
#9
Вот полный текст ошибки:
A general system error occurred: Download patch definitions task failed while syncing depots. Error: 'integrity.fault.MetadataDownloadFailure: Cannot download patch definition

Надоела она мне в какой-то момент, и я начал шерстить интернет. На оф сайте нашел:

Процесс сброса базы данных VMware Update Manager на VCSA 6.5, 6.7, 7.0 или 8.0:
Внимание: Сброс базы данных Update Manager является разрушительной задачей. Пользовательские базовые параметры (но не кластерные), пользовательские настройки загрузки и импортированные вручную исправления/ISO будут удалены, и их необходимо будет повторно установить после сброса.
Перед выполнением описанных ниже действий, пожалуйста, сделайте резервную копию или автономный снимок (в выключенном состоянии) серверного устройства vCenter. Если vCenter является частью настройки репликации в связанном режиме, пожалуйста, сделайте резервную копию/снимок всех реплицирующихся узлов.
Кроме того, пожалуйста, обратите внимание на все пользовательские настройки в диспетчере обновлений, такие как настройки прокси-сервера, сторонние URL-адреса для загрузки, настраиваемые базовые параметры и т.д., прежде чем продолжить.
 

 Подключитесь к серверу vCenter Server Appliance 6.5/6.7/7.0/8.0 через SSH с правами root
 Запустите команду shell, чтобы переключиться на оболочку BASH:

 
Код: bash
shell

 Остановите службу VMware Update Manager:

 
Код: bash
service-control --stop vmware-updatemgr

В зависимости от версии vCenter, выполните одну из следующих команд, чтобы сбросить базу данных VMware Update Manager:
 В vCenter Server Appliance 6.5:

Код: bash
/usr/lib/vmware-updatemgr/bin/updatemgr-util reset-db

 В vCenter Server Appliance 6.7/7.0/8.0:

Код: bash
python /usr/lib/vmware-updatemgr/bin/updatemgr-utility.py reset-db

 Выполните следующую команду, чтобы удалить содержимое хранилища исправлений VMware Update Manager:

Код: bash
rm -rf /storage/updatemgr/patch-store/*

 Запустите службу VMware Update Manager.:

Код: bash
service-control --start vmware-updatemgr

Примечание: Для просмотра изменений в среде может потребоваться выход из системы и повторный доступ к веб-клиенту vSphere.

Примечание: Для сред vSAN это также приведет к удалению базовых параметров vSAN по умолчанию. Эти базовые параметры создаются автоматически при изменении конфигурации vSAN, например, при добавлении/удалении хоста/диска или обновлении базы данных HCL. Кластер vSAN все еще можно обновлять без базовых параметров vSAN по умолчанию.
#10
VMWARE всё о виртуализации, тонкий тюнинг / Обновление VCSA
Последний ответ от George - Март 13, 2025, 12:24
Доброго дня, уважаемые подписчики и читатели. Решил обновить vcenter с 7 на 8 версию, пошарил по паутине, нашел, обновил, и зашел в appliance managment (https://ip_of_your_vcenter:5480) (этот адрес нам еще понадобится). Проверил обновления, попробовал установить.. (vcenter был отправлен через vpn, только скорость этого vpn 1 mbit) 2 дня висел мой vcenter на 22 % скачки и мне это надоело. Начал искать варианты offline обновления, нашел. Скачал и iso и depot.zip. Поиски в интернете подсказали варианты, и я, как обычно собрал их в правильном порядке, после пары дней попыток.
Первое. Установочный iso нужной версии нам не подходит от слова совсем. С него нельзя обновиться никак. Даже запустив install с него, падает в самом начале, говоря, что нельзя обновиться с 8 на 8 версию, эта установка только для обновления с 6.7 и 7 версии
Второе. Обновиться через web сервер мне не удалось, но, после того, как я скачал .iso обновления (да, для обновления свой .iso), и наконец попробовал с него - также получал ошибку (как таковой ошибки не было, просто первая команда тихо прекращала работать, а через ui не проходил pre-check по таймауту, также, как и при попытке обновления с web сервера). Помогла банальная перезагрузка

итак, нам надо залить .iso с обновлением на datastore (доступный для виртуалки с vcenter), далее в свойствах виртуального cd указываем datastore file и выбираем закачанный нами файл, ставил галочку connect.

подключаемся по ssh к vcenter, и набираем команду:

Код: bash
software-packages stage --iso --acceptEulas

без --acceptEulas начнет отображать соглашение, которое надо листать нажимая enter, и в конце, как было в одной из инструкций, набрать yes.
Дальше в интернете предлагается набрать

Код: bash
software-packages list --staged

типа покажет, что запланировало, но никакой нужной инфы там нет
И команда установки

Код: bash
software-packages install --staged

У меня пока еще идет установка) Результат напишу
🡱 🡳

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