create bootstrap_vms role to run vagrant file on host, creating managed vms (dkhost03 and dkhost04)
This commit is contained in:
4
roles/bootstrap_vms/defaults/main.yml
Normal file
4
roles/bootstrap_vms/defaults/main.yml
Normal 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
76
roles/bootstrap_vms/files/Vagrantfile
vendored
Normal 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
|
||||
9
roles/bootstrap_vms/meta/main.yml
Normal file
9
roles/bootstrap_vms/meta/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
# meta/main.yml
|
||||
# define dependancies here
|
||||
|
||||
# dependencies:
|
||||
# - { role: geerlingguy.java }
|
||||
|
||||
dependencies:
|
||||
- { role: vagrant }
|
||||
32
roles/bootstrap_vms/tasks/main.yml
Normal file
32
roles/bootstrap_vms/tasks/main.yml
Normal 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}}"
|
||||
6
roles/cleanup/defaults/main.yml
Normal file
6
roles/cleanup/defaults/main.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
# defaults for cleanup
|
||||
|
||||
cleanup:
|
||||
cron: []
|
||||
packages: []
|
||||
18
roles/cleanup/tasks/main.yml
Normal file
18
roles/cleanup/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
# cleanup/tasks/main.yml
|
||||
# removes packages and cron jobs
|
||||
|
||||
|
||||
- name: remove packages
|
||||
apt:
|
||||
state: absent
|
||||
name: "{{item}}"
|
||||
update_cache: yes
|
||||
with_items: "{{ cleanup.packages }}"
|
||||
|
||||
- name: remove cronjob
|
||||
cron:
|
||||
state: absent
|
||||
name: "{{ item.name }}"
|
||||
cron_file: "{{ item.file }}"
|
||||
with_items: "{{ cleanup.cron }}"
|
||||
@@ -29,6 +29,18 @@
|
||||
name: "{{ item.key }}"
|
||||
brick: '{{ item.value | join(",")}}'
|
||||
rebalance: no
|
||||
replicas: 2
|
||||
cluster: "{{cluster}}"
|
||||
with_dict: "{{volumes}}"
|
||||
run_once: true
|
||||
|
||||
# manage volumes
|
||||
- name: create tmp gluster volumes
|
||||
gluster_volume:
|
||||
state: present
|
||||
name: "tmp"
|
||||
brick: '/data/glusterfs/tmp/brick1/brick'
|
||||
rebalance: no
|
||||
replicas: 2
|
||||
cluster: "{{cluster}}"
|
||||
run_once: true
|
||||
|
||||
9
roles/kubernetes-vagrant/meta/main.yml
Normal file
9
roles/kubernetes-vagrant/meta/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
# meta/main.yml
|
||||
# define dependancies here
|
||||
|
||||
# dependencies:
|
||||
# - { role: geerlingguy.java }
|
||||
|
||||
dependencies:
|
||||
- { role: vagrant }
|
||||
@@ -11,27 +11,6 @@
|
||||
- git
|
||||
- virtualbox
|
||||
|
||||
# install vagrant
|
||||
- stat: path=/usr/bin/vagrant
|
||||
register: vagrant_exe
|
||||
|
||||
- name: download vagrant package
|
||||
get_url:
|
||||
dest: "{{ vagrant_installer_path }}"
|
||||
url: "{{ vagrant_installer_url }}"
|
||||
when: vagrant_exe.stat.exists == False
|
||||
|
||||
- name: install vagrant deb from download
|
||||
apt:
|
||||
deb: "{{ vagrant_installer_path }}"
|
||||
when: vagrant_exe.stat.exists == False
|
||||
|
||||
- name: remove vagrant installer
|
||||
file:
|
||||
state: absent
|
||||
path: "{{ vagrant_installer_path }}"
|
||||
|
||||
|
||||
# install kubectl
|
||||
- stat: path="{{kubernetes_kubectl_path}}"
|
||||
register: kubectl_exe
|
||||
|
||||
@@ -8,10 +8,10 @@ $TTL 2d
|
||||
1d ) ;minimum
|
||||
|
||||
xai-corp.net. IN NS ns.xai-corp.net.
|
||||
xai-corp.net. IN A 208.94.116.179
|
||||
xai-corp.net. IN A 208.94.116.21
|
||||
xai-corp.net. IN A 208.94.117.26
|
||||
www.xai-corp.net. IN A 208.94.116.179
|
||||
www.xai-corp.net. IN A 208.94.116.21
|
||||
www.xai-corp.net. IN A 208.94.117.26
|
||||
;xai-corp.net. IN A 208.94.116.179
|
||||
;xai-corp.net. IN A 208.94.116.21
|
||||
;xai-corp.net. IN A 208.94.117.26
|
||||
;www.xai-corp.net. IN A 208.94.116.179
|
||||
;www.xai-corp.net. IN A 208.94.116.21
|
||||
;www.xai-corp.net. IN A 208.94.117.26
|
||||
|
||||
|
||||
@@ -39,6 +39,6 @@ logs IN A 192.168.2.42
|
||||
dkhost02 IN A 192.168.2.43
|
||||
fs IN A 192.168.2.43
|
||||
git IN A 192.168.2.43
|
||||
dkui IN A 192.168.2.41
|
||||
jenkins IN A 192.168.2.41
|
||||
dkui IN A 192.168.2.43
|
||||
jenkins IN A 192.168.2.43
|
||||
|
||||
|
||||
5
roles/vagrant/defaults/main.yml
Normal file
5
roles/vagrant/defaults/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
#default values
|
||||
|
||||
vagrant_installer_url: https://releases.hashicorp.com/vagrant/1.8.6/vagrant_1.8.6_x86_64.deb
|
||||
vagrant_installer_path: /tmp/vagrant_installer.deb
|
||||
33
roles/vagrant/tasks/main.yml
Normal file
33
roles/vagrant/tasks/main.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
# main tasks for installing vagrant
|
||||
|
||||
# install required system packages
|
||||
- name: install system packages
|
||||
apt:
|
||||
state: present
|
||||
name: "{{item}}"
|
||||
update_cache: yes
|
||||
with_items:
|
||||
- git
|
||||
- virtualbox
|
||||
|
||||
# install vagrant
|
||||
- stat: path=/usr/bin/vagrant
|
||||
register: vagrant_exe
|
||||
|
||||
- name: download vagrant package
|
||||
get_url:
|
||||
dest: "{{ vagrant_installer_path }}"
|
||||
url: "{{ vagrant_installer_url }}"
|
||||
when: vagrant_exe.stat.exists == False
|
||||
|
||||
- name: install vagrant deb from download
|
||||
apt:
|
||||
deb: "{{ vagrant_installer_path }}"
|
||||
when: vagrant_exe.stat.exists == False
|
||||
|
||||
- name: remove vagrant installer
|
||||
file:
|
||||
state: absent
|
||||
path: "{{ vagrant_installer_path }}"
|
||||
|
||||
Reference in New Issue
Block a user