After some digging today, I see that Ansible's expect module is actually
a hook into the relatively limited python pexpect module, which itself
doesn't support the additional features you need.
However, the doc for Ansible's shell module includes an example of
calling the "real" expect, and /that/ lets you do lots of things, like
"sleep 5". There's also "-s" (slow mode) and "-h" (slow like a human
mode). I /expect/ (ahem) that would be a better place to spend your time.
On 12/7/22 5:59 AM, Todd Lewis wrote:
In that case, you should start with the existing expect module and add
the desired delay functionality. That would be far simpler than
creating a worthwhile module from scratch. And you could contribute
your changes so we would all benefit from your efforts.
As for the different login scenarios, that's a challenge I'm sure
someone has risen to before. I still think expect is your best choice.
On 12/6/22 10:58 PM, Phillip Wu wrote:
Thanks to All!
Yes you're right...I have been using Expect part of Ansible to
interact with IRIS on the remote host previously.
However there is a timing problem sometimes and with the Expect
module of Ansible you cannot change the delay before sending as far
as I can see.
Also in my case sometimes some of my IRIS servers ask me to sign in
and some use OS authentication and Ansible Expect gets rather
difficult when it's conversation changes
If anyone is interested when using module you do not need to ssh into
the remote host as this is done for you without adding any
configuration or code changes
On Wed, Dec 7, 2022 at 4:23 AM Todd Lewis <[email protected]> wrote:
I was hoping someone with IRIS DB experience in Ansible would
answer by now, because I don't want to mislead you. However, it
looks to me like everything you're doing below could be done
through the "expect" module.
--
Todd
On 12/5/22 5:48 PM, phillip.from.oz wrote:
Thanks to all.
This is what I'm doing:
Playbook:
---
- name: Connect to remote IRIS DB
hosts: localhost
tasks:
- name: using my custom module
IRIS: <-- New Module
name: superuser
password: secret
instance: SCR
namespace: WORK
commands:
- w !,”Hello”
- w !,”World”
register: result
- name: show output
debug:
var: result
This is the logic:
ssh localhost
iris session “{{instance}}” -U "{{namespace}}" <- connecting
to IRIS DB
username: "{{name}}" <- send variable name when
username prompt
password: "{{password}}" < - send variable password
when password prompt
>“{{commands[0]}}” < - send variable command
when > prompt
>“{{commands[1]}}”
H
On Monday, December 5, 2022 at 10:47:21 PM UTC+11 Michael
Ströder wrote:
On 12/5/22 09:23, phillip.from.oz wrote:
> When writing Ansible custom module, how is the code
(python) connect to
> the remote host?
>
> Is it the code of the Ansible custom module responsible
for ssh to the
> remote host?
No, for most modules.
I'd recommend that you describe what you're trying to achieve.
Ciao, Michael.
--
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/f706c601-f0ba-8572-e3da-6419273b29b0%40gmail.com.