Статьи по Salt и впечатления от использования

В прошлом году я сначала выбирал, потом изучал Salt в качестве системы Configuration Management and Remote Execution.

На данный момент могу сказать, что успешно её освоил и начал использовать в продакшине. Штука прекрасная. Хочу поделиться списком литературы, без которой успешное начало работы было бы невозможным, пока не потерялось. А также немного описать впечатления.

Итак.

Continue reading

Puppet, Chef, Ansible, Salt – что попробовать для начала?

Рано или поздно любой развивающийся юниксоид сталкивается с необходимостью освоить Configuration Management and Remote Execution Application. Работа с инфраструктурой используя такие системы – топовый уровень системного подхода для IT операций.

Вот недавно созрел и я.

Continue reading

Mdadm Gpt 3Tb Non-UEFI

Интересная попалась задача – заменить в сервере на Legacy (не UEFI) BIOS пару обычных (до 2 Tb) дисков на два 3 Tb.

Диски работали в софтовом рейде, что, значительно облегчает задачу, вроде как. Вот только непонятно, что делать с тем, что во время последовательной замены дисков необходимо переехать с MBR на GPT. Все получилось, но есть особенности.

Например, не все старые контроллеры и Legacy биосы в принципе видят 2+ Tb диски. Например, в моем случае в LSI 1068 он виделся только как 2 Tb. В набортном обычном SATA виделись почти все 3 Tb. Далее последовательность действий:

  1. Заранее проверяем, что parted, gdisk и прочее установлено
  2. Заменяем второй диск
  3. Подглядываем в http://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array
  4. Временно ставим MBR на второй большой диск
    1. parted /dev/sdX
    2. mklabel msdos
    3. quit
  5. Клонируем разделы с основного диска
    1. sfdisk -d /dev/sdY | sfdisk /dev/sdX
    2. Проверяем в fdisk, что все совпало
  6. Конвертируем в GPT
    1. gdisk /dev/sdX
    2. w
    3. То есть просто выход, никаких особых команд не надо, конвертация происходит автоматически
  7. Создаем еще один раздел в gdisk (не обязательно в начале, мой был под номером 3), ставим ему код EF02 (магия), размер якобы от 1 Мб, я создал 100 Мб на всякий случай 🙂
  8. По инструкции из пункта 3 добавляем разделы со второго диска в MD разделы
  9. Ждем синхронизации, можно ускорить выполнив
    1. echo 500000 > /proc/sys/dev/raid/speed_limit_min
  10. Устанавливаем grub-install /dev/sdX
  11. Выставляем в биосе загрузку с нового диска и отключаем старый
  12. Возможно, пингвиньи боги сжалились и ОС загрузилась
  13. Мне не повезло :), появлется grub rescue, который не видит массива
  14. Грузимся в ubuntu rescue, доходим до выбора корня, автоматом оно его не найдет, открываем по alt-F2 консольку
  15. cat /proc/mdstat показывает, что /dev/mdXXX inactive и вообще все плохо
  16. Пересобираем массив
    1. mdadm –stop /dev/mdXXX
    2. mdadm –assemble –force /dev/md0 /dev/sdaX
    3. Пробуем его примонтировать куда ни будь, посмотреть, что там, если все ОК – umount
  17. exit – возвращаемся в ubuntu rescue, выбираем корнем /dev/md0
  18. Тут же выбираем пункт resintall grub
  19. Запускаем шелл с корнем в md0, я на всякий случай проверил, что mduuid (виден по mdadm –detail) и uuid /dev/md0 (виден по blkid) совпадают с теми, что прописаны в /boot/grub/grub.cfg и /etc/fstab
  20. Выходим из rescue, ребутимся, все хорошо, ОС запускается с первого диска
  21. Клонируем GPT таблицу
    1. sgdisk -R/dev/target /dev/source (главное не перепутать source с destination)
  22. По инструкции из пункта 3 добавляем разделы в md
  23. Скорее всего надо обновить в /etc/fstab uuid для swap разделов
  24. grub-install на новый диск
  25. После окончательного синка перезагружаемся, проверяем, что диски в массиве, свопы на месте, для особо дотошных, можно загрузиться со второго диска для проверки
  26. Осваиваем новое полученное место

ANT+ в S4 таки работает

Наконец дошли руки купить намеченное вот тут.

8aa1f50ad3

O-synce делает именно такие, как я и хотел, велокомпьютеры: простые, дешевые и с поддержкой ANT+, а так же датчики. Альтернатив в этой цене практически нет (пересмотрел весь каталог на сайте ANT+). Весь нужный ассортимент доступен в Велопланете. Сегодня прямо перед пробежкой вспомнил о покупке и нацепил пульсометр. Эндомонда распознала сразу, ничего особо настраивать не пришлось. Работает стабильно.

hrpm

 

Осталось дождаться весны и обкатать велокомп с параллельной записью в Эндомонду.

Доступы пользователя IAM к одному бакету S3

Допустим, если хочется со своего аккаунта и карточки купить сервис AWS, но выделить отдельного пользователя с правами исключительно на один S3 бакет – например поручить роботу бекапы заливать туда, то не все очевидно. Последовательность такая:

  1. Активировать сервисы S3 & IAM
  2. В дашборде IAM можно сделать алиаз (УРЛ), что бы было удобнее логиниться через веб для тестов
  3. Создать пользователя или группу в IAM, необходимые явки и пароли (ключ для API типа s3sync, пароль для тестов через веб)
  4. Создать бакет в S3
  5. Далее на вкладке Permissions в IAM добавляем две политики (не забыть дать разные названия, кстати, OMG, это JSON код):
    1. {
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
          }
        ]
      }
    2. {
        "Statement": [
          {
            "Action": "s3:*",
            "Effect": "Allow",
            "Resource": [
              "arn:aws:s3:::mycoolbackupbucket",
              "arn:aws:s3:::mycoolbackupbucket/*"
            ]
          }
        ]
      }
  6. Первая политика нужна для того, что бы отобразить все бакеты, в ненужные пускать не будет, но список всех будет видно, да…
  7. Enjoy, а вот нафига в настройках самого бакета это было не сделать – мне не понятно, сырая система этот AWS, чего уж тут 🙂

Byobu & MC на Ubuntu 12.04

По умолчанию byobu использует F-keys для управления. Я как давний пользователь screen привык к ctrl-a, поэтому мне F клавиши не нужны. С другой стороны я так же давний любитель MCшки, в которой постоянно нужны F клавиши. Готовый рецепт Ctrl-A ! в Ubuntu 12.04 не работает. Выдает “can’t break with only one pane”. Еле нашел как исправить:

  1. byobu-select-backend и переключить на screen вместо tmux
  2. добавить в /usr/share/byobu/keybindings/common строку
    source $BYOBU_PREFIX/share/byobu/keybindings/f-keys.screen.disable
    внизу файла