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 [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/3a6dd490-4aa8-4d0d-9139-1d9a133a7068%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
