Vagrant devel environment

Change-Id: Ic872fd224e1b096d48e89b5f5f2bb6ecc32a8f12
diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg
new file mode 100644
index 0000000..bd331b2
--- /dev/null
+++ b/ansible/ansible.cfg
@@ -0,0 +1,9 @@
+[defaults]
+callback_plugins=/etc/ansible/callback_plugins/
+host_key_checking=False
+deprecation_warnings=False
+
+[privilege_escalation]
+become=True
+become_method=sudo
+become_user=root
diff --git a/ansible/platdev.yml b/ansible/platdev.yml
new file mode 100644
index 0000000..d3a34fc
--- /dev/null
+++ b/ansible/platdev.yml
@@ -0,0 +1,7 @@
+- hosts: localhost
+  remote_user: vagrant
+  serial: 1
+  roles:
+    - common
+    - java8-oracle
+    - buildtools
diff --git a/ansible/roles/buildtools/defaults/main.yml b/ansible/roles/buildtools/defaults/main.yml
new file mode 100644
index 0000000..b7568df
--- /dev/null
+++ b/ansible/roles/buildtools/defaults/main.yml
@@ -0,0 +1,2 @@
+apt_packages:
+  - maven
diff --git a/ansible/roles/buildtools/tasks/main.yml b/ansible/roles/buildtools/tasks/main.yml
new file mode 100644
index 0000000..6c0e3fa
--- /dev/null
+++ b/ansible/roles/buildtools/tasks/main.yml
@@ -0,0 +1,6 @@
+- name: Apt packages
+  apt:
+    name: "{{ item }}"
+  with_items: "{{ apt_packages }}"
+  tags: [buildtools]
+
diff --git a/ansible/roles/common/defaults/main.yml b/ansible/roles/common/defaults/main.yml
new file mode 100644
index 0000000..0393a03
--- /dev/null
+++ b/ansible/roles/common/defaults/main.yml
@@ -0,0 +1,12 @@
+hosts: [
+  { host_ip: "10.100.198.200", host_name: "platdev"},
+]
+
+use_latest_for:
+  - debian-keyring
+  - debian-archive-keyring
+  - rng-tools
+
+obsolete_services:
+  - puppet
+  - chef-client
diff --git a/ansible/roles/common/files/ssh_config b/ansible/roles/common/files/ssh_config
new file mode 100644
index 0000000..990a43d
--- /dev/null
+++ b/ansible/roles/common/files/ssh_config
@@ -0,0 +1,3 @@
+Host *
+   StrictHostKeyChecking no
+   UserKnownHostsFile=/dev/null
diff --git a/ansible/roles/common/tasks/main.yml b/ansible/roles/common/tasks/main.yml
new file mode 100644
index 0000000..3ee9d2e
--- /dev/null
+++ b/ansible/roles/common/tasks/main.yml
@@ -0,0 +1,40 @@
+- name: JQ is present
+  apt:
+    name: jq
+    force: yes
+  tags: [common]
+
+- name: Host is present
+  lineinfile:
+    dest: /etc/hosts
+    regexp: "^{{ item.host_ip }}"
+    line: "{{ item.host_ip }} {{ item.host_name }}"
+  with_items: "{{ hosts }}"
+  tags: [common]
+
+- name: Latest apt packages
+  apt:
+    name: "{{ item }}"
+  with_items: "{{ use_latest_for }}"
+  tags: [common]
+
+- name: Services are not running
+  service:
+    name: "{{ item }}"
+    state: stopped
+  ignore_errors: yes
+  with_items: "{{ obsolete_services }}"
+  tags: [common]
+
+- name: Ensure known_hosts file is absent
+  file:
+    path: /home/vagrant/.ssh/known_hosts
+    state: absent
+
+- name: Disable Known Host Checking
+  copy:
+    src: files/ssh_config
+    dest: /home/vagrant/.ssh/config
+    owner: vagrant
+    group: vagrant
+    mode: 0600
diff --git a/ansible/roles/java8-oracle/tasks/main.yml b/ansible/roles/java8-oracle/tasks/main.yml
new file mode 100644
index 0000000..809fbee
--- /dev/null
+++ b/ansible/roles/java8-oracle/tasks/main.yml
@@ -0,0 +1,20 @@
+---
+- name: Install add-apt-repository
+  sudo: yes
+  apt: name=software-properties-common state=latest
+
+- name: Add Oracle Java repository
+  sudo: yes
+  apt_repository: repo='ppa:webupd8team/java'
+
+- name: Accept Java 8 license
+  sudo: yes
+  debconf: name='oracle-java8-installer' question='shared/accepted-oracle-license-v1-1' value='true' vtype='select'
+
+- name: Install Oracle Java 8
+  sudo: yes
+  apt: name={{item}} state=latest
+  with_items:
+  - oracle-java8-installer
+  - ca-certificates
+  - oracle-java8-set-default