Вопрос или проблема
Я пытаюсь предварительно проверить kolla-ansible перед развертыванием OpenStack, но возникла проблема, которую я не знаю, как решить. Я следовал этому документу для настройки:
https://github.com/hocchudong/ghichep-OpenStack/blob/master/13-Kolla/kolla-ansible/Kolla-Ansible-Docker.md
Кто-нибудь может помочь?
ОБНОВЛЕНИЕ:
Я исправил ошибку отсутствия sudo, установив sshpass на контроллер и запустив эту команду на каждом узле echo "user_name ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/user_name
Когда я предварительно проверил, все было в порядке, поэтому я решил развернуть
kolla-ansible -i multinode deploy
Убедитесь, что вы включили использование небезопасного реестра docker в файле globals.yml, чтобы пройти мимо
убедитесь, что образ fluentd имеется для проверки метки
ошибка.
################
# Опции Docker
################
# Настройки пользовательского реестра docker:
#docker_registry
# Пожалуйста, внимательно прочитайте документацию перед применением docker_registry_insecure.
docker_registry_insecure: “yes”
#docker_registry_username:
# docker_registry_password задан в файле passwords.yml.
спасибо, я застрял на 3 дня из-за проблемы с отсутствием пароля.
В моем случае у меня есть:
узел развертывания
узел хранения
вычислительный узел
контроллерный узел
Поэтому я установил sshpass на все узлы, так же как и добавил своего пользователя в sudoers
Если я установлю ненадежность реестра, развертывание не удалось, поэтому мне это не нужно в моем случае.
Ответ или решение
Когда вы сталкиваетесь с проблемой, связанной с ошибкой sudo при использовании kolla-ansible для развертывания OpenStack, это может вызывать значительные затруднения, особенно если вы следуете официальным документам и всё же наталкиваетесь на преграды. В этом случае для решения проблемы необходимо понимание того, как работают привилегии sudo и какие настройки требуются для корректной работы инструментов автоматизации.
Теория
Проблема с Sudo:
Когда kolla-ansible выполняет задачи на удалённых узлах, он использует SSH для подключения и выполнения команд от имени определенного пользователя. В большинстве случаев эти команды требуют административных привилегий, поэтому обычно используется механизм sudo. Конфигурация sudo по умолчанию может запрашивать пароль, что мешает автоматизированному процессу.
Решение с Использованием SSH:
Чтобы обеспечить беспрепятственное выполнение команд, часто применяют разрешение безпарольного выполнения команд sudo для указанного пользователя. Это достигается с помощью конфигурации файла sudoers, добавляя запись NOPASSWD
для нужного пользователя.
Использование Сторонних Утилит:
Утилита sshpass
может быть полезна в ряде случаев, когда необходимо передать пароль при подключении по SSH или для автоматизации процессов развертывания, но при правильной настройке этого обычно удается избежать.
Пример
В вашем случае вы столкнулись с проблемой, когда необходимо было вручную добавлять конфигурацию в sudoers на каждом узле, используя следующую команду:
echo "user_name ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/user_name
Работа с kolla-ansible
Kolla-ansible требует подготовительного этапа precheck, который, по сути, проверяет готовность системы к развертыванию. На этом этапе важно убедиться, что отсутствуют проблемы с доступами. Как только команда precheck выполняется без ошибок, вы можете приступить к основной фазе развертывания.
Применение
Обеспечение безопасности и корректной работы:
-
Конфигурация sudoers:
- Убедитесь, что на всех актуальных узлах (controller, compute, storage, deployment) настроен файл sudoers согласно примеру выше.
- Проверьте, что запись в /etc/sudoers.d/ корректно применена и не содержит ошибок ввода, которые могут повлиять на безопасность.
-
Проверка SSH и sudo:
- Проверьте корректность SSH-ключей на узлах, чтобы убедиться, что они могут автоматически подключаться без пароля.
- Убедитесь, что префикс
sudo
станции не запрашивает пароль при вызове соответствующих команд.
-
Настройка docker_registry_insecure:
- Это может быть полезно, если ваш частный реестр Docker неправильно настроен на использование SSL-сертификатов.
- Имейте в виду, что настройка insecure-регистра может не потребоваться в случаях, когда SSL-сертификаты конфигурированы правильно.
Заключение
Решение подобных проблем требует систематического подхода и понимания того, как различные элементы системы интегрируются. Важно не только настроить всё правильно, но и понимать последствия каждой конфигурационной модификации для безопасности и стабильности системы.
Дальнейшие шаги могут включать в себя тестирование развертывания в изолированной среде после изменения конфигураций, чтобы убедиться в отсутствии новых проблем. Следует также учитывать, что документация и руководства содержат базовые инструкции, но они могут требовать адаптации под конкретную среду или требования вашей организации.