This helped some, but brought up the next issue.

The keytool command has multiple multi-lined prompts, with "[Unknown]" as 
the second line, so if I do this

  tasks:
  - name: Test expect
    expect:
      timeout: 5
      echo: yes
      command: keytool -genkey -alias tomcat -keyalg RSA -sigalg 
SHA1withRSA -keysize 2048 -keystore keystore.jks
      responses:
        "Enter keystore password": "changeit"
        "Re-enter new password": "changeit"
        \[Unknown\]: "{{ cname }}"
        \[Unknown\]: "EngIT"
        \[Unknown\]: "{{ company }}"
        \[Unknown\]: "RTP"
        \[Unknown\]: "NC"
        \[Unknown\]: "US"


I now get 

 [WARNING]: While constructing a mapping from /home/scscm_builder/copy-
expect.yml, line 20, column 9, found a duplicate dict key (\[Unknown\]). 
Using
last defined value only.

I need to somehow include part of each prompt in the regex?


On Monday, May 14, 2018 at 1:45:43 PM UTC-4, Kai Stian Olstad wrote:
>
> On 14.05.2018 19:02, ZillaYT wrote: 
> > Per https://groups.google.com/forum/#!topic/ansible-project/AXEPsAqxmNE 
> > I'm 
> > using the expect module, and have it working when the prompt is single 
> > line. How do I make it work when the prompt is multi-line? I'm not 
> > talking 
> > about multi-prompts. 
> > 
> > Let me explain. 
> > 
> > ansible v2.4.0.0 
> > 
> > I'm trying to automate JKS (Java Keystore) and CSR file generation via 
> > the 
> > keytool command (the java_cert module doesn't do this, IIUC).The 
> > command, 
> > and the first 3 prompts are the following. *Note that the third prompt 
> > is 
> > multi-lined.* 
> > 
> > $ keytool -genkey -alias tomcat -keyalg RSA -sigalg SHA1withRSA 
> > -keysize 
> > 2048 -keystore keystore.jks 
> > Enter keystore password: 
> > Re-enter new password: 
> > What is your first and last name? 
> >   [Unknown]: 
> > 
> > I have 
> > 
> > --- 
> > - hosts: localhost 
> >    connection: local 
> > 
> >   tasks: 
> >   - name: Test expect 
> >     expect: 
> >       echo: yes 
> >       command: keytool -genkey -alias tomcat -keyalg RSA -sigalg 
> > SHA1withRSA -keysize 2048 -keystore keystore.jks 
> >       responses: 
> >         "Enter keystore password:  " : "changeit" 
> >         "Re-enter new password: " : "changeit" 
> >         "What is your first and last name?\n  [Unknown]:  " : 
> > "myserver.domain.com" 
>
> Expect is just looking a a stream of bytes, when it sees a string it 
> will "type" the response. 
> So in this case you only need to check for the string [Unknown]: 
> Since [] is special character in regex you need to escape them 
>
>    "\[Unknown\]: ": "myserver.domain.com" 
>
>
> You could also leave out the quotes, the colon and the space, this will 
> also work 
>
>    \[Unknown\]: myserver.domain.com 
>
> -- 
> Kai Stian Olstad 
>

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d00b2696-14ae-435b-9363-a254ddb26c07%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to