vsphere iSCSI port binding

Подключить сферу к хранилке по самому доступному и растпространенному протоколу — несложно. Но есть ньюансы.

В новом или существующем vSwitch необходимо создать vmkernel port. Задать ему ip а после отредактировать свойства NIC Teaming таким образом, чтобы Active Adapter был только один.

только в этом случае — данный vmkernel port можно использовать для iSCSI. Если активны более одного адаптера — использовать сетевуху в настройках iSCSI Software Adapter не получится.

 

vmware vsphere new vm create

  1. создать VM

2. 

3. vm name

4. main storage

5. 

6. OS select

7. vCPU config

8. vMEM config

9. nic config

10. vStorage 

11. vDisk create

тут можно выбрать место для диска, если не хочешь чтобы он лежал на том-же сторадже что и конфа.

12. advanced option

тут лучше все оставить как есть.

13.  не забыть поставить галку

14. 

вместо 0 поставить 10000. нужно для 10 секундного ожидания перед бутом. при таком раскладе успеваешь перейти на менюшку с выбором вариантов загрузки

15. дальше можно подставить iso для установки в свойства виртуаки, а можно сделать это через окно консоли.

Выбираешь нужный вариант и устанавливаешь

windows time settings

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

time.bat

w32tm /config /manualpeerlist:XXX.XXX.XXX.XXX /syncfromflags:manual /reliable:yes /update
net stop w32time
net start w32time
w32tm /stripchart /computer:XXX.XXX.XXX.XXX /samples:500 /dataonly

pause

time-test.bat

w32tm /stripchart /computer:XXX.XXX.XXX.XXX /samples:50 /dataonly

zimbra 8.6 Let’s Encrypt cert

zmproxyctl stop
zmmailboxdctl stop

On RedHat/CentOS 6 you will need to enable the EPEL repository before install.

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

yum repolist

нужно чтобы была строка похожая на

epel Extra Packages for Enterprise Linux 5 - i386 4,320+1,408

далее

yum install git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

./letsencrypt-auto certonly --standalone

Последняя команда — собственно запуск скрипта. Скрипт задаст два вопроса.

email и домен. ответы можно положить в файл и запускать с другим ключем из скрипта.  Скорей всего начнет ругатся на 443 и 80 порты. нужно временно отключить файрвол

 service iptables stop
//снова запускаем скрипт и радуемся
./letsencrypt-auto certonly --standalone
сd /etc/letsencrypt/live/grz.grom.ru
ll

и наблюдаем файлы сертификата. осталось внедрить их в систему.

# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem


выдаст ошибку

XXXXX ERROR: Invalid Certificate: cert.pem: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

error 2 at 1 depth lookup:unable to get issuer certificate
 

вставляю в chain.pem серт по ссылке
https://www.identrust.com/certificates/trustid/root-download-x3.html
добавляю в него
——END CERTIFICATE——
——BEGIN CERTIFICATE——

проверяю


# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
** Verifying cert.pem against privkey.pem
Certificate (cert.pem) and private key (privkey.pem) match.
Valid Certificate: cert.pem: OK

вот теперь все пучком — остался deploy

но сначала backup ssl

cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")

copy private key

 cp /etc/letsencrypt/live/grz.grom.ru/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
root@zimbra86:/etc/letsencrypt/live/zimbra86.zimbra.io
 # /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem
 ** Verifying cert.pem against /opt/zimbra/ssl/zimbra/commercial/commercial.key
 Certificate (cert.pem) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
 Valid Certificate: cert.pem: OK
 ** Copying cert.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 ** Appending ca chain chain.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 ** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.
 ** NOTE: mailboxd must be restarted in order to use the imported certificate.
 ** Saving server config key zimbraSSLCertificate...failed.
 ** Saving server config key zimbraSSLPrivateKey...failed.
 ** Installing mta certificate and key...done.
 ** Installing slapd certificate and key...done.
 ** Installing proxy certificate and key...done.
 ** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.
 ** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.
 ** Installing CA to /opt/zimbra/conf/ca...done.
zmcontrol restart

LVM. добавление диска. расширение раздела.

Если используется LVM то все просто.

fdisk /dev/sdd
Команда (m для справки): n
Действие команды
e расширенный
p основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый цилиндр (1-3524, по умолчанию 1): 
Используется значение по умолчанию 1
Последний цилиндр или +size или +sizeM или +sizeK (1-3524, по умолчанию 3524): 
Используется значение по умолчанию 3524
Команда (m для справки): p
Диск /dev/sdd: 28.9 ГБ, 28991029248 байт
255 heads, 63 sectors/track, 3524 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdd1 1 3524 28306498+ 83 Linux
Команда (m для справки): w
Таблица разделов была изменена!

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

