Николай
Значит, что надо посмотреть в stdout/stderr for the exact error
Wadik
А , все разобрался
Wadik
Shared connection to closed
Wadik
Не , не разобрался
Wadik
"module_stdout": "Traceback (most recent call last):\r\n File \"/root/.ansible/tmp/ansible-tmp-1592213611.491804-41769013549783/AnsiballZ_lineinfile.py\", line 113, in <module>\r\n _ansiballz_main()\r\n File \"/root/.ansible/tmp/ansible-tmp-1592213611.491804-41769013549783/AnsiballZ_lineinfile.py\", line 105, in _ansiballz_main\r\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n File \"/root/.ansible/tmp/ansible-tmp-1592213611.491804-41769013549783/AnsiballZ_lineinfile.py\", line 48, in invoke_module\r\n imp.load_module('main', mod, module, MOD_DESC)\r\n File \"/tmp/ansible_lineinfile_payload_JMmeoI/main.py\", line 524, in <module>\r\n File \"/tmp/ansible_lineinfile_payload_JMmeoI/main.py\", line 515, in main\r\n File \"/tmp/ansible_lineinfile_payload_JMmeoI/main.py\", line 264, in present\r\n File \"/usr/lib/python2.7/re.py\", line 194, in compile\r\n return _compile(pattern, flags)\r\n File \"/usr/lib/python2.7/re.py\", line 251, in _compile\r\n raise error, v # invalid expression\r\nsre_constants.error: bad character range\r\n",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
Wadik
что это вообще может значить
Mista
Что нужно простыню закинуть на pastebin
Wadik
https://pastebin.com/4rTp7pw2
Mista
Похоже где-то неэкранируемые спец символы
Mista
Вот парсер и улетает
Wadik
https://pastebin.com/8tPLtgZd
Wadik
вот такой у меня плэйбуук
Wadik
вроде верно, но это не точно
Wadik
Alex
fatal: [app_slave]: FAILED! => changed=false
attempts: 5
msg: The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.. The Python 2 yum module is needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.
...ignoring
подскажите, а как лечить при использовании python3. Получаю такую ошибку на CentOS 7
Alex
замена yum на dnf ничего не дала
Alex
fatal: [app_slave]: FAILED! => changed=false
msg:
attempts: 5
changed: false
cmd: dnf install -y python3-dnf
failed: true
msg: '[Errno 2] No such file or directory: b''dnf'': b''dnf'''
rc: 2
Anastasia
Alex
а у вас dnf установлен?
fatal: [app_slave]: FAILED! => changed=false
msg:
attempts: 5
changed: false
cmd: dnf install -y python3-dnf
failed: true
msg: Could not import the dnf python module using /usr/bin/python3 (3.6.8 (default, Apr 2 2020, 13:34:55) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]). Please install `python3-dnf` package or ensure you have specified the correct ansible_python_interpreter.
rc: 1
results: []
stderr: |-
Error: Unable to find a match: python3-dnf
stderr_lines:
- 'Error: Unable to find a match: python3-dnf'
stdout: |-
Last metadata expiration check: 0:02:06 ago on Mon Jun 15 10:35:06 2020.
No match for argument: python3-dnf
stdout_lines:
- 'Last metadata expiration check: 0:02:06 ago on Mon Jun 15 10:35:06 2020.'
- 'No match for argument: python3-dnf'
Michael
Anastasia
yum не работает на python3, а без yum не установить пакеты для dnf
Michael
Michael
Мэй би shell?!
Michael
Или package?
Michael
Michael
Костыль, но должно сработать
Alex
Alex
Куда ссылается?
# ls -lad /usr/bin/python3
lrwxrwxrwx. 1 root root 9 Jun 15 09:55 /usr/bin/python3 -> python3.6
Wadik
Подскажите можно ли как то через lineinfile добавить строку использую $HOSTNAME ?
Андрей
Alex
просто тут многие тыкали. что python2 мертвый не юзай его, все пацаны уже на 3м
Alex
а оно не все так гладко )))
Gleb
с 7 центосом весело вообще
Gleb
и 3 питоном
Андрей
Я хочу в файлик на разных хостах добавить строку с именем этого хоста
lineinfile:
path: "/etc/hosts"
regexp: ".*\t{{ hostvars[item]['ansible_hostname']}}\t{{ hostvars[item]['ansible_hostname']}}"
line: "{{ hostvars[item]['ansible_env'].SSH_CONNECTION.split(' ')[2] }}\t{{ hostvars[item]['ansible_hostname']}}\t{{ hostvars[item]['ansible_hostname']}}"
state: present
backup: yes
я делаю так, но это для hosts
Андрей
думаю под твои цели тоже сойдет)
Alex
Должно помочь
не помогает
fatal: [app_master]: FAILED! => changed=false
attempts: 5
msg: The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.. The Python 2 yum module is needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.
...ignoring
Anastasia
Alex
в данный момент - нет, но в январе 2021 он будет дропнут, так что начинаем переход на 3ку
Alex
для 2го питона есть пакет python2-dnf, а вот для 3го нет
Wadik
Gleb
Gleb
можно для конкретного таска переопределять версию питона
Alex
Gleb
я вообще ничего адекватного не придумал если хочешь 3 питон юзать
Gleb
для центос 7
Gleb
- name: install docker pip packages
pip:
name: "{{ docker_pip_packages }}"
state: present
executable: /usr/bin/pip3
вот такая дичь завелась из-за этого
Alex
Gleb
вообще у редхата должно быть решение
Gleb
надо его найти только, если его нет - это будет очень странно
Alex
Gleb
ну оракл еще
Gleb
и сцаентифик
Gleb
все бейсд
Gleb
на 8 все отлично
Full
Народ, нид хелп, чет я вообще потерялся:
Таска:
- name: Add Users
user:
name: '{{ item.user }}'
password: '{{ item.pass }}'
groups: '{{ item.groups | default(omit) }}'
append: true
state: present
loop: '{{ users }}'
become: true
Скипается с сообщением:
"skip_reason": "Conditional result was False"
О каком условии он мне тут?
k
Full
Отбой тревоги.
Да, все так, уровнем выше. Я условие убрал, а запушить изменения забыл.
Full
Едем дальше.
Хочу скипать таску, если password отсутствует, или пустой.
Пробовал так:
- name: Add Users
user:
name: '{{ item.user }}'
password: '{{ item.pass }}'
loop: '{{ users }}'
when:
- users is defined
- item.pass is defined
- item.pass | length
Обламывается с ошибкой:
object of type 'NoneType' has no len()
Нуок, убираем item.pass | length - теперь юзеров с пустым паролем добавляет.
Как бы еще проверить, что переменная пустая?
Alex
Full
The conditional check 'item.pass | length > 0' failed
Full
Пункт, на котором фейлится:
- user: user2
pass:
groups:
- adm
- sudo
При вызове модуля там pass: none
Lamobot
Full
Хм, пошел смотреть.
Full
Чтоб не создавать юзеров с пустыми паролями.
Lamobot
Full
Не, ну так закономерно все хорошо.
Тут можно просто условие расширить, еще один rejectattr добавить.
Full
Мне кажется, он тут не пригодится. Там же написано, что false or an empty string, а у меня - None.
Anton
Ребят привет. А есть у кого рабочий плейбук с установкой докер-композ. У меня чет фейлиться