I actually got this to work by change key variable to:

   1. key: "{{ hostvars[groups['swarm-init'][0]]['worker'] | replace('[u', 
   '') | replace(']', '')}}"
   
What a pia!  Surely i am doing something early in the play that is causing 
me to have to replace those characters.

On Sunday, August 7, 2016 at 3:31:01 PM UTC-5, Tony Owens wrote:
>
> Thanks for the tip.  I am much closer but I'm getting some undesirable 
> characters added to the var named "key" I'm setting.
>
>
>    1. - hosts: swarm-init
>    2.   tasks:
>    3.     - shell: docker swarm init
>    4.     - shell: docker swarm join-token -q manager
>    5.       register: manager
>    6.     - set_fact:
>    7.         manager: "{{ manager.stdout_lines }}"
>    8.     - shell: docker swarm join-token -q worker
>    9.       register: worker
>    10.     - set_fact:
>    11.         worker: "{{ worker.stdout_lines }}"
>    12. - hosts: swarm-worker
>    13.   vars:
>    14.     key: "{{ hostvars[groups['swarm-init'][0]]['worker'] }}"
>    15.   tasks:
>    16.    - shell: "docker swarm join --token {{ key }} {{ swarmmanager 
> }}:2377"
>
>
> Inventory
>
>    1. [swarm-init]
>    2. myhost1
>    3.  
>    4. [swarm-manager]
>    5. myhost1
>    6.  
>    7. [swarm-worker]
>    8. myhost2
>    9.  
>    10. [swarm-manager:vars]
>    11. swarmmanager=myhost1
>    12.  
>    13. [swarm-worker:vars]
>    14. swarmmanager=myhost1
>
>
> The output:
>
> PLAY 
> ***************************************************************************
>
> TASK [setup] 
> *******************************************************************
> ok: [myhost1]
>
> TASK [command] 
> *****************************************************************
> changed: [myhost1]
>
> TASK [command] 
> *****************************************************************
>
> changed: [myhost1]
>
> TASK [set_fact] 
> ****************************************************************
> ok: [myhost1]
>
> TASK [command] 
> *****************************************************************
> changed: [myhost1]
>
> TASK [set_fact] 
> ****************************************************************
> ok: [myhost1]
>
> PLAY 
> ***************************************************************************
>
> TASK [setup] 
> *******************************************************************
>
> ok: [myhost2]
>
> TASK [command] 
> *****************************************************************
> fatal: [myhost2]: FAILED! => {"changed": true, "cmd": "docker swarm join 
> --token 
> [u'SWMTKN-1-0lanrq32u7f1v47noxftd1ekpzgipo3noufg7ppox3aooqhmqh-3peerw7aalzg8ko13zrqh6hee']
>  myhost1:2377", "delta": "0:00:00.036979", "end": "2016-08-07 
> 20:20:16.500147", "failed": true, "rc": 1, "start": "2016-08-07 
> 20:20:16.463168", "stderr": "Error response from daemon: invalid join token", 
> "stdout": "", "stdout_lines": [], "warnings": []}
>
>
> PLAY RECAP 
> *********************************************************************
> myhost1   : ok=6    changed=3    unreachable=0    failed=0   
> myhost2   : ok=1    changed=0    unreachable=0    failed=1   
>
> FATAL: command execution failedhudson.AbortException 
> <http://stacktrace.jenkins-ci.org/search?query=hudson.AbortException>: 
> Ansible playbook execution failed
>       at 
> org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform(AnsiblePlaybookBuilder.java:218)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform&entity=method>
>       at 
> org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform(AnsiblePlaybookBuilder.java:192)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform&entity=method>
>       at 
> hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.tasks.BuildStepCompatibilityLayer.perform&entity=method>
>       at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.tasks.BuildStepMonitor$1.perform&entity=method>
>       at 
> hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.perform&entity=method>
>       at hudson.model.Build$BuildExecution.build(Build.java:205) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Build$BuildExecution.build&entity=method>
>       at hudson.model.Build$BuildExecution.doRun(Build.java:162) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Build$BuildExecution.doRun&entity=method>
>       at 
> hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.run&entity=method>
>       at hudson.model.Run.execute(Run.java:1741) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Run.execute&entity=method>
>       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.FreeStyleBuild.run&entity=method>
>       at hudson.model.ResourceController.execute(ResourceController.java:98) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.ResourceController.execute&entity=method>
>       at hudson.model.Executor.run(Executor.java:410) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Executor.run&entity=method>
> ERROR: Ansible playbook execution failed
> Notifying upstream projects of job completion
> Finished: FAILURE
>
>
> On Saturday, August 6, 2016 at 11:23:17 PM UTC-5, Stephen Granger wrote:
>>
>> http://docs.ansible.com/ansible/set_fact_module.html
>>
>>     - name: set fact from hosts output
>>       set_fact:
>>        docker_manager: manager.stdout
>>        docker_worker: worker.stdout
>>
>> # you may want to just pick out a line too, see the debug for what you 
>> may want
>>
>>     - debug:
>>         var:
>>           - worker.stdout_lines
>>           - manager.stdout_lines
>>
>> On 6 August 2016 at 08:15, Tony Owens <[email protected]> wrote:
>>
>>> I'm looking for some tips on the best way to store a variable 
>>> persistently across all hosts or multiple plays.
>>>
>>> I am attempting to create a docker swarm manager using something similar 
>>> to this:
>>>
>>>
>>>    1. - hosts: swarm-init
>>>    2. gather_facts: no
>>>    3. tasks:
>>>    4. - shell: docker swarm init
>>>    5. - shell: docker swarm join-token -q manager
>>>    6. register: manager
>>>    7. - shell: docker swarm join-token -q worker
>>>    8. register: worker
>>>
>>>
>>> I would run this play once and don't have that logic built yet but I 
>>> have not been able to find a method of storing {{ worker }} in a variable 
>>> so that I could join the swarm from another host in another play.  Any 
>>> advice?
>>>
>>> -- 
>>> 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/43c19f78-9572-4af2-8e52-784878805bcc%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/43c19f78-9572-4af2-8e52-784878805bcc%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> Steve
>>
>

-- 
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/218b97b7-f724-4c4d-8a6b-ed9043aa3c4b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to