vgdisplay
  --- Volume group ---
  VG Name               vgname
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                7
  Open LV               7
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               137.99 GiB
  PE Size               4.00 MiB
  Total PE              35326
  Alloc PE / Size       19967 / 78.00 GiB
  Free  PE / Size       15359 / 60.00 GiB
  VG UUID               10Ipjk-btDM-NRQP-zXdp-pfeX-9ngh-wLCIUi

создать физический том для созданного раздела

pvcreate /dev/sdd1
Writing physical volume data to disk "/dev/sdd1"
Physical volume "/dev/sdd1" successfully created

добавить в группу томов

vgextend vgname/dev/sdd1
Volume group "vgname" successfully extended

расширить логический том на все доступное пространство

lvextend -l +100%FREE /dev/mapper/vgname-opt

ресайз раздера

resize2fs /dev/mapper/vgname-opt

проверка df -h

DS18B20

Получить значение с датчика можно по разному. Самый примитивный способ — библиотека DallasTemperature.h. У ее использования есть минусы — она не слишком быстрая, и занимает много места в памяти.

DallasTemperature.h

Для получения значения температуры от датчика используется следующий код.

#include <OneWire.h>
#include <DallasTemperature.h>

OneWire ow_ds(2);//датчик 0 на пин 2
DallasTemperature dt_ds(&ow_ds);
float cel_ds = 99; //значение по умолчанию

void loop() {

dt_ds.requestTemperatures();
delay(2000);
cel_ds = dt_ds.getTempCByIndex(0);

Serial.println(«cel_ds = » + String(cel_ds));//вывод значения в порт

delay(2000);

}

rouncube Wrong ‘mbstring.func_overload’ option value

Из админики при попытки открыть вебпочту выходит это ошибка.

ERROR: Wrong 'mbstring.func_overload' option value and it wasn't possible to set it to required value (0). Check your PHP configuration (including php_admin_flag).

рулится через  /etc/httpd/conf.d/roundcube путем добавления туда

секция <Directory /usr/share/roundcubemail/>
php_admin_value mbstring.func_overload 0

или задать этот параметр через php.ini

 

работа в vi (и vim)

Файл настройки: ~/.vimrc
Можно редактировать файлы через сеть, например
:e <scp|ftp|ftps>://user@host/path/to/the/file.txt
:Ex или :e ./ — файловый менеджер

