Good to hear it's still in business! I guess I'll have to wait for the 
other work to be done

Thanks anyway!

Matt

On Tuesday, June 20, 2017 at 3:42:41 PM UTC+1, Fran Fitzpatrick wrote:
>
> Matt,
>
> Yeah, definitely! I'm actually trying to get the entire plugin upstreamed, 
> but blocked until this other PR gets merged: 
> https://github.com/ansible/ansible/pull/25012
>
> The plugin (awsrun) works really well right now, but it is very slow. I'm 
> hoping that once we get it upstreamed, we'll be able to work on some 
> performance improvements to it, but we're still at the mercy of the AWS 
> APIs. :-(
>
> Fran
>
> On Tue, Jun 20, 2017 at 9:38 AM Matthijs Suringa <[email protected] 
> <javascript:>> wrote:
>
>> Hi Fran,
>>
>> This sounds like quite a interesting option for me to look into, but 
>> unfortunately I am not a good enough developer to make something like this 
>> myself. Do you still have this plugin, and are you willing to share?
>>
>> Thank you.
>>
>> Regards,
>> Matt
>>
>>
>> On Monday, May 23, 2016 at 4:53:09 PM UTC+1, Fran Fitzpatrick wrote:
>>
>>> So, it seems like what I was looking for was setting the 
>>> `.default_shell` property. I landed up doing something like this, and 
>>> things are now looking up:
>>>
>>>     @property
>>>     def default_shell(self):
>>>         if self.platform_type == 'Windows':
>>>             return 'powershell'
>>>         else:
>>>             return 'sh'
>>>
>>> On Mon, May 23, 2016 at 9:28 AM Fran Fitzpatrick <
>>> [email protected]> wrote:
>>>
>> Hi all,
>>>>
>>>> Just wanted to let you know that I've been making some great headway 
>>>> for this.  Right now I have this connection plugin running on Linux hosts 
>>>> perfectly, and I have logic in the plugin to determine whether or not 
>>>> instance is Windows/Linux, dynamically determining whether or not to do 
>>>> "shell" things or "powershell" things.
>>>>
>>>> However, I'm running into a problem with Windows.  Even though my 
>>>> plugin has logic to determine whether or not an instance is Windows/Linux, 
>>>> the Ansible *framework* seems to always think it's Linux.  For example 
>>>> the first time the framework calls my exec_command() function [on a 
>>>> Windows 
>>>> machine], it passes the command: "mkdir <...> && chmod <...> && echo 
>>>> <...>"
>>>>
>>>>  What am I missing here? How do I let the framework know, or identify 
>>>> somewhere within my connection plugin, that I'm expecting powershelly type 
>>>> things?
>>>>
>>>> Thanks,
>>>> Fran
>>>>
>>>> On Thu, Apr 28, 2016 at 9:50 AM Fran Fitzpatrick <
>>>> [email protected]> wrote:
>>>>
>>> Hi Sicheng,
>>>>>
>>>>>
>>>>> I created my plugin first with 2.0 as a proof of concept (meaning I 
>>>>> know it works by running it a few times; probably not ready for 
>>>>> production). When I backported it to 1.9 (still as a POC; I'm working on 
>>>>> getting it production ready now), it landed up not being that hard. 
>>>>> Here's 
>>>>> the big things that I've seen so far (the diff is FROM_2.0 to TO_1.9):
>>>>>
>>>>> NOTE: I don't consider my work production ready, so... take it with a 
>>>>> grain of salt. :-P
>>>>>
>>>>> -from ansible.plugins.connection import ConnectionBase
>>>>> -from ansible.utils.vars import combine_vars
>>>>> +from ansible.callbacks import vv, vvv, vvvv, verbose # since Display 
>>>>> doesn't seem to be in 1.9
>>>>>
>>>>> -try:
>>>>> - from __main__ import display
>>>>> -except ImportError:
>>>>> - from ansible.utils.display import Display
>>>>> - display = Display()
>>>>>
>>>>> -class Connection(ConnectionBase):
>>>>> +class Connection(object):
>>>>>
>>>>> # And because there is no ConnectionBase apparently, gotta get rid of 
>>>>> those super() calls.
>>>>>
>>>>> - def __init__(self, play_context, new_stdin, *args, **kwargs):
>>>>> - super(Connection, self).__init__(play_context, new_stdin,
>>>>> - *args, **kwargs)
>>>>> + def __init__(self, runner, host, port, user, password, *args, 
>>>>> **kwargs):
>>>>>
>>>>> - def _connect(self):
>>>>> + def connect(self): # Looks like 1.9 needs a public connect method
>>>>>
>>>>> - def exec_command(self, cmd, in_data=None, sudoable=True):
>>>>> - ''' run a command on the local host '''
>>>>> - super(Connection, self).exec_command(cmd,
>>>>> - in_data=in_data,
>>>>> - sudoable=sudoable)
>>>>> - display.vvv("EXEC length {}".format(len(cmd)))
>>>>> + def exec_command(self, cmd, tmp_path='', become_user=None, 
>>>>> sudoable=False,
>>>>> + executable=None, in_data=None):
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 27, 2016 at 9:27 PM Sicheng Tang <[email protected]> 
>>>>> wrote:
>>>>>
>>>> Actually, I am working on implementing a custom HTTP connection plugin 
>>>>>> too. There are a lot  of changes from 1.9 to 2.0 at the source code 
>>>>>> level, 
>>>>>> and I decided to implement my connection plugin on 2.0, which seems 
>>>>>> more object oriented. 
>>>>>> Did you already implemented a ASW Run Command plugin on 1.9?  What 
>>>>>> word should I do, if I want to write my own connection plugin?  Would 
>>>>>> you 
>>>>>> share your experiences?
>>>>>>
>>>>>>
>>>>>> 在 2016年4月26日星期二 UTC+8上午5:26:08,Fran Fitzpatrick写道:
>>>>>>
>>>>>>> Hi everyone,
>>>>>>>
>>>>>>> I've been working on a custom connection plugin to be used with AWS 
>>>>>>> Run Command, allowing Ansible to be run natively on AWS instances that 
>>>>>>> have 
>>>>>>> the SSM agent installed and the proper IAM permissions/roles assigned.  
>>>>>>> The 
>>>>>>> major benefit of this for us is that internally we are using the SSM 
>>>>>>> agent 
>>>>>>> everywhere, and I no longer need to have access to the instance via SSH.
>>>>>>>
>>>>>>> Aaaaanyway, I have a nice POC working beautifully with Ansible 2.0, 
>>>>>>> and I am getting ready to port our plugin to Ansible 1.9, but it 
>>>>>>> definitely 
>>>>>>> looks like there was a ton of improvements made to connection plugins 
>>>>>>> with 
>>>>>>> v2.0.
>>>>>>>
>>>>>>> Does anyone have any references on developing backwards compatible 
>>>>>>> connection plugins?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Fran
>>>>>>>
>>>>>>> PS: First post! Woot!
>>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to a topic in 
>>>>>> the Google Groups "Ansible Development" group.
>>>>>> To unsubscribe from this topic, visit 
>>>>>> https://groups.google.com/d/topic/ansible-devel/ZSuobsmIgfk/unsubscribe
>>>>>> .
>>>>>>
>>>>> To unsubscribe from this group and all its topics, send an email to 
>>>>>> [email protected].
>>>>>
>>>>>
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>> -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Ansible Development" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/ansible-devel/ZSuobsmIgfk/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to