Rad
спасибо, попробую
Tyler
Почему может apt начать выбивать ошибку после добавления нового репозитория? код ошибки: https://pastebin.com/1fBVqMXg
Damir
вот такой вывод с apt-update https://pastebin.com/4XjQh9aE
А в ручную пробовали поставить пакет?
Lamobot
Сама ошибка похожа нехватку каких-то лимитов типа nofiles
Lamobot
или все pid на машине заняты
Tyler
Сама ошибка похожа нехватку каких-то лимитов типа nofiles
да, тоже нагуглил что стоит увеличить ОЗУ, помогло, спасибо
Damir
Сама ошибка похожа нехватку каких-то лимитов типа nofiles
Из контекста вопроса, видимо остальные пакеты из других репозиторий ставятся
Damir
да, тоже нагуглил что стоит увеличить ОЗУ, помогло, спасибо
Да, это была первая ссылка на стэковерфлоу
Damir
С таким же вопросом
Tyler
Да, это была первая ссылка на стэковерфлоу
ну я на репозитории долго грешил, тк когда меняешь порядок выполнения установок, все норм работало
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
V
А модуля здесь как понимаю два shell и wait_for - остальное атрибуты их, так?
Lamobot
А модуля здесь как понимаю два shell и wait_for - остальное атрибуты их, так?
Поправил формат. У shell это атрибуты таска, а не модуля
V
Несколько плаваю.. с точной терминологией.. .. то есть у таска имеются ещё и какие-то общие атрибуты, которые могут быть не указаны в свойствах используемого модуля?
V
Тыкнете где копнуть- почитать?
Lamobot
Тыкнете где копнуть- почитать?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html?highlight=async
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
Несколько плаваю.. с точной терминологией.. .. то есть у таска имеются ещё и какие-то общие атрибуты, которые могут быть не указаны в свойствах используемого модуля?
Есть таск, он использует модуль wait_for, у модуля есть определённые параметры, port, state итд. Но есть параметры и у таска, типа delegate_to, async
V
Ага.. спасибо большое..
V
То что нужно.. для понимания..
Lamobot
Меня в терминологии могут поправить более сведущие товарищи, но я себе это представляю так
Anonymous
Ребят, такой кейс. использую copy чтобы положить файл. Вот так работает: copy: src: "../../file" dest: "/tmp/ci_{{ buildnum }}/" Вот так нет: copy: src: "../../dir/file" dest: "/tmp/ci_{{ buildnum }}/" Почему?
Dmitriy
а перед file точно есть папка dir ?
Anonymous
а перед file точно есть папка dir ?
А, ну конечно, как можно медведя перед лицом не увидеть.
Anonymous
Да, забыл в IDEA пометить директорию для коммита
Dmitriy
ну, хорошо что помог :)
Damir
wait_for можно переписать на новый лад: - name: "Check for restart" wait_for: host: "{{ inventory_hostname }}" state: started port: 22 delay: 30 timeout: 600 delegate_to: localhost become: false
delegate_to не по канону, лучше использовать local_action модуль. Я бы использовал примерно такой таск: - name: Wait port 22 to be ready local_action: module: wait_for port: "22" host: "{{ ssh_host }}" search_regex: OpenSSH delay: "{{ ssh_delay_seconds | default(5) }}" timeout: "{{ ssh_timeout_seconds | default(300) }}"
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
В качестве референса, пример выше
Damir
То что логика на уровне сервиса (ssh) отрабатывает. Не всегда доступность порта 22 говорит о том что ssh готов к работе
Oleg
ребзы, как избавиться от симолов [u'?
George
зачем?
George
это просто деноминатор, что строка в юникоде
Oleg
регистрирую переменную, а в соедующую таску она уже с [u' вставляется
Oleg
и модулю shell это не нра,например
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
Oleg
🤓
George
во-первых, определять количество дисков - так - выстрелить себе в ногу
Damir
😭😭😭
George
ибо sda1,2,3,4 - насколько я помню - праймари разделы, остальные - по очереди.
George
второй момент - parted не осилили? у него вполне внятный cli
George
и не нужно пытаться в стдин fdisk засовывать рандомные данные
George
в третьих
George
sda_number.stdout_lines -> это будет список строк как бы
Alex
а в ансибле есть способ проверить, что директория существует и она не нулевого размера? Или только через bash?
Damir
- 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
Погуглил тут ваш таск и увидел ровно такой же вопрос на стековерфлоу, в ответах там все правельно пишут, так же как и здесь, используйте parted+filesystem модули
Damir
И не надо вот этого всего с шелл командами городить )
Damir
а в ансибле есть способ проверить, что директория существует и она не нулевого размера? Или только через bash?
Задача на проверку не нулевого размера директории, звучит как-то не очень. В чем именно задача?
George
ну, это не повод пытаться его не использовать
Oleg
не дает из неразмеченной области создать
Oleg
вот и пошел к шеллу)
Damir
вот и пошел к шеллу)
Шелл от лукавого )
Alex
Задача на проверку не нулевого размера директории, звучит как-то не очень. В чем именно задача?
задача в проверки что при деинсталяции пакета он не удаляет данные приложения
Alex
а как мне stat поможет в случае директории?
Alex
size всегда возвращает 4096
Albert
"{{ ansible_devices['sda']['partitions'].keys() | lenght }}"
Антон
а как мне stat поможет в случае директории?
сделайте вывод стата по директории и по файлу - удивитесь )
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"
Damir
Я к тому что, ваш такс можно обложить тестами проверки на базе stat + assert