27 апр. 2017 г.

dnsmasq on macos

Потихоньку превращаю сайтик в link-блог, ну да нестрашно.
Потребовалось на скорую руку поднять локальный dnsmasq на макбуке. Если с конфигом все ясно: brew подсказывает, где его взять и куда положить, а что писать внутри, мы и сами с усами, то как запускать и автостартовать демона, сходу неясно. Вот тут поясняют, спасибо.
Краткая выжимка  про запуск:
  • положить скрипт инициализации в ожидаемое ОС место для автозагрузки:
sudo cp -v $(brew --prefix dnsmasq)/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons

  • запустить вот прямо сейчас:

sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

25 апр. 2017 г.

Bash. Подводные камни

Прилетела в одном из чатиков ранее не замеченная статья про bash. Очень рекомендуется к прочтению.

13 апр. 2017 г.

Ansible -vvv reveals sensitive data

В процессе дебага плейбуков заметил очень неприятную особенность: при увеличении уровня verbose в лог (на экран и в файл) попадают те данные в открытом виде, что скрыты в vault-файле. В том случае, когда это критично (компрометация в логе закрытых ключей, паролей, и так далее), следует добавлять к заданиям параметр no_log. При его включении весь вывод команды заменяется на подавляется вне зависимости от количества -v.
- name: create user accounts
  user:
    state: present
    name: "{{ item.username }}"
    shell: "{{ item.shell | default(default_shell) }}"
    groups: "{{ item.groups | default(omit) }}"
    comment: "{{ item.name }} ({{ item.comment | default(omit) }})"
    password: "{{ item.password | default(dis_default_pass) }}"
    append: yes
    update_password: on_create
  with_items: "{{regular_users}} + {{vip_users}}"
  no_log: yes
Выглядит это так:
TASK [user-mgmt : create user accounts] ****************************************
ok: [01.example.com] => (item=(censored due to no_log)) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result"} 
По этому поводу есть тикет в github, в котором также рекомендуется использовать no_log.  

10 апр. 2017 г.

ansible-playbook: exclude host

Если нужно исключить из списка хостов только один-два-несколько позиций, а на остальных плейбук проиграть, то делай так:
ansible-playbook --limit 'all:!bad_host' playbook.yml
Взято отсюда

6 апр. 2017 г.

yum + linux kernel

В CentOS (и, полагаю, во всех его "родственниках") довольно удобно удалять старые ядра:
package-cleanup --oldkernels --count=2
В результате останется текущее ядро и предыдущее.
Если команда не найдена, нужно доустановить пакет yum-utils.