Разрешение имен хостов Ansible с фильтром ipaddr возвращает False?

К сожалению, вы не опубликовали свой системный журнал -ng config,так что я просто предполагаю, основываясь на своем собственном опыте с этим типом ошибок.

Сообщение об ошибке немного вводит в заблуждение. Текущий профиль apparmor запрещает syslog-ngдоступ к нескольким файлам. Распространенной проблемой является /dev/kmsg, которая необходима при использовании источника, подобного этому:

source kernsrc {
    file("/proc/kmsg");
};

Несмотря на то, что доступ к файлу должен осуществляться через /proc/kmsg, syslog -ng проверяет некоторые условия в /dev/kmsgперед продолжением (проверяется с помощьюstrace). Поскольку этот файл не может быть прочитан syslog -ng, он не запускается.

Я уже отправил эту ошибку в багтрекер -профилей здесь .

Тем временем вы можете исправить это, вручную отредактировав профиль, чтобы разрешить syslog-ngчитать /dev/kmsg. Добавьте эту строку разрешений где-нибудь в список в профиле apparmor для syslog-ng, возможно/etc/apparmor.d/sbin.syslog-ng:

/dev/kmsg r,

0
09.01.2020, 19:59
1 ответ

Фильтр ipv4 не является фильтром разрешения имен. Он просто проверяет, является ли переданная строка действительным адресом IPv4.

Если вы хотите разрешить DNS-адрес, вам, вероятно, следует использовать плагин поиска «dig».

https://docs.ansible.com/ansible/latest/plugins/lookup/dig.html

Пример

$ ansible localhost -m debug \
  -a 'msg={{lookup("dig","www.google.com/a",wantlist=true)|first}}'

localhost | SUCCESS => {
    "msg": "172.217.14.196"
}
2
28.01.2020, 02:29

Теги

Похожие вопросы