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.