working through ansible conversion of juju-setup.py
diff --git a/aztest.yml b/aztest.yml
index 81239c8..e4238f1 100644
--- a/aztest.yml
+++ b/aztest.yml
@@ -4,13 +4,15 @@
- hosts: head
become: yes
roles:
- # - common-prep
+ - common-prep
- head-prep
- - create-vms
+ - { become: no, role: create-vms }
+ - { beocme: no, role: juju-user-prep }
+ - { become: no, role: juju }
- hosts: compute
become: yes
roles:
- # - common-prep
- - compute-prep
+ - common-prep
+ - head-prep
diff --git a/roles/create-vms/handlers/main.yml b/roles/create-vms/handlers/main.yml
new file mode 100644
index 0000000..fce01c5
--- /dev/null
+++ b/roles/create-vms/handlers/main.yml
@@ -0,0 +1,4 @@
+---
+# roles/create-vms/handlers/main.yml
+
+
diff --git a/roles/create-vms/tasks/main.yml b/roles/create-vms/tasks/main.yml
index 123b86b..a637153 100644
--- a/roles/create-vms/tasks/main.yml
+++ b/roles/create-vms/tasks/main.yml
@@ -13,6 +13,14 @@
register: vm_ip
- name: Create /etc/hosts with VM IP addresses
+ become: yes
template:
src=hosts.j2
dest=/etc/hosts
+
+- name: Create /etc/ansible/hosts file
+ become: yes
+ template:
+ src=ansible_hosts.j2
+ dest=/etc/ansible/hosts
+
diff --git a/roles/create-vms/templates/ansible_hosts.j2 b/roles/create-vms/templates/ansible_hosts.j2
new file mode 100644
index 0000000..9b6096e
--- /dev/null
+++ b/roles/create-vms/templates/ansible_hosts.j2
@@ -0,0 +1,8 @@
+[localhost]
+127.0.0.1 hostname={{ ansible_fqdn }}
+
+[services]
+{% for vm in head_vm_list -%}
+{{ vm.name }}
+{% endfor -%}
+
diff --git a/roles/juju-setup/files/openstack.cfg b/roles/juju-setup/files/openstack.cfg
new file mode 100644
index 0000000..e9a1866
--- /dev/null
+++ b/roles/juju-setup/files/openstack.cfg
@@ -0,0 +1,37 @@
+glance:
+ openstack-origin: "cloud:trusty-kilo"
+keystone:
+ admin-password: ""
+ https-service-endpoints: "True"
+ openstack-origin: "cloud:trusty-kilo"
+ use-https: "yes"
+nova-cloud-controller:
+ console-access-protocol: "novnc"
+ network-manager: "Neutron"
+ openstack-origin: "cloud:trusty-kilo"
+nova-compute:
+# config-flags: "firewall_driver=nova.virt.firewall.NoopFirewallDriver"
+ config-flags: "firewall_driver=nova.virt.firewall.NoopFirewallDriver,xos_api_url=http://portal.opencloud.us"
+ disable-neutron-security-groups: "True"
+ openstack-origin: "cloud:trusty-kilo"
+ntp:
+ source: "0.ubuntu.pool.ntp.org 1.ubuntu.pool.ntp.org 2.ubuntu.pool.ntp.org 3.ubuntu.pool.ntp.org"
+openstack-dashboard:
+ openstack-origin: "cloud:trusty-kilo"
+neutron-gateway:
+ bridge-mappings: "physnet1:br-data nat:br-nat"
+ flat-network-providers: "*"
+ instance-mtu: "1400"
+ openstack-origin: "cloud:trusty-kilo"
+ vlan-ranges: "physnet1:1000:2000 nat"
+neutron-api:
+ flat-network-providers: "*"
+ openstack-origin: "cloud:trusty-kilo"
+ vlan-ranges: "physnet1:1000:2000 nat"
+neutron-openvswitch:
+ bridge-mappings: "physnet1:br-data nat:br-nat"
+ disable-security-groups: "True"
+ flat-network-providers: "*"
+ vlan-ranges: "physnet1:1000:2000 nat"
+rabbitmq-server:
+ ssl: "on"
diff --git a/roles/juju-setup/tasks/main.yml b/roles/juju-setup/tasks/main.yml
new file mode 100644
index 0000000..0540b1c
--- /dev/null
+++ b/roles/juju-setup/tasks/main.yml
@@ -0,0 +1,33 @@
+---
+# roles/juju-setup/main/tasks.yml
+
+- name: Verify that we can log into every VM
+ command: ansible services -m ping -u ubuntu
+
+- name: Initialize Juju
+ command: juju generate-config
+ creates={{ ansible_env['PWD'] }}/.juju/environments.yaml
+
+- name: Juju config file
+ template:
+ src=environments.yaml.j2
+ dest={{ ansible_env['PWD'] }}/.juju/environments.yaml
+
+- name: Bootstrap Juju
+ command: juju bootstrap
+ creates={{ ansible_env['PWD'] }}/.juju/environments/manual.jenv
+
+- name: Copy openstack.cfg for Juju
+ become: yes
+ copy:
+ src=openstack.cfg
+ dest=/usr/local/src/openstack.cfg
+
+- name: Get Juju machine status
+ command: juju status --format=json
+ register: juju_status_json
+
+- name: Add Juju status to ansible facts
+ set_fact: juju_status="{{ juju_status_json.stdout | from_json }}"
+
+
diff --git a/roles/juju-setup/templates/environments.yaml.j2 b/roles/juju-setup/templates/environments.yaml.j2
new file mode 100644
index 0000000..e575b23
--- /dev/null
+++ b/roles/juju-setup/templates/environments.yaml.j2
@@ -0,0 +1,7 @@
+default: manual
+environments:
+ manual:
+ type: manual
+ bootstrap-host: juju
+ bootstrap-user: ubuntu
+ default-series: {{ ansible_distribution_release }}
diff --git a/roles/juju-user-prep/files/ansible.cfg b/roles/juju-user-prep/files/ansible.cfg
new file mode 100644
index 0000000..dd43d2b
--- /dev/null
+++ b/roles/juju-user-prep/files/ansible.cfg
@@ -0,0 +1,2 @@
+[defaults]
+host_key_checking = false
diff --git a/roles/juju-user-prep/tasks/main.yml b/roles/juju-user-prep/tasks/main.yml
new file mode 100644
index 0000000..27f1d91
--- /dev/null
+++ b/roles/juju-user-prep/tasks/main.yml
@@ -0,0 +1,15 @@
+---
+# roles/juju-user-prep/main/tasks.yml
+
+- name: Disable host key checking in ~/.ssh/config
+ lineinfile:
+ dest={{ ansible_env['PWD'] }}/.ssh/config
+ line="StrictHostKeyChecking no"
+ create=yes
+ mode=0600
+
+- name: Disable host key checking in ~/.ansible.cfg
+ copy:
+ src=ansible.cfg
+ dest={{ ansible_env['PWD'] }}/.ansible.cfg
+