Всегда говори да!

«Обычно люди обращаются за советом, — говорил Атос, — только для того, чтобы не следовать ему, а если кто-нибудь и следует совету, то только для того, чтобы было кого упрекнуть впоследствии.»

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

  1. 2009-й год, я работаю обычным системным администратором на заводе. Windows, Exchange и немножко ДрВеба с Симантеком :).
    Тут мне предлагают стать ответственным за администрирование коммутаторов, маршрутизаторов и брандмауэров Cisco. В качестве бонуса еще и немного учат!
    Я, конечно же, соглашаюсь. Коллега из соседнего отдела сомневается и отказывается — зачем ему дополнительный головняк?
  2. 2011 год, в другом месте мне предлагают взяться за администрирование системы MS Lync Server 2010. Тоже учат, ага…
    Там же ближе к 2017 — внедрить систему резервного копирования NetBackup.

Результатом первой возможности стало более глубокое понимание работы сети и сертификат CCNA (хотя, поработав в интернет-провайдере, я осознал — насколько же это были базовые знания). Пару раз помогало тыкать носом сетевиков в их косяки.
Результатом второй и третьей — приличные знания по обеим системам в качестве T-shape специалиста. В результате, в 2020м меня брали на центрального администратора Commvault с хорошим окладом без практического опыта по нему 😉

Я не могу рассказать о текущем стеке, но он не имеет ничего общего с привычным мне VMware/Microsoft. Когда-нибудь я расскажу и эту историю…

AWS SAA-C03

Наверное, многие из вас видели этот мем про девопс и зарплату в 300кк. Зарплаты девопс-инженеров с hh.ru пробивали мой воображаемый потолок по зарплате в несколько раз, поэтому: настала пора перемен. Пора закопать VMware и изучить кубернетис.

Читать далее «AWS SAA-C03»

Контейнеры — стейтлес, говорили они

Возникло давеча у меня желание запустить контейнер SonarQube.

В гугле меня не забанили, поэтому быстренько была найдена ссылка по запуску  контейнера за пару минут.

Я взял оттуда команду для запуска контейнера:

Запустил контейнер, сменил пароль пользователя admin, зарегистрировал Gitlab и добавил репозиторий с кодом в качестве проекта.

Затем я остановил контейнер:

Когда мне снова потребовался контейнер SonarQube, я запустил его командой

Каково же было мое удивление, когда контейнер запустился со всеми изменениями (пароль администратора и прочее).

Хочу воспользоваться подсказкой «Помощь зала»: как вы считаете, уважаемые читатели — почему контейнер после перезапуска сохранил свое состояние?

Опрос CDP/LLDP с ESXi через PowerShell/Python

Однажды у вас может возникнуть желание составить таблицу портов коммутаторов, к которым подключены ваши хосты.

Если у вас «гомогенное» окружение, состоящее из коммутаторов Cisco, то заморачиваться не нужно совсем (CDP настроен в Virtual Switch Standard/Distributed Virtual Switch по умолчанию).

Но если в окружении не только Cisco, то вам необходимо немного сильнее напрячься:

  • использовать только распределенные коммутаторы;
  • включать на них поддержку LLDP;
  • с удивлением обнаружить, что в API опрос CDP и LLDP происходит по-разному.

Читать далее «Опрос CDP/LLDP с ESXi через PowerShell/Python»

Заметочка про Custom Attributes

Потребовалось проставить Custom Attribute для виртуальных машин.

На помощь, как обычно, пришел Google и подсказал следующее решение:

PowerShell, SCSILunPath и Datastore Name

Обратился ко мне за советом постоянный читатель: помоги, говорит, с моим iSCSI-массивом NetApp. Пытаюсь вывести Get-SCSILunPath, так там ни имени датастора, ни IP-адреса «таргета» в SanId нет 🙁

Посмотрел — и действительно так: в отличие, например, от Huawei, NetApp не выводит IP-адрес IQN-Target в выводе атрибутов Get-SCSILunPath. Да и привязать CanonicalName вида naa.thebeststoragearray к датастору с первого взгляда не удается…

