I heard about it back in 2014 and tested against it since we used it to install our micro services framework.
I used a good intro video tutorial to try making a vCenter connection and listing hosts.
Problems encountered were the YAML syntax, using local versus remote connections, SSH with sudo, small syntax errors and using the ansible.cfg and hosts file under /etc/ansible, which I created manually
Initial vCenter Tests:
Here's some initial code for connecting to vCenter:
cat auth_vcenter.yml
---
- hosts: localhost
vars:
user_readme: 'Welcome to vCenter tests'
tasks:
- debug:
msg: "Starting test aginst vcenter"
- name: Including Secret Environment Items
include_vars:
file: secret67.yml
name: secret
- name: vcenter login
uri:
url: "https://{{secret.vcenter}}/rest/com/vmware/cis/session"
force_basic_auth: yes
method: POST
user: "{{secret.username}}"
password: "{{secret.password}}"
status_code: 200
validate_certs: no
register: login
- name: Get hosts from vCenter
uri:
url: "https://{{secret.vcenter}}/rest/vcenter/host"
force_basic_auth: yes
validate_certs: no
headers:
Cookie: "{{login.set_cookie}}"
register: vchosts
- debug: var=login
- debug: var=vchosts
This works with a YAML secrets file which for initial testing is fine but passwords should be encrypted so it's not a longterm solution:
cat secret67.yml
---
username: administrator@vsphere.local
password:
vcenter: 10.117.180.10
Here's some other code for trying out an automated SSH connection with some initial commands
One that that got me was authentication errors so to make the login process work I had to run:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@10.117.155.123
cat testone.yml
---
- hosts: 10.117.155.123
vars:
user_readme: 'Welcome to this machine!!!! Hey good!'
tasks:
- debug:
msg: "Starting test against server"
- name: List contents
command: ls -lta
register: out1
- name: Touch file
file:
path: $HOME/test_server.txt
state: touch
register: out2
- name: Create target directory
file: path=~/testit state=directory mode=0755
register: out3
- name: simple file try
copy:
dest: ~/testit/README.txt
content: " {{ user_readme }} "
register: out4
- debug: var=out1
- debug: var=out2
- debug: var=out3
- debug: var=out4
Hosts and config Files:
For the SSH testing these initial files seems to work for me. Very brief and to the point.
$ cat ansible.cfg
[defaults]
remote_user=
$ cat hosts
all:
vars:
ansible_ssh_user=
ansible_ssh_pass=
hosts:
10.117.180.10
Summary:
To watch the video, setup Ansible on Mac, and get these tests working should take a day or two, max, in my opinion.
Next steps are to see about using Ansible for further automation testing.