Ansible не вызывает изменений в файле инвентаря / hosts

#ansible

#ansible

Вопрос:

У меня есть Ansible Playbook и несколько сотен хостов в inventory/hosts , и я могу запустить Playbook, и все работает нормально, никаких проблем.

Но я заметил, что если я внес какие-либо изменения в inventory/hosts файл, кажется, что он продолжает просматривать все старые записи, которые раньше были там и которых там больше нет. Существует ли какой-либо механизм кэширования, который включен по умолчанию? Если да, возможно ли отключить это?

Если я действительно использую -i inventory/hosts файл, кажется, что он работает нормально. Даже если я запускаю Playbook подобным образом, он все равно должен использовать тот же inventory/hosts файл.

ansible-информация о сборнике.yaml

Ответ №1:

inventory/hosts текущий каталог не является инвентарем по умолчанию, если вы опускаете его в командной строке ansible-playbook (если вы не настроили его в ansible.cfg).

Обычно инвентарь по умолчанию /etc/ansible/hosts . Вы можете легко увидеть инвентарь по умолчанию (и используется ли файл конфигурации), выполнив ansible-playbook -v my_playbook.yml (других опций нет) и просмотрев первые строки вывода.

Я предполагаю, что вы изменяете инвентарь, который не является тем, который вы используете.

Что касается вашего вопроса о кэше, существуют механизмы кэширования, которые можно использовать для фактов и динамических инвентаризаций, но они должны быть специально включены и настроены (например, установка redis, указание пути к файлу кэша …).

Комментарии:

1. Вы правы, говоря, что он просматривает inventory / hosts по умолчанию, который находится в /etc/ ansible / hosts, но я просто просматриваю этот файл, и там ничего нет, кроме некоторых образцов, которые все закомментированы, и я просто запустил опцию -v и вижу, что он просматривает правильный файл inventory / hosts

2. Вы заметили, что при запуске с -v используется файл ansible.cfg? Настроены ли там какие-либо механизмы кэширования?

3. Только что проверил это, и никакие механизмы кэширования не включены.

4. Извините, но у меня закончились идеи по этому поводу. Вы должны запустить с -vvv для полной отладки и внимательно посмотреть на результат. Надеюсь, вы найдете некоторую информацию, которая решит вашу проблему.

5. Да, я тоже застрял на этом, я попробовал -vvv, но то же самое, он показывает, что он использует правильный inventory / hosts, что странно, потому что, если я использую -i inventory / hosts, это работает, что не имеет никакого смысла