create bootstrap_vms role to run vagrant file on host, creating managed vms (dkhost03 and dkhost04)
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
# playbook for home02
|
||||
|
||||
|
||||
- hosts: dkhost02
|
||||
- hosts: dkhost
|
||||
remote_user: ansible
|
||||
gather_facts: yes
|
||||
become: true
|
||||
@@ -62,7 +62,7 @@
|
||||
# - Datadog.datadog
|
||||
- dockerhost
|
||||
- geerlingguy.nginx
|
||||
# - certbot
|
||||
- certbot
|
||||
# - docker_registry
|
||||
# - docker_graylog
|
||||
|
||||
|
||||
@@ -10,11 +10,12 @@
|
||||
vars:
|
||||
cluster:
|
||||
- cubox-i.xai-corp.net
|
||||
# - home
|
||||
- home
|
||||
mountpoints:
|
||||
- /data/glusterfs/vmshares/brick1
|
||||
- /data/glusterfs/gitea/brick1
|
||||
- /data/glusterfs/jenkins/brick1
|
||||
- /data/glusterfs/tmp/brick1
|
||||
volumes:
|
||||
vmshares:
|
||||
- /data/glusterfs/vmshares/brick1/brick
|
||||
@@ -22,6 +23,8 @@
|
||||
- /data/glusterfs/gitea/brick1/brick
|
||||
jenkins:
|
||||
- /data/glusterfs/jenkins/brick1/brick
|
||||
# tmp:
|
||||
# - /data/glusterfs/tmp/brick1/brick
|
||||
|
||||
roles:
|
||||
- glusterfs
|
||||
|
||||
@@ -7,28 +7,35 @@
|
||||
become: true
|
||||
|
||||
vars:
|
||||
datadog_api_key: ca0faf176c4aedd4f547ed7cf85615eb
|
||||
datadog_checks:
|
||||
system:
|
||||
init_config: []
|
||||
instances: []
|
||||
disk:
|
||||
init_config:
|
||||
instances:
|
||||
- use_mount: yes
|
||||
excluded_filesystems:
|
||||
- sysfs
|
||||
- cgroup
|
||||
- tracefs
|
||||
- debugfs
|
||||
- proc
|
||||
- securityfs
|
||||
excluded_mountpoint_re: /[media/richard|run/user].*
|
||||
cleanup:
|
||||
packages:
|
||||
- git
|
||||
cron:
|
||||
- { name: "zoneedit", file: "zoneedit" }
|
||||
# datadog_api_key: ca0faf176c4aedd4f547ed7cf85615eb
|
||||
# datadog_checks:
|
||||
# system:
|
||||
# init_config: []
|
||||
# instances: []
|
||||
# disk:
|
||||
# init_config:
|
||||
# instances:
|
||||
# - use_mount: yes
|
||||
# excluded_filesystems:
|
||||
# - sysfs
|
||||
# - cgroup
|
||||
# - tracefs
|
||||
# - debugfs
|
||||
# - proc
|
||||
# - securityfs
|
||||
# excluded_mountpoint_re: /[media/richard|run/user].*
|
||||
|
||||
|
||||
roles:
|
||||
# - Datadog.datadog
|
||||
# - dockerhost
|
||||
- dynamic-ip
|
||||
# - dynamic-ip
|
||||
- bootstrap_vms
|
||||
- cleanup
|
||||
|
||||
post_tasks:
|
||||
|
||||
@@ -2,35 +2,41 @@
|
||||
# playbook for home02
|
||||
|
||||
|
||||
- hosts: home2
|
||||
- hosts: home02
|
||||
remote_user: ansible
|
||||
gather_facts: yes
|
||||
become: true
|
||||
|
||||
vars:
|
||||
datadog_api_key: ca0faf176c4aedd4f547ed7cf85615eb
|
||||
datadog_checks:
|
||||
system:
|
||||
init_config: []
|
||||
instances: []
|
||||
disk:
|
||||
init_config:
|
||||
instances:
|
||||
- use_mount: yes
|
||||
excluded_filesystems:
|
||||
- sysfs
|
||||
- cgroup
|
||||
- tracefs
|
||||
- debugfs
|
||||
- proc
|
||||
- securityfs
|
||||
excluded_mountpoint_re: /[media/richard|run/user].*
|
||||
cleanup:
|
||||
packages:
|
||||
- git
|
||||
cron: []
|
||||
# datadog_api_key: ca0faf176c4aedd4f547ed7cf85615eb
|
||||
# datadog_checks:
|
||||
# system:
|
||||
# init_config: []
|
||||
# instances: []
|
||||
# disk:
|
||||
# init_config:
|
||||
# instances:
|
||||
# - use_mount: yes
|
||||
# excluded_filesystems:
|
||||
# - sysfs
|
||||
# - cgroup
|
||||
# - tracefs
|
||||
# - debugfs
|
||||
# - proc
|
||||
# - securityfs
|
||||
# excluded_mountpoint_re: /[media/richard|run/user].*
|
||||
|
||||
|
||||
roles:
|
||||
- Datadog.datadog
|
||||
- ns.xai-corp.net
|
||||
- td-agent-bit
|
||||
# - Datadog.datadog
|
||||
# - ns.xai-corp.net
|
||||
# - td-agent-bit
|
||||
- dynamic-ip
|
||||
- cleanup
|
||||
|
||||
post_tasks:
|
||||
# - name: check service is up
|
||||
|
||||
@@ -43,6 +43,11 @@
|
||||
- name: Creates .ssh directory
|
||||
file: path=~/.ssh state=directory mode=600
|
||||
|
||||
- name: remove ubuntu user if it exists
|
||||
command: userdel -rf ubuntu
|
||||
args:
|
||||
removes: /home/ubuntu/.bashrc
|
||||
|
||||
- debug: var=ansible_os_family
|
||||
|
||||
roles:
|
||||
|
||||
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