apenella / go-ansible

Go-ansible is a Go package that enables the execution of ansible-playbook or ansible commands directly from Golang applications. It supports a wide range of options for each command, enabling smooth integration of Ansible functionality into your projects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PrivateKey option should be an array/slice

SimplyTrying opened this issue · comments

Since ansible-playbook command allows to pass multiple --private-key file. It picks among them what works in the given inventory and ignore others. It will be a good idea to keep that option an an array.

Hi @SimplyTrying
Thanks for raising that. Since I would like that go-ansible could execute ansible commands in the same way you do in your command line, I am going to allow you to add multiple private keys.
Thank you!

Hi @SimplyTrying
Allowing to define multiple private keys will be a breaking change because it needs to change the PrivateKeythe attribute type. in the AnsibleConnectionOptions.

For that reason, I will add it to version 2.0.0, where I plan to introduce other breaking changes.
I am about to start working on 1.2.0 where I want to release a few small features, and as soon as I release them I going to start working on 2.0.0.

Hi @SimplyTrying!
I started to review your request, and I may be mistaken, but when I provided multiple SSH keys using multiple --private-key arguments, it seems that Ansible attempted to use the last key you set, even when the key does not exist.

Using the ~/.ssh/id_rsa when I provided multiple private key files:

$ ansible-playbook -i inventory/development/development.ini site.yml --tags base --private-key /tmp/aaa  --private-key ~/.ssh/id_rsa -vvvv | grep private_key_file
private_key_file: /home/aleix/.ssh/id_rsa

Setting and unexisting key file:

$ ansible-playbook -i inventory/development/development.ini site.yml --tags base --private-key ~/.ssh/id_rsa --private-key /tmp/aaa  -vvvv | grep private_key_file
private_key_file: /tmp/aaa

I also reviewed the documentation, and I couldn't find anywhere describing what the expected behaviour should be in that case. Would you mind lending me a hand to figure it out?

Thanks!

Hi @SimplyTrying !
Did you have the chance to take a look at this?

@SimplyTrying I am closing the issue due to lack of activity. Please reopen the issue if you believe it requires further attention.