Your responses is now a dict which cannot have the same key more than once. So the second BASE question isn't going to work. Try turning it into a list. See https://docs.ansible.com/ansible/latest/collections/ansible/builtin/expect_module.html#examples
On Wed, 30 Nov 2022 at 02:03, phillip.from.oz <[email protected]> wrote: > Hi, > I want to run a program on a remote server where after login, the program > will ask for more input using the same prompt. > > This is the basic flow: > Read Username > Read Password > Read commands <- these get echoed back > until 'h' or 'H' is entered > > This is a sample run of the program > BASE:/home# python3 converse2.py > Welcome to BASE > My configuration is up to date > Print settings are normal > Username: sq > Password: SoLong> > BASE>w abc > w abc > BASE>h > > I run the same program using Ansible Expect with this playbook: > --- > - name: Test a conversation > hosts: BASE > remote_user: root > gather_facts: false > tasks: > - name: Copy script converse2.py > copy: src=/home/converse2.py > dest=/home/converse2.py > remote_src=no > mode=preserve > - name: Run test session > expect: > echo: yes > chdir: /tmp > command: python3 /home/converse2.py > timeout: "300" > responses: > Username: sq > Password: "SoLong>" > BASE\>: w ##Class(websys).test() > BASE\>: H > register: command_output > - debug: > msg: "{{ command_output.stdout.split('\n') }}" > > However Ansible Expect is not sending 'w ##Class(websys).test()' to the > program > > This is the run: > ansible-playbook /home/ansible_playbooks/test-converse2.yml > [WARNING]: While constructing a mapping from > /home/ansible_playbooks/test-converse2.yml, line 20, column 9, found a > duplicate dict key (BASE\>). Using last defined value only. > > PLAY [Test a conversation] > **************************************************************************************************************************************************** > > TASK [Copy script converse2.py] > *********************************************************************************************************************************************** > ok: [TRAK-BASE01] > > TASK [Run test session] > ******************************************************************************************************************************************************** > changed: [TRAK-BASE01] > > TASK [debug] > ******************************************************************************************************************************************************************** > ok: [TRAK-BASE01] => { > "msg": [ > "\r", > "Welcome to BASE\r", > " My configuration is up to date\r", > " Print settings are normal\r", > "\r", > "\r", > "Username: sq\r", > "Password: SoLong>\r", > "BASE>H" > ] > } > > PLAY RECAP > ************************************************************************************************************************************************************************ > TRAK-BASE01 : ok=3 changed=1 unreachable=0 > failed=0 skipped=0 rescued=0 ignored=0 > > How do I fix this? > > -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/38895202-0733-4df4-8d11-1c661128f3f7n%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/38895202-0733-4df4-8d11-1c661128f3f7n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Sent from Gmail Mobile -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAF8BbLbthGzGi%3DOb7BJNbTgknvF9nU6sH8LJ44CaaZn9fDjNZQ%40mail.gmail.com.
