linux_postinstall
linux_postinstall
Роль Ansible. Настройка Linux: acpi, псевдонимы, apparmor, apt, авторизованные ключи, autofs, автоматические обновления, bluetooth, cron, debsums, dnsmasq, fstab, gpg, gpsd, группы, grub, имя хоста, hosts, chrony, iptables, kvm, latex, libvirt, lid, logrotate, modem manager, модули, netplan, networkd, networkmanager, nfsd, пакеты, пароли, pm-utils, postfix, rc.local, репозитории, resolvconf, сервисы, smart, speech-dispatcher, ssh, sshd, sudoers, swap, sysctl, systemd, timesyncd, часовой пояс, tlp, udev, ufw, пользователи, virtualbox, wpa_gui, wpa_supplicant, xen, xorg.conf.d, zfs, (в работе...)
Документация на readthedocs.io
Эта роль и документация находятся в процессе разработки. Если документация по какой-либо задаче отсутствует, необходимо посмотреть исходный код, чтобы узнать, как ее использовать. Если какой-либо функционал отсутствует, рассмотрите роль config_light. Смотрите различные примеры. Если config_light не может выполнить то, что вам нужно, создайте новые задачи.
Не стесняйтесь делиться своим мнением и сообщать об ошибках.
Поддерживаемые платформы
Эта роль была разработана и протестирована на:
- Поддерживаемых версиях Ubuntu
- Armbian 5.90
Поддержка других платформ находится в стадии разработки. Некоторые задачи также поддерживаются Centos. Вы можете настроить переменные в vars/defaults и протестировать задачи самостоятельно.
Требования
Роли
Коллекции
- ansible.posix
- ansible.utils
- community.general
Переменные роли
Смотрите значения по умолчанию и примеры в vars.
Рабочий процесс
- Установите роли и коллекции
Установите роли
shell> ansible-galaxy role install vbotka.linux_postinstall
shell> ansible-galaxy role install vbotka.ansible_lib
shell> ansible-galaxy role install vbotka.linux_lib
Коллекции ansible.posix и community.general включены в стандартные пакеты ansible. Если они отсутствуют, установите их
shell> ansible-galaxy collection install ansible.posix
shell> ansible-galaxy collection install ansible.utils
shell> ansible-galaxy collection install community.general
- Измените переменные, например, в vars/main.yml
shell> editor vbotka.linux_postinstall/vars/main.yml
- Смотрите переменные, специфичные для ОС, в vars/defaults
- Смотрите примеры в vars/main.yml.sample
- Настройте и/или добавьте специфичные для Flavor переменные в vars/flavors
- При необходимости включите lp_flavors_enable: true. Это замедлит выполнение плейбука
- При необходимости поместите пользовательские переменные специфичные для ОС в каталог vars
- Смотрите tasks/vars.yml для правил именования и приоритета
- Переменные специфичные для ОС будут перекрывать переменные в var/main.yml
- Создайте инвентарь
shell> cat hosts
[group1]
host1.example.com
[group1:vars]
ansible_user=admin
ansible_connection=ssh
ansible_python_interpreter=/usr/bin/python3.8
ansible_perl_interpreter=/usr/bin/perl
- Создайте плейбук
shell> cat lp.yml
- hosts: group1
become: yes
become_user: root
become_method: sudo
roles:
- vbotka.linux_postinstall
- Запустите плейбук
shell> ansible-playbook lp.yml
Лучшие практики
Проверьте синтаксис плейбука
shell> ansible-playbook lp.yml --syntax-check
Просмотрите переменные. При необходимости определите и сохраните флеши.
shell> ansible-playbook lp.yml -t lp_vars
Запустите плейбук в режиме проверки
shell> ansible-playbook lp.yml --check
Если все хорошо, запустите плейбук дважды. В втором запуске все задачи должны быть ОК, и изменений, недоступных или неуспешных не должно быть.
shell> ansible-playbook lp.yml
Автоустановка пакетов
Пакеты, перечисленные в переменных lp_*_packages
, будут автоматически установлены с помощью задач из tasks/packages.yml
, если включены переменные lp_*_install
. Например,
lp_libvirt_install: true
lp_libvirt_packages:
- libvirt0
- libvirt-bin
- libvirt-daemon
- libvirt-daemon-driver-storage-rbd
- libvirt-daemon-system
- virtinst
Пакеты, перечисленные в lp_libvirt_packages
, будут включены в пакеты, установленные с помощью
shell> ansible-playbook lp.yml -t lp_packages_auto -e lp_packages_auto=true
Смотрите:
- главу Пакеты
- исходный код packages.yml
Автоматическое управление службами
Переменная lp_service_auto
содержит список служб, которые автоматически управляются задачей service.yml. Служба будет управляться задачей service.yml, если lp_<service>: true
. Установка lp_<service>: false
отключит управление службой этой задачей service.yml. Переменные lp_<service>_enable
и lp_<service>_state
контролируют включение и состояние службы. Например, служба udev, если установить lp_udev: true,
будет включена и запущена, потому что она указана среди lp_service_auto
и по умолчанию (приоритет 2.):
lp_udev: true
lp_udev_enable: true
lp_udev_state: started
Запустите следующую команду, чтобы увидеть, какие службы будут управляться.
shell> ansible-playbook lp.yml -e lp_service_debug=true -t lp_service_debug
Смотрите:
- главу Служба
- исходный код service.yml
Рекомендуемая конфигурация после установки ОС
- Настройка пользователей, sudoers и постоянных сетевых интерфейсов
ansible-playbook lp.yml -t lp_vars
ansible-playbook lp.yml -t lp_hostname
ansible-playbook lp.yml -t lp_groups
ansible-playbook lp.yml -t lp_users
ansible-playbook lp.yml -t lp_sudoers
ansible-playbook lp.yml -t lp_udev
ansible-playbook lp.yml -t lp_netplan
ansible-playbook lp.yml -t lp_wpasupplicant
ansible-playbook lp.yml -t lp_reboot -e 'lp_reboot=true lp_reboot_force=true'
- Настройка брандмауэра. Например, iptables
shell> ansible-playbook lp.yml -t lp_iptables
- Тестируйте установку пакетов
shell> ansible-playbook -t lp_packages -e 'lp_package_install_dryrun=true' lp.yml
- Установите пакеты
shell> ansible-playbook -t lp_packages lp.yml
- Проверьте, установите и настройте другие задачи
shell> ansible-playbook lp.yml --check
shell> ansible-playbook lp.yml
Ansible lint
Используйте файл конфигурации .ansible-lint.local при запуске ansible-lint. Некоторые правила могут быть отключены, и некоторые предупреждения могут быть проигнорированы. Смотрите примечания в файле конфигурации.
shell> ansible-lint -c .ansible-lint.local
Лицензия
Информация об авторе
Ссылки
- Официальная документация Ubuntu
- Релизы Ubuntu
- Armbian linux для плат ARM
- Руководство системного администратора RHEL 7
(и другие источники, перечисленные в оригинальном тексте)
ansible-galaxy install vbotka/ansible-linux-postinstall