Ansible Documentation:
Ansible Expect Module is very useful to listen for certain strings in stdout and react accordingly. This is particularly useful if you have to respond to accept a license agreement or enter some important information. Here is my sample
- name: Install RPM package from local system
yum:
name: /tmp/my-software.rpm
state: present
disable_gpg_check: true
when: ansible_os_family == "RedHat"
- name:
ansible.builtin.stat:
path: /usr/local/mysoftware
register: directory_check
- name: Setup Licensing Server's Connection if directory does not exist
ansible.builtin.expect:
command: /usr/local/mysoftware/install.sh
responses:
(?i)Do you already have a license server on your network? [y/N] "y"
(?i)Enter the name (or IP address) of your license server "xx.xx.xx.xx"
(?i)Install/update the MySoftware web service? [Y/n] "n"
when: not directory_check.stat.isdir