create bootstrap_vms role to run vagrant file on host, creating managed vms (dkhost03 and dkhost04)

This commit is contained in:
2017-06-06 09:31:12 -04:00
parent 7374d7767b
commit a05d635641
18 changed files with 275 additions and 71 deletions

View File

@@ -0,0 +1,4 @@
---
#default variables for boostrap_vms
vagrant_folder: "/opt/home.xai-corp.net/vm_config"

76
roles/bootstrap_vms/files/Vagrantfile vendored Normal file
View File

@@ -0,0 +1,76 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
BASE_BOX = "ubuntu/xenial64"
BRIDGE_NET = "enp3s0"
$script = <<SCRIPT
echo I am provisioning...
sudo adduser --home /home/ansible --shell /bin/bash --uid 1001 --disabled-password ansible
sudo mkdir -p /home/ansible/.ssh
sudo cat /etc/sudoers
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAmJSdmj03d4fnZUuRByevPDNiReEk1fRL+7F9WPCo5zn+r5Oj84HXxd4P03DNXeGSBYmUAnsTqYEGdkjkpSrKfMm9bv8amL7hUC+Mzb+wOmXmyX1cw/SearYCBQRCz1s5p7I9+PO7XWaC0VJ99LUm1Bp4JM149U5X0Y3M2j2XV+0= RSA-1024" | sudo tee -a /home/ansible/.ssh/authorized_keys
sudo chmod 600 /home/ansible/.ssh/authorized_keys
sudo chmod 700 /home/ansible/.ssh
sudo chown -R ansible /home/ansible
sudo echo "ansible ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo apt -y update && sudo apt install -y python-minimal
date > /etc/vagrant_provisioned_at
SCRIPT
Vagrant.configure("2") do |config|
config.vm.define "dkhost03" do |dkhost03|
dkhost03.vm.hostname = "dkhost03"
dkhost03.vm.box = BASE_BOX
dkhost03.vm.box_check_update = true
dkhost03.vm.network "public_network", bridge: BRIDGE_NET
dkhost03.vm.synced_folder '.', '/vagrant', disabled: true
dkhost03.vm.provision "shell", inline: $script
dkhost03.vm.provider "virtualbox" do |vb|
vb.name = "dkhost03"
vb.gui = false
vb.memory = "2048"
vb.cpus = 2
#vb.customize ["modifyvm", :id, "--autostart-enabled", "on"]
#vb.customize ["modifyvm", :id, "--autostart-delay", "30"]
vb.customize ["modifyvm", :id, "--macaddress2", "08002794035A"]
end
end
config.vm.define "dkhost04" do |dkhost04|
dkhost04.vm.hostname = "dkhost04"
dkhost04.vm.box = BASE_BOX
dkhost04.vm.box_check_update = true
dkhost04.vm.network "public_network", bridge: BRIDGE_NET
dkhost04.vm.synced_folder '.', '/vagrant', disabled: true
dkhost04.vm.provision "shell", inline: $script
dkhost04.vm.provider "virtualbox" do |vb|
vb.name = "dkhost04"
vb.gui = false
vb.memory = "1024"
vb.cpus = 2
#vb.customize ["modifyvm", :id, "--autostart-enabled", "on"]
#vb.customize ["modifyvm", :id, "--autostart-delay", "30"]
vb.customize ["modifyvm", :id, "--macaddress2", "080027FD5A0E"]
end
end
end

View File

@@ -0,0 +1,9 @@
---
# meta/main.yml
# define dependancies here
# dependencies:
# - { role: geerlingguy.java }
dependencies:
- { role: vagrant }

View File

@@ -0,0 +1,32 @@
---
# bootstrap vms on host machine
# install required system packages
- name: install system packages
apt:
state: present
name: "{{item}}"
update_cache: yes
with_items: []
# copy across vagrant file
- name: create target folder
file:
state: directory
dest: "{{ vagrant_folder }}"
- name: copy vagrant file
copy:
src: Vagrantfile
dest: "{{ vagrant_folder }}/Vagrantfile"
# update and run vagrant boxes
- name: update vagrant box
command: vagrant box update
args:
chdir: "{{vagrant_folder}}"
- name: vagrant up
command: vagrant up
args:
chdir: "{{vagrant_folder}}"