Исключение пакетов из операции в yum (RHEL)

Итогда нужнообновить пакеты, не трогая при этом например ядро или еще миллион охожих ситуаций, где надо исключить пакет из обработки.
Есть два способа.
1) Единоразово – когда запускаете yum, использовать опцию –exclude:
yum –exclude=package* update
yum –exclude=php* update
yum –exclude=*rrd* update
yum –exclude=kernel*,*snmp,perl* update
2) Добавить необходимые пакеты в исключения в конфигурационном файле /etc/yum.conf :
exclude=php* kernel*
Выглядеть это будет примерно так:
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
exclude=php* kernel*
Теперь эти пакеты исключатся из обработки любыми командами yum.

Как загрузиться в single-user режим с загрузчиком grub в Linux

Бывают ситуации, когда нужно включить/перезагрузить сервер в режиме single-user, в котором не загружаются драйвера и нет возможности работать в многопользовательском режиме – что-то вроде Безопасного режима Windows. Например, если на сервере не правильная сетевая конфигурация и он после включения сразу же будет конфликтовать с другими серверами по IP, то в single-user режиме сеть не поднимется и можно будет исправить конфигурацию.
Чтобы это сделать, необходимо при появлении загрузочного экрана Grub:

и во время отсчета нажать любую клавишу (кроме Enter), чтобы зайти в интерактивное меню. Важно не пропустить момент, т.к. таймаут по-умолчанию составляет 3 секунды, по истечении которых система загрузится в ядро и с параметрами по-умолчанию.
Далее выбираем нужный пункт (версию ядра) стрелками вверх, вниз и нажимаем [a] 
В конце строки параметров загрузки ядра добавляем пробел [Space] и опцию single
Нажимаем [Enter] чтобы загрузиться в нужное ядро с параметром single.
Источники:

  1. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/installation_guide/s1-rescuemode-booting-single

Oracle Linux 6: How to install specific Unbreakable Kernel (UEK) version

If you need to install specific unbreakable kernel (UEK) version for Oracle Linux 6.x you need to complete the following steps:
In this example we will use Oracle Linux 6.8 and our goal is to install 4.1.12-61.1.14 kernel version.
You need to edit /etc/yum.repos.d/public-yum-ol6.repo repository file and search there for UEKx record, where x is the linux release family (4 is the latest for now) and add ‘archive‘ to the path of repository, because by default repository contains only the most recent uek packages:

[public_ol6_UEKR4]
name=Latest Unbreakable Enterprise Kernel Release 4 for Oracle Linux $releasever ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/UEKR4/archive/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=$uekr4

Next you need to install correct packages (assuming that we need to build kernel modules in the future):
yum clean all
yum install kernel-uek-4.1.12-61.1.14.el6uek.x86_64 kernel-uek-devel-4.1.12-61.1.14.el6uek.x86_64 kernel-uek-headers.x86_64
Next, boot into the new kernel version.
Links:

  1. https://yum.oracle.com/oracle-linux-6.html – You can browse and take repository  address from the tab address bar for repository file.
  2. https://yum.oracle.com/oracle-linux-7.html

Развод от ООО Lifecell сотоварищи

В общем, новый старый развод от мобильных операторов со мной случился. В начале июня приходит мне смс, что вы мол подписаны на какой-то player18.top за 5 грн/день бла-бла чтоб отписаться позвоните/перейдите. Ну я смотрю, номера не оператора, думаю – да какой-то развод, позвоню, снимет бабки, а по ссылке вирус.
 
Оказался таки развод, но не такой, как я думал. Оно таки подписало, хотя я никогда о таком сервисе не слышал, в глаза не видел и ни на что не подписывался. Сожрало у меня 95 грн, т е всё, что было на счете.
 
Я ж, как и любой наверное “подвинутый пользователь”+, сначала начал гуглить. Нашел отзывы https://www.otzyvua.net/life/review-478197 – тут по ссылке детально описывают, как развод работает.
 
После пошел я разбираться в Центр обслуживания абонентов лайфселл. Мне там ничего внятного не смогли ответить, кроме “ставьте антивирус” и “не держите денег на счету”, “вирусы, черви, даркнет” (как-будто я домохозяйка и к айти не имею отношения), но хоть отписали от этой хрени.
 
Позвонил я дальше им в центр поддержки. Говорю мой, что за дела, что практически любой может влезть на мой мобильный счет и списывать оттуда деньги. Они отвечают, что это “авторизованный контент-провайдер”. Но в ЦОА мне говорили, что это вирус… Выходит, они авторизовывают вирусы? To cut long story shot, поставили они для моего номера блокировку всяческих подписок, хотя в ЦОА говорили, что такой функции нет.
 
