Bitrix: There are servers that cannot be used!
Проблема
При создании пула серверов с помощью утилиты ~/menu.sh (которая поставляется с Битрикс окружением), вы можете столкнуться с сообщением: There are servers that cannot be used!
В моем случае еще и в колонке с Errors была ошибка: 1. 600 (что бы это не значило)
Что пишут в интернете
Некоторые рекомендуют пересоздать пул серверов предварительно выполнив команду
rm -rf /etc/ansible/host* /etc/ansible/group_vars/ /etc/ansible/ansible-roles
которая особенно полезна, если у вас ~/menu.sh после ваших манипуляций совсем не запускается, выкидывая что-то типа
Error deleting the host: Pool::get_ansible_inventory: Not found records in ansible config /etc/ansible/hosts
Мне пересоздание пула не помогло.
Мой кейс
Объяснение
На деле тут всё прозаично. Дело в том, что на моём хосте отключен вход по ssh из под root. Поэтому я выполнял команду sudo -i чтобы выполнять команды из под root. Вследствие чего после установки окружения, не произошло классической процедуры смены пароля пользователя bitrix (который создается при установке окружения и запрашивается в интерактивном режиме).
При запуске ~/menu.sh скрипт проверяет сервера в пуле командой
/opt/webdir/bin/wrapper_ansible_conf -a bx_info -H <hosts_ip_address>
Пример плохого вывода
bx_variables:vm17:7.5-2:password must be changed:eth0=<IP_ADDRESS>:600:5.7.42:7.4.33:Percona-Server-server:set:/root/.my.cnf:active:7:not_installed
Если что-то ему не понравилось, то он складывает такой сервер в переменную POOL_UNU_SERVER_LIST из которой потом строит табличку "There are servers that cannot be used!".
В моём случае скрипт обнаружил в этой строке "password must be changed". Мне всё сразу стало ясным, я остановил свой процесс отладки, сделав ставку на то, что это как раз в результате отсутствия смены пароля bitrix в процедуре моей конкретной установки. И не ошибся.
Решение
Решение очень простое, смените пароль пользователя bitrix:
passwd bitrix
Рекомендация
Я предполагаю, что если бы я логинился по ssh из под root, то проблемы бы вообще не случилось. Если вам очень хочется, то на время установки bitrix-env можно включить PermitRootLogin и логиниться исключительно из под root.
Это делается в файле /etc/ssh/sshd_config:
PermitRootLogin yes
После чего просто перезапустите sshd
systemctl restart sshd
Дело в том, что мой кейс не единственный из-за чего таблица "There are servers that cannot be used!" может быть заполнена. Поэтому данная рекомендация может уберечь вас от граблей.