Rad
спасибо, попробую
Tyler
Почему может apt начать выбивать ошибку после добавления нового репозитория? код ошибки: https://pastebin.com/1fBVqMXg
Tyler
Damir
Tyler
Lamobot
Сама ошибка похожа нехватку каких-то лимитов типа nofiles
Lamobot
или все pid на машине заняты
Damir
Damir
С таким же вопросом
Sergey
Коллеги, кто-либо использовал низкоуровневые объекты типа ansible.pasing.vault?
Sergey
В плагинах/модулях?...
V
Добрый день, коллеги. Подскажите куда копать. У меня получается отправить сетевую железку в ребут ансиблом, но задание просто виснет на этапе отправки команды в ребут и похоже что тайм-аут модуля телнет на это никак не влияет. Хочется чего.. чтобы железка отправилась в ребут и ансибл перескачил на следующий таск wait_for.. и соответственно проверил поднялась ли железка..
V
Как-то можно ему сказать.. - не жди ответа на таск с перезагрузкой?
Lamobot
Когда-то работал такой набор команд, возможно сейчас что-то получше появилось
- name: "Restart server"
shell: "sleep 2 && /sbin/shutdown -r now"
async: 1
poll: 0
become: true
ignore_errors: true
- name: "Check for restart"
local_action: wait_for host="{{ inventory_hostname }}" state=started
port=22 delay=30 timeout=600
become: false
George
V
А модуля здесь как понимаю два shell и wait_for - остальное атрибуты их, так?
Lamobot
V
Несколько плаваю.. с точной терминологией.. .. то есть у таска имеются ещё и какие-то общие атрибуты, которые могут быть не указаны в свойствах используемого модуля?
V
Тыкнете где копнуть- почитать?
Lamobot
wait_for можно переписать на новый лад:
- name: "Check for restart"
wait_for:
host: "{{ inventory_hostname }}"
state: started
port: 22
delay: 30
timeout: 600
delegate_to: localhost
become: false
Lamobot
V
Ага.. спасибо большое..
V
То что нужно.. для понимания..
Lamobot
Меня в терминологии могут поправить более сведущие товарищи, но я себе это представляю так
Anonymous
Ребят, такой кейс. использую copy чтобы положить файл.
Вот так работает:
copy:
src: "../../file"
dest: "/tmp/ci_{{ buildnum }}/"
Вот так нет:
copy:
src: "../../dir/file"
dest: "/tmp/ci_{{ buildnum }}/"
Почему?
Dmitriy
а перед file точно есть папка dir ?
Anonymous
Да, забыл в IDEA пометить директорию для коммита
Dmitriy
ну, хорошо что помог :)
Damir
Плюс, не мешает добавить таск на проверку конективити до таргет хостов
Damir
- name: Check connectivity
local_action: 'shell sshpass -p {{ ssh_password }} ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt {{ssh_user}}@{{ssh_host}} '
register: ssh_result
no_log: True
failed_when: not ssh_result.rc == 0
when: check_login | default(False)
retries: 10
delay: "{{ ssh_delay_seconds | default(10) }}"
Damir
В качестве референса, пример выше
Lamobot
Damir
То что логика на уровне сервиса (ssh) отрабатывает. Не всегда доступность порта 22 говорит о том что ssh готов к работе
Lamobot
Oleg
ребзы, как избавиться от симолов [u'?
George
зачем?
George
это просто деноминатор, что строка в юникоде
Oleg
регистрирую переменную, а в соедующую таску она уже с [u' вставляется
Oleg
и модулю shell это не нра,например
Damir
Sergey
George
Oleg
Можно пример таска?
- name: 1
shell: ls /dev/sda* | wc -l
register: sda_number
- set_fcat:
sda: '{{sda_number.stdout_lines}}'
- name: 2
shell: /bin/echo -e "n\np\n'{{sda}}'\n\n\nt\n8e\nw" | sudo fdisk /dev/sda
George
Oleg
🤓
George
во-первых, определять количество дисков - так - выстрелить себе в ногу
Damir
😭😭😭
George
ибо sda1,2,3,4 - насколько я помню - праймари разделы, остальные - по очереди.
George
второй момент - parted не осилили? у него вполне внятный cli
George
и не нужно пытаться в стдин fdisk засовывать рандомные данные
George
в третьих
Sergey
Oleg
George
sda_number.stdout_lines -> это будет список строк как бы
Alex
а в ансибле есть способ проверить, что директория существует и она не нулевого размера? Или только через bash?
Damir
Damir
И не надо вот этого всего с шелл командами городить )
Damir
George
George
Oleg
Damir
George
ну, это не повод пытаться его не использовать
Oleg
не дает из неразмеченной области создать
Oleg
вот и пошел к шеллу)
Damir
Alex
Alex
а как мне stat поможет в случае директории?
Alex
size всегда возвращает 4096
Albert
"{{ ansible_devices['sda']['partitions'].keys() | lenght }}"
Damir
а как мне stat поможет в случае директории?
Я бы сделал как-то так:
- name: Reading the status directory
stat:
path: "/path/to-dir/"
register: status_dir
- name: Verify that directory exists
assert:
that:
- status_dir.stat.exists == True
msg: "Dir does not exist"
Alex
Damir
Я к тому что, ваш такс можно обложить тестами проверки на базе stat + assert