---
- hosts: hostblockname
tasks:
- name: Get Packages List
shell: dpkg --list > packageslist
register: packages
- fetch: src=/root/packageslist dest=/root/packagesdirectory/
Я добавил вышепользованую книгу, которая помогла мне выполнить мою задачу. Там может быть место для оптимизации, но почему-то я могу сделать это для меня.
Я хотел получить список всех пакетов, установленных в надлежащем формате на всех облачных экземплярах. Затем я хотел получить список всех пакетов в файле на моем сервере Ansible. В этой пьесе впервые создан список установленных пакетов на удаленных экземплярах, после чего они были возвращены на главный Ansible хост.
Команда для запуска пьес был: анзибль-Playbook -i hostslistfile myplaybook.yml
myplaybook.yml, как указано выше.
hostslistfile простой файл, который, как показано ниже: [hostblockname] 192.168.0.144:22
Большое спасибо за ответ. Это дало мне хороший прогресс в изучении Ansible. Однако я не могу найти файл packages.stdout_lines в любом месте. Я добавил shell: dpkg --list >> somelog.txt в playbook, но он создал выходной файл на удаленном хосте вместо незаменимого сервера. В основном я хочу получить список пакетов всех экземпляров на сервере Ansible –
В моей выше задаче результат регистрируется как переменная 'packages'. Команда stdout исполняемой оболочки хранится в свойстве 'stdout_lines'. Поэтому вы можете получить доступ к стандарту stdout как 'packages.stdout_lines'. Это не файл, а varaible. – udondan
Попробуйте выполнить такую задачу: '- debug: msg =" {{packages.stdout_lines}} "' – udondan