I think you should set up your inventory in a manner similar to what is 
described in the windows introduction.

http://docs.ansible.com/ansible/intro_windows.html#inventory

put the windows-specific connection vars into a group and then when you 
want to do things to a windows host, use the windows group name for the 
hosts: line in your play.

By doing

  vars_files:
    - group_vars/tag_Application_alfred-linux.yml
    - group_vars/tag_Environment_dev.yml

you are forcing the vars in the group_vars folder to apply to all hosts.


Hope this helps,

Jon
On Thursday, June 16, 2016 at 2:01:23 PM UTC+1, Jordan Borean wrote:
>
> Hi
>
> I am having issues trying to create a play that will setup a Windows EC2 
> instance and then install software once it is up. For linux instances I do 
> the following to create a new instance on the localhost and then run the 
> other roles on the new instance once it is ready.
>
> ---
> - name: create new aws ec2 instance
>   hosts: localhost
>   become: False
>   vars_files:
>     - group_vars/tag_Application_alfred-linux.yml
>     - group_vars/tag_Environment_dev.yml
>   roles:
>     - common/aws-create-instance
>
>
> - name: setup newly created instances
>   hosts: "{{ hostvars['localhost']['new_ec2_hosts_string'] }}"
>   roles:
>     - common/stash-user-setup
>     - jdk/install-linux
>     - maven/install-linux
>     - alfred/linux-setup
>
> When trying the same thing for my Windows hosts Ansible fails to run a 
> play on the localhost with the following error.
>
> (py27)[appuser@jdbrd2 treasury-ansible]$ ansible-playbook test.yml --ask-
> vault-pass
> Vault password:
>
>
> PLAY [localhost] 
> ***************************************************************
>
>
> TASK [setup] 
> *******************************************************************
> fatal: [localhost]: UNREACHABLE! => {"changed": false, "msg": "ssl: 
> HTTPSConnectionPool(host='127.0.0.1', port=5986): Max retries exceeded with 
> url: /wsman (Caused by 
> NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection
>  
> object at 0x7f6743985ad0>: Failed to establish a new connection: [Errno 
> 111] Connection refused',))", "unreachable": true}
>         to retry, use: --limit @test.retry
>
>
> PLAY RECAP 
> *********************************************************************
> localhost                  : ok=0    changed=0    unreachable=1    failed=
> 0
>
>
> I believe it is because one of the vars_files that are being pulled in 
> contains the following variables;
> # Ansible Connection details
> ansible_user: User@domain
> ansible_password: "{{ vault_alfred_windows_account_password }}"
> ansible_port: 5986
> ansible_connection: winrm
> ansible_winrm_server_cert_validation: ignore
> ansible_winrm_transport: ntlm
>
> I cannot seem to override the ansible_connection: winrm to ssh or smart 
> when running the root play. Does anyone know of a way to run a whole roles 
> entirely on the localhost and overridin the ansible_connection: winrm just 
> for that local host. I have tried the following;
>
>    - Setting ansible_connection: smart in the host_vars/localhost.yml file
>    - Setting connection: smart or ssh after defining hosts: localhost in 
>    the root play
>    - Setting the variable ansible_connecton: ssh or ansible_connection: 
>    smart in the vars: section after pulling in the vars_files
>
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/3a6dd490-4aa8-4d0d-9139-1d9a133a7068%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to