Это мой набор плейбуков для Ansible, который решает мои задачи по настройке виртуальных машин. Буду рад, если он поможет вам в вашей работе. Все плейбуки вы можете выполнять только на свой страх и риск. Читайте внимательно текст плейбуков перед их запуском и всегда имейте варианты отката от изменений, которые могут нарушить работу вашего сервера.
Установка certbot с поддержкой Cloudflare DNS Challenge. Позволяет установить Wildcard сертификат. Требует установки переменных:
cloudflare_api_token: CLOUDFLARE_API_TOKEN
certbot_domain: example.org
certbot_email_address: admin@example.org
Если API токен не указан установка не выполняется.
Если не указано имя домена или email адрес администратора, сертификат не выпускается.
Первоначальная настройка сервера. После завершения работы скрипта доступ к серверу будет возможет только по ключу. Доступ пользователю root будет закрыт!!!
Для работы скрипта требуются установленные переменные. Можно их устанавливать для каждого сервера отдельно, но если они одинаковые, то для удобства их можно установить в group_vars
для группы install
:
admin_user_name: ADMIN_USERNAME
admin_user_password: ADMIN_PASSWORD
ADMIN_USERNAME - пользователь, используемый для управления сервером; ADMIN_PASSWORD — хеш пароля пользователя.
Пример файла инвентаря:
install:
hosts:
host.example.org:
vars:
ansible_user: root
ansible_password: PASSWORD
В случае указания ansible_password
может возникнуть ошибка, если сервер не добавлен в known_hosts
. Это происходит в целях безопасности, чтобы пароль не утёк на сторонний сервер. Для решения этой проблемы необходимо заранее подключиться к серверу и принять ключ (пароль вводить не обязательно, достаточно принять ключ), либо добавить переменную окружения для игнорирования ошибки:
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i INVENTORY install.yaml
Также можно не указывать пароль в файле инвентаризации, а запросить его в ходе подключения к серверу:
ansible-playbook -i INVENTORY install.yaml --ask-pass
Установка переменных, например, групповых или для конкретной машины, может обеспечить запуск установки некоторых других настроек.
Можно подключить необходимую локаль. Для неё будет выполнена операция locale-gen и установка в качестве локали по умолчанию.
locale: ru_RU.UTF-8
При необходимости можно установить часовой пояс:
locale: ru_RU.UTF-8
Включает перенаправление пакетов IPv4 через опцию sysctl.
Включает перенаправление пакетов IPv6 через опцию sysctl.
Включает опцию net.ipv6.ip_nonlocal_bind в sysctl позволяющую использовать IPv6 адрес без активного сетевого интерфейса с этим адресом.
Производит установку сервера nginx и php. После установки активные vhost отсутствуют!!!
Копирует публичные ключи доступа из файла ssh-keys.pub
на все серверы из инвентаря.
Попирует файл настроек sshd, который запрещает доступ для root и вход с помощью паролей для всех пользователей.
Выполняет установку обновлений операционной системы для Debian based серверов.
Выполняет установку обновлений операционной системы для RedHat based серверов.
Выполняет обновление Debian и RedHat based серверов.
Создаёт пользователя на сервере и загружает в него публичные ключи доступа из ssh-keys.pub
. При работе использует переменные:
admin_user_name: ИМЯ_ПОЛЬЗОВАТЕЛЯ
admin_user_password: ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