== Основы ==
hjkl                      перемещение в разные стороны
i                         режим вставки
I                         добавление в начало строки
a                         режим добавления
A                         добавление в конец строки
o                         добавить строку сразу за текущей
O                         добавить строку перед текущей
R                         писать поверх имеющегося текста
u, :u[ndo]                отмена предыдущего действия (undo)
CTR-R, :red[o]            отмена отмены предыдущего действия (redo)
dd                        вырезать (удалить) строку
cc                        удалить и начать редактирование
yy                        копировать строку
p                         вставить из буфера обмена
<n>d                      удалить n+1 строку
<n>y                      скопировать n+1 строку
ESC                       перейти в режим просмотра
DEL                       удалить следующий символ
:<n>                      перейти на строку #n
%                         перейти к парной скобке
:e **/filename.c          редактировать файл (с поиском по имени)
:w [fname]                записать изменения
:wa                       сохранить изменения во всех файлах
:q                        выйти из редактора
:q!                       выйти из редактора, не сохраняя изменения
:color <name>             выбор цветовой схемы. цветвые схемы:
/usr/local/share/vim/vim72/colors/*.vim
:pwd                      текущий каталог
:cd [path]                перейти в другой каталог
:!команда                 выполнить команду — man, git, и так далее
стрелочками веерх и вниз можно автодополнять
команды и искать по истории
CTR+p или CTR+n           автоматическое дополнение текста
(в режиме редактирования)
CTR+r,=,<expr>            вставить выражение, например 5*2 — 3
(в режиме редактирования)
CTR+u, CTR+d              Page Up / Page Down
CTR+y, CTR+e              Перемотка вверх/вниз без движения курсора

== Подсветка синтаксиса ==
:syntax on                включить подсветку
:syntax off               выключить подсветку (по умолчанию)

== Перенос строк ==
:set wrap                 разрешить word wrap (по умолчанию)
:set nowrap               запретить word wrap

== Печать ==
:ha[rdcopy]                   распечатать документ
:set printoptions=duplex:off  отключить двустороннюю печать

== Сворачивание ==
zc                        свернуть блок
zo                        развернуть блок
zM                        закрыть все блоки
zR                        открыть все блоки
za                        инвертирование
zf                        см :set foldmethod=manual
:set foldenable           включить свoрачивание
:set foldmethod=syntax    сворачивание на основе синтаксиса
:set foldmethod=indent    сворачивание на основе отступов
:set foldmethod=manual    выделяем участок с помощью v и говорим zf
:set foldmethod=marker    сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока

== Маркеры ==
ma                        установить локальный маркер a
mB                        установить глобальный маркер B
`c                        перейти к локальному маркеру c
`0                        вернуться на позицию, на которой закончили
работу при закрытии vim
:marks                    просмотр маркеров
set viminfo=’1000,f1      маркеры пишутся в ~/.viminfo, восстанавливаясь
при следующем запуске vim. маркер » хранит
последнюю позицию курсора в файле
== Сессии ==
mksession file.session    сохранить текущую сессию
source file.session       восстановить ранее сохраненную сессию

== Макросы ==
qa                        записать макрос с именем a
q                         в режиме записи макроса: закончить запись
@a                        выполнить макрос с именем a
@@                        повторить последний макрос

== Регистры ==
«ayy                      скопировать строку в регистр a
«bdd                      вырезать строку и поместить в регистр b
«С2d                      вырезать три строки и дописать в конец
регистра C
:reg [name1][name2][…]  просмотреть содержимое регистров

== Выделение ==
v + hjkl                  выделение текста
SHIFT + v                 выделить строку
CTR + v                   выделение прямоугольника
p                         вставить
y                         копировать
d                         удалить
gu                        к нижнему регистру
gU                        к верхнему регистру

== Отступы ==
[#]>                      сдвинуть выделенное вправо
[#]<                      сдвинуть выделенное влево
[#]>>                     сдвинуть строку вправо
[#]<<                     сдвинуть строку влево
set tabstop=#             для табуляции используется # пробелов
set shiftwidth=#          в командах отступа используется # пробелов
set [no]expandtab         заменять ли табуляцию на соответствующее
число пробелов

== Поиск и замена в файле ==
/Выражение               поиск выражения в файле
\cВыражение              поиск без учета регистра
n                        следующее совпадение
N                        предыдущее совпадение
:%s/foo/bar/gi           замена строк, см http://eax.me/regular-expr/

== Поиск по всему проекту ==
:vimgrep /EXPR/ **/*.c   поиск по регулярному выражению
:copen                   показать все найденные места
:close                   скрыть все найденные места
:cn                      переход к следующему результату
:cp                      переход к предыдущему результату

== Нумерация строк ==
:set number              включить нумерацию строк
:set nonumber            отключить нумерацию строк

== Работа с вкладками (a.k.a табами) ==
:tabnew [fname]          создать таб
:tabs                    вывести список табов
:tabn                    следующий таб
:tabp                    предыдущий таб
<n>gt                    перейти на таб #n
gt                       следующий таб
gT                       предыдущий таб
:tabm +1                 переместить таб вперед на одну позицию
:tabm -1                 переместить таб назад на одну позицию
:tabm 2                  переместить таб на заданную позицию
(нумерация начинается с нуля)

== Работа с окнами ==
:split                   горизонтальное разбиение
:vsplit                  вертикальное разбиение
Ctr+W, затем
с                      закрыть окно
+-                     изменение высоты текущего окна
<>                     изменение ширины текущего окна
=                      установить равный размер окон
hjkl или стрелочки     перемещение между окнами

== Проверка орфографии ==
mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.sug
wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.spl
wget http://ftp.vim.org/vim/runtime/spell/en.ascii.sug
wget http://ftp.vim.org/vim/runtime/spell/en.ascii.spl

:set spell spelllang=ru,en       включить проверку орфографии
:set nospell                     выключить проверку орфографии
]s                               следующее слово с ошибкой
[s                               предыдущее слово с ошибкой
z=                               замена слова на альтернативу из списка
zg                               good word
zw                               wrong word
zG                               ignore word

== Работа с кодировкой ==
e ++enc=<имя кодировки>         Редактирование файла в ??? кодировке
w ++enc=<имя кодировки>         Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-r  Список автоматически определяемых
кодировок в порядке убывания
приоритета

== Другое ==
:set [no]wildmenu          При авто-дополнении в командной строке над
ней выводятся возможные варианты
:set list                  Отображать табуляцию и переводы строк
q:                         История команд
.                          Повторение последней команды