Далее, я подумал, что может есть какой у них механизм фидбека и жалобы, начал на сайте lifecell онланй чат с представителем компании с целью оставить жалобу на этого контент провайдера. Историю переписки я тут ниже прикреплю, но если коротко их ответ был “я не я, и корова не моя – разбирайтесь сами с контент-провайдером, мы тут ни при чем и нам вообще насрать на своих клиентов, спасибо за звонок”. Кстати, операторша написала, что должна была быть СМС с кодом подтверждения при подписывании – ничего такого не было.
 
Отписали меня от этой подписки “третьей фирмы” работники самого лайфселла. Т. е. они в курсе и всё знают и скорее всего крышуют.
 
Вот сейчас сижу и думаю, что с этим делать. В полицию идти? Но ущерб на 95 грн, они наверное откажутся заниматься этим. Хотя это только у меня 95, а судя по отзывам, жертв этой аферы – десятки. Может в общество по защите прав потребителя или в новости какие пойти? Но законно на них давить в нашей банановой Украине не получится – по ссылке там чувак описывает, что если ты нажал капчу, то ты зная или не зная согласился на условия договора. А то что они эту картинку/ссылку/капчу подсунули мошенническим способом – никого не волнует в юридическом плане. Кстати, на сайте этого говноконтент-провайдера реквизитов нет никаких, кроме названия фирмы ООО “UMG”, которое может быть фейковое.
 
Я вот кстати, так и не могу вспомнить, как я на эту хрень подписался вообще. Вроде левых кратинок не нажимал. Кто что думает – пишите в комментарии.
 
Да, и осторожнее с капчами, всплывающими окнами, ссылками и картинками когда серфите с мобильного.
 
Сайты говноконтент-провайдера:
http://player18.top/
http://mob-help.net/

Скрин СМС прилагаю

также переписка с оператором:

Нижче наведено історію Вашої розмови з lifecell.
12:33:23, Представник lifecell: Добрый день, Евгений! Меня зовут Евгения.
12:33:48, Евгений: Здравствуйте. Хотел бы оставить жалобу на контент-провайдера player18.top
12:34:05, Евгений: Они мошенническим способом без моего согласия подписали меня на платный свой контент
12:34:53, Евгений: в службе поддержки сказали, что это "авторизованный контент-провайдер", в центре обслуживания абонентов рекомендуют установить антивирус. Но если это вирус, то почему он авторизован?
12:35:27, Представник lifecell: Передать жалобу на контент-провайдера возможность, к сожалению, отсутствует.
12:35:59, Представник lifecell: Я могу установить по номеру блокировку на активацию подобных услуг в интернете от контент-провайдеров.
12:36:11, Евгений: Да, установите пожалуйста
12:36:28, Представник lifecell: Хорошо. Я должна убедиться, что указанный номер сейчас у Вас. Телефон рядом с Вами?
12:36:33, Евгений: Да
12:36:49, Представник lifecell: Пожалуйста, укажите пароль, который поступил.
12:37:01, Евгений: 369
12:38:04, Представник lifecell: Евгений, на сколько вижу, то блокировка уже установлена по номеру.
12:38:25, Евгений: Это хорошо, но хотелось бы, чтобы вы передали мою жалобу администрации комапании
12:38:37, Представник lifecell: Такая возможность отсутствует.
12:39:03, Евгений: А как тогда защититься от подобных мошшенических действий? допустим, не мне а моим родственникам?
12:40:28, Представник lifecell: Все мобильные операторы сотрудничают с рядом контент-провайдеров, которые являются непосредственными поставщиками услуг – в данном случае ТОВ "Українська Мобiльна Група". Мобильный оператор не является прямым провайдером услуги, то есть, если была заказана услуга, она заказывается у самого контент-провайдера. Ваш баланс в таком случае выступает в роли источника тарификации. Если Вы желаете узнать подробнее об услугах и способе активации услуг, достаточно обратиться на горячую линию контент-провайдера 048 737 73 66 с 9:00 до 21:00 без выходных.
12:41:34, Представник lifecell: Так же по желанию можно установить ограничение с нашей стороны на активацию услуг контент-провайдеров.
12:41:39, Представник lifecell: Остались ли у Вас еще вопросы?
12:41:41, Евгений: Это я уже понял, но вот я не доволен действиями этого контент провайдера, который без моего ведома подписал меня на свои услуги. У вас же есть корпоративная репутация, этика, совесть в конце концов? Я хочу, чтобы ваша компания воздействовала на этого контент провайдера
12:42:09, Евгений: Причем, я поискал в интернете, у многих людей такая проблема с этим контент провайдером
12:42:17, Евгений: в августа 2017 года отзывы
12:42:30, Евгений: т е уже почти год они этим занимаются - разводят людей на деньги
12:42:35, Представник lifecell: По деталям активации и условий предоставления услуг рекомендую обращаться на линию поддержки этой компании.
12:42:42, Евгений: а ваш Лайфселл - получается - им способствует
12:43:15, Евгений: Ладно, тогда я оставлю негативные отзывы на лайфселл везде, где только можно и напишу в новости вместе с этой перепиской
12:43:29, Евгений: пускай страдает ваша репутация, раз совести нет
12:43:46, Евгений: (не ваша лично, а компании, естественно)
12:43:57, Евгений: Или дайте мне поговорить с администрацией
12:44:13, Представник lifecell: К сожалению, такая возможность отсутствует.
12:44:57, Представник lifecell: Возможно, у Вас остались другие вопросы?
12:44:58, Евгений: Т е вы признаете, что ваша компания не препядствует мошшеническим действиям этого контент-провайдера и негативные отзывы клиентов для вас не имеют смысла??
12:45:11, Евгений: ?*
12:45:28, Евгений: Я ваш клиент и я не доволен
12:46:19, Представник lifecell: Услуга контент-провайдера не подключается автоматически. Для того, чтобы сервис контент-провайдера подключился, необходимо: - пройти по баннеру или ссылке соответствующего контента; - ввести номер на отобразившейся странице; - ввести код, который указан на изображении; - ввести код, полученный в SMS.
12:46:36, Евгений: мне НЕ приходила СМС с кодом активации
12:46:57, Представник lifecell: Соответсвенно активация происходит после совершения абонентом какого-либо действия на сайте контент-провайдера.
12:47:30, Евгений: но я не совершал это действие намеренно, я про этого провайдера первый раз услышал из смс о том, что услуга уже подключена
12:47:42, Евгений: могу предоставить скриншот смс с мобильного телефона
12:48:03, Представник lifecell: Более детальная информация о подключении у нас отсутствует, уточняйте у контент-провайдера.
12:48:12, Представник lifecell: Остались ли у Вас еще вопросы?
12:48:33, Евгений: Ага, отлично. Вам значит всё равно, что ваших клиентов обманывают пользуясь вашими сервисами
12:49:25, Представник lifecell: Евгений, на Ваши вопросы были предоставлены ответы. В случае, если у вас отсутствуют другие вопросы, я буду вынуждена завершить наш диалог. Скажите, пожалуйста, есть у вас другие вопросы по услугам lifecell?
12:49:35, Евгений: Окей, будут отзывы, будут новости, и так далее. Have a nice day.