Читать далее «PowerShell, SCSILunPath и Datastore Name»

PowerShell, REST и Excel

Обнаружили проблему: командлет Get-OrgVdcNetwork почему-то не выводит часть сетей orgVDC. Опытным путем выяснили, что ему не нравятся Shared-сети, то есть сети доступные из нескольких orgVDC.

Для решения проблемы решили воспользоваться REST API от vCloud Director.

А чтобы было не скучно, решили вывод сетей делать сразу в файл Excel, чтобы уменьшить количество ручной работы.

Оригинал PoSH-скрипта я положил на гитхаб, тут его приведу для наглядности (хотя с отступами при копипасте беда).

Скрипту понадобится список vCloud Director’ов в файле vcd_list.txt.

  1. скрипт запрашивает учетные данные для подключения к vCD;
  2. скрипт считывает список vCloud Director’ов из текстового файла;
  3. создает Excel-файл, а на нем одноименный лист по каждому vCD;
  4. заполняет список сетей по vCD на листе;
  5. сохраняет результат в файле orgvdcnet.xlsx

Что стоило бы доделать — проверку на наличие установленного Excel (например, тут — $ExcelApplication = new-object -comobject excel.application). Если Excel нет, то делать вывод в CSV-файлы по старинке…

Как уменьшить размер базы NTDS.DIT в четыре раза

Спойлер — никак.

Как-то мне довелось админить большой домен на несколько тысяч пользователей. После того как база NTDS.DIT выросла до 14ГБ, поднятие нового контроллера домена без использования функционала Install From Media (IFM) стало занимать несколько часов.

Я создал новый тестовый домен, создал в нем сходное количество пользователей, групп и компьютеров. Назначил каждому пользователю картинку на 100к и…

Получил размер базы меньше 1ГБ. Это «Ж-ж-ж» неспроста! — подумал я и обратился в MS Premier Support.

Читать далее «Как уменьшить размер базы NTDS.DIT в четыре раза»

VEBA и Python

Уже пару лет Уильям Лам развивает проект под названием vCenter Event Broker Appliance (VEBA), позволяющий выполнять скрипт при наступлении какого-либо события у «Event Provider». В качестве Event Provider может выступать как vCenter, так и другие системы. В текущей версии 0.7.1 VEBA умеет выступать даже в качестве Webhook-системы для других систем. В качестве языков поддерживаются Python, Go и PowerShell.

Развертывание апплайнса выполняется стандартно. Из обязательных настроек тут только указание адреса vCenter (если вам интересен он), логин и пароль на чтение (для считывания событий). Опционально можно указать учетную запись для регистрации веб-плагина управления к VEBA, но у меня это не взлетело 🙂

Читать далее «VEBA и Python»

Python и ESXcli

Если вы захотите собирать информацию о версии драйвера и прошивки сетевого интерфейса ESXi, то можете воспользоваться пакетом от VMware, который нужно поставить на Linux. Есть отдельные версии для 7.0 и 6.7.

После этого Вам потребуется:

  1. подключить к Python библиотеку Subprocess;
  2. если vCenter использует недоверенный сертификат, то вам потребуется игнорировать эту ошибку. Один из вариантов — указать в команде отпечаток (thumbprint) сертификата vCenter, к которому подключены сервера ESXi (оптимально собирать информацию через него). Можно выполнить «esxcli -s <vcenter> -u <vcenter_login> -p <vcenter_password> -h <esxi>», чтобы получить отпечаток.

Для вывода списка сетевых адаптеров с используемым драйвером и красивым названием воспользуемся командой esxcli -s <vcenter> -u <vcenter_login> -p <vcenter_password> -h <esxi> --thumbprint <vcenter_thumbprint> network nic list
Для вывода подробной информации по адаптеру, из которой можно взять версию драйвера и прошивки воспользуемся похожей командой ESXCLI network nic get -n vmnic7, например.

Вот пример скрипта, который делает «что-то похожее»:

Читать далее «Python и ESXcli»