Cisco Mobility Anyconnect клиент не хочет подключаться из RDP

Если у вас при попытке подключения к VPN с помощью Cisco Mobility Anyconnect клиента в RDP-сессии выскакивает ошибка:
AnyConnect was not able to establish a connection to the specified secure gateway. Please try connect again and and VPN Establishement Capability from a Remote Desktop is disabled
то вам сюда 🙂
Чтобы получить возможность подключаться к VPN из RDP-сессии, нужно отредактировать конфигурационный файл, т. к. этой опции нет в GUI настройках. Находится файл в папке C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile, а вот называться он может по-разному, в зависимости от конкретного VPN, к которому подключаетесь. В любом случае, лежит он там и имеет расширение .xml. Или их несколько – если у вас несколько VPN. Например, Contractor.xml. Находим там строчку:
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>
и меняем её на:
<WindowsVPNEstablishment>AllowRemoteUsers</WindowsVPNEstablishment>
Всё, теперь клиент должен подключаться, если вы зашли по RDP.
Источники:

  1. https://supportforums.cisco.com/t5/vpn/anyconnect-was-not-able-to-establish-a-connection-to-the/td-p/2634409

ESXi Host and vCenter Server 6.0 to 6.5 update to solve kernel BUG at drivers/net/vmxnet3/vmxnet3_drv.c:1322

Постановка задачи.

Опишу вначале суть проблемы.
Виртуальная машинка под управлением Oracle Linux 6.8 стала самопроизвольно перезагружаться (кернел паник) с ошибкой в логе падения /var/crash/127.0.0.1-yyyy-mm-dd-hh:mm:ss/vmcore-dmesg.txt:

[67476.761292] kernel BUG at drivers/net/vmxnet3/vmxnet3_drv.c:1322!
[67476.761314] invalid opcode: 0000 [#1] SMP

Поиск навёл на статью KB Vmware, в которой говорится, что в версии ESXi 6.5 U1 этот баг с драйвером виртуальной карточки типа vmxnet3 был устранён. Как вариант для решения этого бага поможет замена виртуальных карточек с VMXNET3 на E1000, но мне нужен был железный вариант, поэтому нависла угроза апгрейда 🙂
На тот момент хозяйство для виртуализации представляло из себя следующее:

  1. Основной хост ESXi 6.0
  2. Бекапный хост ESXi 6.5
  3. VCSA vCenter Server 6.5

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

  1. Сначала нужно проапгрейдить vCenter Server 6.5 -> 6.5 U1, это необходимое условие перед обновлением хостов.
  2. Обновить бекапный хост 6.5 -> 6.5 U1
  3. Далее нужно перенести VCSA (виртуальная машина с vCenter Server) с основного хоста на бекапный и обновить основной хост 6.0 -> 6.5 U1

Рассмотрим подробнее каждый шаг.

1. vCenter Server 6.5 -> 6.5 U1

Для начала необходимо сделать снапшот и/или бекап VCSA, просто на всякий случай. Также у VSCA должен быть доступ в Интернет, иначе обновляться придётся с диска CD-ROM.
Есть несколько методов апгрейда:

  • через esxcli на самом хосте (ssh)
  • на Windows машине с помощью PowerCLI
  • с помощью появившейся, если не ошибаюсь, в 6.5 версии веб-утилиты VAMI – VMware vSphere Appliance Management.

Руководствуясь принципом KISS обновлять будем через VAMI.
Для доступа к ней, необходимо в браузере зайти на https://your_vsca_ip_or_domain:5480. Обратите внимание, что credentials в данном случае не такие, как для управления инфраструктурой – нужно использовать пользователя и пароль к ОС VSCA. Обычно это root и пароль, который вы указывали при начальной настройке VSCA.
В появившемся окне делаем действия в порядке, как на скриншоте:

Т. е. Выбираем слева вкладку Update, нажимаем Check Update, откроется список, в котором выбираем Check Repository. Дожидаемся окончания проверки. Нажимаем Install Updates, Install Updates. После этого принимаем Лиц. соглашение и скрестив пальцы ждем окончания процесса обновления. По окончании, нажимаем Ок, идём на вкладку Summary, жмем Reboot и подтверждаем перезагрузку:vCenter Appliance загружается и инициализируется довольно долго, минут 5, может быть 10. Поэтому не переживайте, если ОС уже загрузилась, но в браузере выдает ошибки при попытке зайти в интерфейс управления инфраструктурой – подождите.

2. Обновление бекапного хоста ESXi 6.5 -> 6.5 U1

Этот процесс довольно простой, т. к. версия релиза такая же, как и у нужного нам апдейта.
Заходим на флеш-версию интерфейса: https://your_vsca_ip_or_domain/vsphere-client/?csp
Идем в Host and Clusters:

Важно: останавливаем (выключаем, не пауза) все виртуальные машины на хосте перед обновлением!
Выбираем нужный нам хост мышкой и идём на вкладку Update Manager.

Здесь необходимо вначале прикрепить baseline к хосту, для этого нажимаем вначале Scan for Updates, ставим все галочки и Ok. Внизу появится прогресс процесса проверки обновлений, дожидаемся окончания.

Теперь нажимаем Attach Baseline и выбираем Critical Host Patches и Non-Critical Host Patches. Названия говорят сами за себя. Подтверждаем. Можно для верности сделать еще раз Scan for Updates.
Теперь выбираем Stage Patches на вкладке Update Manager.

Выбираем baseline’ы, далее выбираем наш хост и патчи, которые хотим установить.
Собственно для установки патчей нажимаем Remediate на вкладке Update Manager.

Выбираем снова нужные baseline. Затем хост, затем патчи, в Advanced Options можно запланировать апдейт, я ничего не менял и на шаге 5 также всё оставил по дефолту. Соглашаемся и ждем окончания обновления.

3. Обновление основного хоста ESXi 6.0 -> 6.5 U1

VSCA в моём случае находилось на основном хосте и чтобы не рубить ветку, на которой сижу, я решил перенести VSCA на бекапный хост. Воспользовался для этого репликацией в Nakivo Backup & Replication. Рассказ об этой софтине – отдельная тема. В общем, потушил я VSCA на основном хосте и запустил на бекапном.
С этим апдейтом всё оказалось несколько сложнее, т к версия релиза установленного ESXi и патча не совпадают. Тут простым пропатчиванием уже не отделаешься. Нужно апгрейдить. А для апгрейда необходим установочный образ гипервизора, который берем с сайта vmware.
Моя задача еще осложнилась тем, что на сервере установлена карточка Solarflare, драйверов для которой по-умолчанию нет в установочном образе, но они есть в виде VIB и offline bundle на сайте производителя. И эти отсутствующие драйвера необходимо добавить в имейдж.
Для добавления драйверов в установочный образ vmware нам понадобится Windows машина. Ранее использовалась утилита ESXi-Customizer с удобный интерфейсом добавления бандлов, но она уже не поддерживается c 2015 года и для подготовки образа для установки вручную с сд-диска на сервер эта утилита еще подходит, но вот для vCenter – нет, он не принимает образ, созданный ESXi-Customizer. Поэтому будем мучаться с консолью PowerCLI.
Выполняем следующие шаги:

  1. Скачиваем и устанавливаем PowerCLI.
  2. Скачиваем offline bundle драйвер для нужного нам железа. Для Solarflare он находится здесь.
  3. Скачиваем Offline bundle установочного образа vmware с сайта vmware. В моём примере мне нужен был HP customized образ, с драйверами для HP серверов. Внимательно – скачиваем .zip, не .iso!
  4. Создаем отдельную папку (для удобства и копируем туда оффлайн бандлы драйвера и установочного образа. В моем примере буду использовать папку E:\vmware\test.

    Заходим в свойства .zip файлов и нажимаем Unblock – так мы сможем оперировать ими в PowerCLI, запущенной не под Администратором.
  5. Запускаем PowerCLI консоль из Пуск, дожидаемся инициализации.
  6. Добавляем установочный образ, указав путь к нему командой:
     PowerCLI C:\> Add-EsxSoftwareDepot -DepotUrl E:\vmware\test\update-from-esxi6.5-6.5_update01.zip

    Вы увидите похожий результат:

    Depot Url
     ---------
     zip:E:\vmware\test\update-from-esxi6.5-6.5_update01.zip?index.xml
  7. Проверяем, что образ добавлен, должен быть в списке:
    PowerCLI C:\> Get-EsxImageProfile
    Name Vendor Last Modified Acceptance Level
    ---- ------ ------------- ----------------
    ESXi-6.5.0-20170701001s-no-... VMware, Inc. 7/7/2017 5:3... PartnerSupported
    ESXi-6.5.0-20170702001-no-t... VMware, Inc. 7/7/2017 5:3... PartnerSupported
    ESXi-6.5.0-20170701001s-sta... VMware, Inc. 7/7/2017 5:3... PartnerSupported
    ESXi-6.5.0-20170702001-stan... VMware, Inc. 7/7/2017 5:3... PartnerSupported
  8. Образ read-only, поэтому для начала нам его необходимо клонировать. Нужно получить имя командой:
    PowerCLI C:\> Get-EsxImageProfile | Select Name
    Name
    ----
    ESXi-6.5.0-20170701001s-no-tools
    ESXi-6.5.0-20170702001-no-tools
    ESXi-6.5.0-20170701001s-standard
    ESXi-6.5.0-20170702001-standard
  9. На этом шаге необходимо определиться с тем, какой имейдж клонировать (лучше standard, параметр -CloneProfile), а также с именем нового имейджа (параметр -Name) и названием вендора (параметр -Vendor). Мой пример:
    PowerCLI C:\> New-EsxImageProfile -CloneProfile ESXi-6.5.0-20170702001-standard -Name Test_ESXi_6.5_with_SFC -Vendor TestCorporation
    Name Vendor Last Modified Acceptance Level
    ---- ------ ------------- ----------------
    Test_ESXi_6.5_with_SFC TestCorporation 7/7/2017 5:3... PartnerSupported
  10. Для проверки посмотрим еще раз список имейджев, отметив в нём наличие нашего нового:
    PowerCLI C:\> Get-EsxImageProfile | Select Name,Vendor
    Name Vendor
    ---- ------
    ESXi-6.5.0-20170701001s-no-tools VMware, Inc.
    ESXi-6.5.0-20170701001s-standard VMware, Inc.
    ESXi-6.5.0-20170702001-no-tools VMware, Inc.
    Test_ESXi_6.5_with_SFC TestCorporation
    ESXi-6.5.0-20170702001-standard VMware, Inc.
  11. Теперь нужно добавить бандл с нашим драйвером примерно также, как и с образом:
    PowerCLI C:\> Add-EsxSoftwareDepot -DepotUrl 'E:\vmware\test\SF-114406-DH-5_(SF-111982-LS-8)_Solarflare_VMware_ESXi_5.5___6.0___6.5_driver_(Offline_Bundle).zip'
    Depot Url
    ---------
    zip:E:\vmware\test\SF-114406-DH-5_(SF-111982-LS-8)_Solarflare_VMware_ESXi_5....
  12. Узнаем, сколько пакетов находится в нашем бандле командой:
    PowerCLI C:\> Get-EsxSoftwarePackage -SoftwareDepot 'E:\vmware\test\SF-114406-DH-5_(SF-111982-LS-8)_Solarflare_VMware_ESXi_5.5___6.0___6.5_driver_(Offline_Bundl
    e).zip'
    Name Version Vendor Creation Date
    ---- ------- ------ ------------
    net-sfc 4.10.4.1000-1OEM.550.0.0.13... Solarflare 1/20/2017...
  13. Теперь мы можем добавить пакет к нашему образу, используя полученное только что имя в параметре -SoftwarePackage:
    PowerCLI C:\> Add-EsxSoftwarePackage -SoftwarePackage net-sfc -ImageProfile Test_ESXi_6.5_with_SFC
    Name Vendor Last Modified Acceptance Level
    ---- ------ ------------- ----------------
    Test_ESXi_6.5_with_SFC TestCorporation 2/2/2018 10:... PartnerSupported

    Если у вас несколько пакетов, повторите команду для всех пакетов.
    Если драйвер скачан не из официального ресурса или любительская сборка, то может выбить ошибку вида:
    add-esxsoftwarepackage : VIB VFrontDe_bootbank_net51-r8169_6.011.00-2vft.510.0.0.799733’s acceptance level is
    community, which is not compliant with the ImageProfile acceptance level partner
    At line:1 char:1
    Нужно поменять acceptance level командой:
    PowerCLI C:\> Set-EsxImageProfile -Name new6.5realtek -AcceptanceLevel community

  14. Проверим, есть ли наш пакет в образе, для этого определим переменную и вызовем свойство viblist двумя командами, как показано ниже:
    PowerCLI C:\> $ip = Get-EsxImageProfile -Name Test_ESXi_6.5_with_SFC
    PowerCLI C:\> $ip.viblist
    Name Version Vendor Creation Date
    ---- ------- ------ ------------
    ne1000 0.8.0-16vmw.650.1.26.5969303 VMW 7/7/2017 ...
    vmkplexer-vmkplexer 6.5.0-0.0.4564106 VMW 10/27/201...
    sata-ata-piix 2.12-10vmw.650.0.0.4564106 VMW 10/27/201...
    net-usbnet 1.0-3vmw.650.0.0.4564106 VMW 10/27/201...
    i40en 1.3.1-5vmw.650.1.26.5969303 VMW 7/7/2017 ...
    ...
    net-sfc 4.10.4.1000-1OEM.550.0.0.13... Solarflare 1/20/2017...
    ...
  15. Будет длинный список, в котором должен быть наш пакет или несколько, если добавляли не один. Можно упростить поиск путем выборки по вендору, как показано ниже:
    PowerCLI C:\> $ip.viblist | Where-Object {$_.vendor -like "Solarflare*"}
    Name Version Vendor Creation
     Date
    ---- ------- ------ ------------
    net-sfc 4.10.4.1000-1OEM.550.0.0.13... Solarflare 1/20/2017...
  16. Теперь нужно экспортировать наш образ собственно в файл .iso для установки/апдейта ESXi хоста. Указываем имя образа и путь к .iso файлу:
    PowerCLI C:\> Export-EsxImageProfile -ImageProfile Test_ESXi_6.5_with_SFC -FilePath E:\vmware\test\ESXi_HPE_6.5_with_SFC.iso -ExportToIso

    Ждем окончания операции и проверяем, что файл создался на диске:

Всё, образ есть, теперь его можно добавить в vCenter. Возвращаемся в веб-морду vCenter и на вкладке Update Manager, где мы устанавливали патчи нажимаем Go to Admin View.
Здесь у меня уже добавлен образ, но вам следует его добавить нажав вначале ESXi Images:

А затем Import ESXi Image, выбрать созданный нами ранее образ и загрузить его:

Идем на вкладку Hosts Baselines и нажимаем + New Baseline, выбираем тип Host Upgrade и вводим имя и описание:

Далее выбираем загруженный нами образ ESXi:

И завершаем процедуру. По окончании, наш новый baseline должен появится в списке в группе Custom на вкладке Hosts Baselines.
Возвращаемся в Update Manager хоста, который хотим апгрейдить и выбираем Attach Baseline, как делали ранее с патчами, только на этот раз выбираем наш новосозданный baseline в группе Upgrade Baselines:

И повторяем процедуру как в пункте 2: Check for Updates, Stage Patches, Remediate. Только вместо патчей выбираем наш апгрейд.
Когда апгрейд закончится и хост снова появится в инвентаре vCenter Server, можете установить патчи на него описанным в пункте 2 способом, чтобы хост был последней версии.
Вроде бы всё, ничего не забыл. Надеюсь кому-то поможет эта статья или может быть мне самому, если будет похожая задача.
Источники:

  1. https://tinkertry.com/easy-upgrade-to-vcsa-65u1
  2. http://blog.myvmx.com/2016/04/custom-esxi-image-iso-using-powercli.html
  3. https://www.v-front.de/p/esxi-customizer.html
  4. http://www.vmwarearena.com/how-to-upgrade-esxi-6-0-to-esxi-6-5-using-vmware-update-manager/
  5. http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.powercli.cmdletref.doc%2FNew-EsxImageProfile.html
  6. https://www.virten.net/vmware/vmware-esxi-image-profiles/#esxi6.7

Cisco AnyConnect Secure Mobility Client profiles

Есть не совсем очевидная настройка для Cisco AnyConnect Secure Mobility Client – профили. Нужны они для того, чтобы не вводить каждый раз адрес VPN. Удобно, если периодически приходится переключаться между разными VPN.
Профили для ОС Windows находятся в файле (если его нет – создайте):
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\profiles.xml

Похоже, что в новых версиях код между <ServerList> </ServerList>надо добавлять в файл:

C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Clients.xml

Для ОС Linux/Mac путь: /opt/cisco/anyconnect/profile/profiles.xml

Формат такой:

<?xml version=”1.0″ encoding=”UTF-8″?>
<AnyConnectProfile xmlns=”http://schemas.xmlsoap.org/encoding”>
<ServerList>
<HostEntry>
<HostName>VPN1</HostName>
<HostAddress>177.177.177.177</HostAddress>
<User>username</User>
<SecondUser></SecondUser>
<Domain></Domain>
<Group>usergroup</Group>
<ProxyHost></ProxyHost>
<ProxyPort></ProxyPort>
<SDITokenType>none</SDITokenType>
<ControllablePreferences>
<LocalLanAccess>true</LocalLanAccess>
</ControllablePreferences>
</HostEntry>
<HostEntry>
<HostName>VPN2</HostName>
<HostAddress>178.178.178.178</HostAddress>
<User>user2</User>
<Domain></Domain>
<Group></Group>
<ProxyHost></ProxyHost>
<ProxyPort></ProxyPort>
<SDITokenType>none</SDITokenType>
<ControllablePreferences>
<LocalLanAccess>true</LocalLanAccess>
</ControllablePreferences>
</HostEntry>
</ServerList>
</AnyConnectProfile>
Для каждого подключения создается <HostEntry> … </HostEntry>, где теги:

  • <HostName> – просто название подключения, которое будет удобно вам
  • <HostAddress> – доменное имя или IP-адрес хоста, к которому подключаемся

Остальные настройки вроде юзернейма к сожалению не работают. Клиент по-умолчанию использует имя пользователя и группы последнего подключения, который хранится в C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\preferences.xml.

Установка разблокированного bootloader'a, TWRP custom recovery и прошивка телефона LG L90 D405 (D410)

В этой статье я просуммирую всё, что я проделал с телефоном – может кому (или даже мне в будущем) пригодится.
Итак, предыстория. Смартфоны LG L90 D405 (D410) продавались с Android 4.4 KitKat на борту. Затем вышло официальное обновление с 5.0.1 Lollipop. Я им пользовался какое-то время, пока мне не стало казаться, что телефон н аэтой прошивке тормозит. Я сбросил телефон на заводские – стало чуть лучше, но не намного. Недавно узнал, что есть неофициальные прошивки с Дроидом 6 и даже 7. Их несколько и прочитать о них можно тут (на английском):

  1. Resurrection Remix
  2. Android Ice Cold Project 12.1
  3. LineageOS 14.1

Я почитал форумы и мне показалось, что LineageOS 14.1 самая беспроблемная прошивка и выбор пал на неё. В принципе, вы можете установить какую угодно описанным ниже способом.
Мы имеем телефон со стоковой прошивкой, для начала скачиваем необходимые файлы из интернета или я собрал все в кучу здесь.
Рекомендуется перед началом сделать бекап всех важных данных смартфона. Также нужно зарядить смарт до 100% и желательно подключить к зарядному устройству.

Установка разблокированного загрузчика.

Необходимо установить разлоченный загрузчик, без него в кастомное рекавери (TWRP или CWM) вы не сможете загрузиться. Будет ошибка сертификата “error: boot certification verify”  при попытке зайти в рекавери.
Для проведения всех манипуляций нужно получить рут на смартфоне с помощью программы KingRoot. У меня уже был получен, скачать программу и узнать как ею пользоваться (т е нажать на одну кнопку 🙂 ) можно тут.
Continue reading Установка разблокированного bootloader'a, TWRP custom recovery и прошивка телефона LG L90 D405 (D410)

Linux. Распределение прерываний

Посмотреть распределение прерываний по ядрам в ОС Linux можно командой:
cat /proc/interrupts
Вы должны увидеть нечто следующее:

Где:

  • Первый столбец — номер прерывания
  • CPU0 .. CPUx — счетчик обработанных прерываний по процессорным ядрам
  • PCI-MSI-edge — тип прерывания
  • Последний столбец — название устройства

Как видите, все прерывания по-умолчанию обрабатываются ядром 0. Что не всегда хорошо.
Перенести обработку прерываний на другие ядра можно как в примерах ниже:
# CPU0
echo 1 >/proc/irq/45/smp_affinity
echo 1 >/proc/irq/46/smp_affinity
echo 1 >/proc/irq/47/smp_affinity
# CPU1
echo 2 >/proc/irq/48/smp_affinity
echo 2 >/proc/irq/49/smp_affinity
# CPU2
echo 4 >/proc/irq/50/smp_affinity
echo 4 >/proc/irq/51/smp_affinity
# CPU3
echo 8 >/proc/irq/52/smp_affinity
echo 8 >/proc/irq/53/smp_affinity
Где цифра после echo определяет маску для используемых ядер. Например, использовать только ядро 0 это будет выглядеть 00000001 в двоичной системе исчисления. Ядро 2 – 00000100. 0 и 2 соответственно 00000101, что соответствует 5 в десятичной системе.
Этот метод действует до перезагрузки. Чтобы сохранить настройки и после перезагрузки просто добавляем эти команды в файл /etc/rc.local – это скрипт, автоматически выполняющий своё содержимое при загрузке ОС.
Источники:

  1. https://cesbo.com/ru/linux/interrupts/

Remmina в Debian 9

Есть очень удобный клиент удаленного подключения для ОС Linux – remmina. Удобен он тем, что позволяет сохранять подключения по ssh, RDP, VNC etc со всеми настройками и открывать их одним кликом:

Но в Debian 9 с этой программой небольшая проблемка. В stable ветке её просто напросто нет в репозитории, а в testing она работает не правильно из-за другой версии библиотеки vte3, которую поменять нельзя, т. к. это поломает гном… 🙂
Но выход есть всегда. И он описан на гитхабе [1].
UPD: лучше ставить из экспериментальной ветки Debian, читайте ниже.
Вначале устанавливаем Snap:
aptitude install snapd
Далее устанавливаем саму remmina (–edge говорит, что нужно установить последнюю версию, которая нам и нужна, без этого префикса установится та же, что и в testing Debian и которая не работает):
snap install remmina –edge
Также можно добавить некоторые расширения:
snap connect remmina:avahi-observe :avahi-observe
snap connect remmina:cups-control :cups-control 
snap connect remmina:mount-observe :mount-observe
Теперь нужно как-то по удобнее запускать remmina ибо по-умолчанию она в gnome shell не интегрируется. Для этого копируем remmina.desktop:
aptitude install locate
updatedb
locate remmina.desktop
cp /snap/remmina/161/meta/gui/remmina.desktop /usr/share/applications/

Также необходимо отредактировать этот файл, прописав там правильный путь к бинарнику:
Exec=/snap/bin/remmina
Вообще структура каталогов для snap в Debian выглядит следующим образом:
/snap/
├── bin (здесь лежат бинарники программ, установленных через snap)
├── core (базовые файлы snap)
└── remmina (а это папка с файлами приложения, в данном случае установлена только remmina, а если будут еще приложения – они будут здесь также)
Перезаходим в gnome shell – теперь remmina должна появиться в Activities.
UPD:
Как показала практика, remmina из snap глючит. Версия 1.2.х есть только в ветке experimental и чтобы её установить идем на страницу пакета. Здесь внизу в секции Download выбираем нужную архитектуру и копируеи ссылку на зеркало, например – amd64http://ftp.us.debian.org/debian/pool/main/r/remmina/remmina_1.2.0-rcgit.20-1_amd64.deb
Заходим в консоль, загружаем пакет по скопированной ссылке и устанавливаем его:
wget http://ftp.us.debian.org/debian/pool/main/r/remmina/remmina_1.2.0-rcgit.20-1_amd64.deb
dpkg -i remmina_1.2.0-rcgit.20-1_amd64.deb
Будет ругаться на неудовлетворенные зависимости примерно так:
Selecting previously unselected package remmina.
(Reading database … 157173 files and directories currently installed.)
Preparing to unpack remmina_1.2.0-rcgit.20-1_amd64.deb …
Unpacking remmina (1.2.0-rcgit.20-1) …
dpkg: dependency problems prevent configuration of remmina:
remmina depends on libssh-4 (>= 0.6.1); however:
Package libssh-4 is not installed.
remmina depends on remmina-common (= 1.2.0-rcgit.20-1); however:
Package remmina-common is not installed.
dpkg: error processing package remmina (–install):
dependency problems – leaving unconfigured
Processing triggers for gnome-menus (3.13.3-9) …
Processing triggers for desktop-file-utils (0.23-2) …
Processing triggers for mime-support (3.60) …
Processing triggers for man-db (2.7.6.1-2) …
Errors were encountered while processing:
remmina
В моём случае не хватало двух пакетов: libssh-4 и remmina-common. Ищем указанные пакеты на сайте пакета remmina experimental в секции Other Packages Related to remmina и помеченные dep, загружаем их описанным выше образом через wget и устанавливаем с помощью dpkg. Также можно установить плагины для rdp и vnc – они есть там в списке.
Радуемся нормальной реммине.

  1. https://github.com/FreeRDP/Remmina/wiki
  2. https://snapcraft.io/docs/snaps/structure
  3. https://packages.debian.org/en/experimental/remmina