Collection sets of tools for provision & deployment instances, vm & container.
- Ansible
 - Dockerframework
 - DocKube
 - HelmCharts
 - Kubespray (K8S Deployment)
 - Nomad
 - Packer
 - Portainer (Docker UI Tools)
 - Terragrunt (Terraform Wrapper)
 
- Goto folder 
ansible 
cd ./ansible
- Setup 
remote_userinansible/ansible.cfg 
remote_user=root  # root / ubuntu
- Deploy Ansible Playbook
 
###############################
#       Static Inventory      #
###############################
##### DocKube #####
### Master
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_nsq-nsqadmin.yaml --limit "172.212.0.6"
### Node
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_nsq-nsqd.yaml --limit "172.212.0.8"
### NFS
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_nsq-nsqlookupd.yaml --limit "172.212.0.11"
### All
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_nsq-nsqadmin.yaml
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_nsq-nsqd.yaml
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_nsq-nsqlookupd.yaml
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_golang.yaml
ansible-playbook -i inventories/dockube/inventory.ini playbook/dockube_docker.yaml
##### {{datacenter}} #####
ansible-playbook -i inventories/{{datacenter}}/inventory.ini playbook/tag_nsq-nsqadmin.yaml
ansible-playbook -i inventories/{{datacenter}}/inventory.ini playbook/tag_nsq-nsqd.yaml
ansible-playbook -i inventories/{{datacenter}}/inventory.ini playbook/tag_nsq-nsqlookupd.yaml
ansible-playbook -i inventories/{{datacenter}}/inventory.ini playbook/tag_golang.yaml
ansible-playbook -i inventories/{{datacenter}}/inventory.ini playbook/tag_docker.yaml
##### Aliyun (Alibaba Cloud) #####
ansible-playbook -i inventories/aliyun/inventory.ini playbook/tag_nsq-nsqadmin.yaml
ansible-playbook -i inventories/aliyun/inventory.ini playbook/tag_nsq-nsqd.yaml
ansible-playbook -i inventories/aliyun/inventory.ini playbook/tag_nsq-nsqlookupd.yaml
ansible-playbook -i inventories/aliyun/inventory.ini playbook/tag_golang.yaml
ansible-playbook -i inventories/aliyun/inventory.ini playbook/tag_docker.yaml
##### GCP #####
ansible-playbook -i inventories/gcp/inventory.ini playbook/tag_nsq-nsqadmin.yaml
ansible-playbook -i inventories/gcp/inventory.ini playbook/tag_nsq-nsqd.yaml
ansible-playbook -i inventories/gcp/inventory.ini playbook/tag_nsq-nsqlookupd.yaml
ansible-playbook -i inventories/gcp/inventory.ini playbook/tag_golang.yaml
ansible-playbook -i inventories/gcp/inventory.ini playbook/tag_docker.yaml
###############################
#      Dynamic Inventory      #
###############################
##### {{datacenter}} #####
ansible-playbook -i inventories/{{datacenter}}/ playbook/tag_docker.yaml
##### Aliyun (Alibaba Cloud) #####
ansible-playbook -i inventories/aliyun/alicloud.py playbook/tag_docker.yaml
ansible-playbook -i inventories/aliyun/alicloud.py playbook/tag_nsq-nsqadmin.yaml
ansible-playbook -i inventories/aliyun/alicloud.py playbook/tag_nsq-nsqd.yaml
ansible-playbook -i inventories/aliyun/alicloud.py playbook/tag_nsq-nsqlookupd.yaml
ansible-playbook -i inventories/aliyun/alicloud.py playbook/tag_golang.yaml
##### GCP #####
ansible-playbook -i inventories/gcp/gce.py playbook/tag_docker.yaml
ansible-playbook -i inventories/gcp/gce.py playbook/tag_nsq-nsqadmin.yaml
ansible-playbook -i inventories/gcp/gce.py playbook/tag_nsq-nsqd.yaml
ansible-playbook -i inventories/gcp/gce.py playbook/tag_nsq-nsqlookupd.yaml
ansible-playbook -i inventories/gcp/gce.py playbook/tag_golang.yaml
- Setup Environment
 
cp .env.example .env
- Customize your own environment 
.env - Copy your public-key (
id_rsa.pub) to eachssh-keyin dockube folder. - Setup your own environment DocKube deployment in 
dockube-build.shfile. 
ENV="0"                    # container environment (0 = development, 1 = staging, 2 = production)
SKIP_BUILD="0"             # (0 = with build process, 1 = bypass build process)
REMOVE_CACHE="0"           # (0 = using cache, 1 = no-cache)
RECREATE_CONTAINER="0"     # (0 = disable recreate container, 1 = force recreate container)
DAEMON_MODE="1"            # (0 = disable daemon mode, 1 = running daemon mode / background)
USERNAME=`echo $USER`
PATH_HOME=`echo $HOME`
CONTAINER_PRODUCTION="portainer dockube-master dockube-node dockube-nfs"
CONTAINER_STAGING="portainer dockube-master dockube-node dockube-nfs"
CONTAINER_DEVELOPMENT="portainer dockube-master dockube-node dockube-nfs"
- Running DocKube Services:
 
make [services]:
  - dockube-run:    Running Container DocKube
  - compose-build:  Build spesific container services
  - compose-up:     Start all container
  - dockube-stop:   Stop all container DocKube
  - dockube-down:   Delete all container DocKube
- Copy your public-key (
id_rsa.pub) to eachssh-keyin dockube folder. - Clone Repository 
Kubesprayfrom our repodockube/kubespray. 
Go to `workspace` folder clone `kubespray` from
`https://github.com/dockube/kubespray`
-----
$ cd workspace
$ git clone https://github.com/dockube/kubespray
- Configure 
kubespray/ansible.cfg: 
### Baremetal / AWS / GCP ###
#remote_user=ubuntu
### OpenStack / DigitalOcean (DO) / DocKube ###
remote_user=root
- Setup your own environment kubespray deployment in 
workspace/kubespray/kubespray.shfile. 
ENV_KEY="0"                # Setup environment key private (0 = Not Used, 1 = DocKube, 2 = Staging, 3 = Production)
VERBOSE_MODE="0"           # (0 = disable verbose mode, 1 = running verbose mode)
VERBOSE_COMMAND="-vvv"
INVENTORY_DOCKUBE="inventory/dockube/hosts.ini"
INVENTORY_STAGING="inventory/k8s-staging/hosts.ini"
INVENTORY_PRODUCTION="inventory/k8s-production/hosts.ini"
DOCKUBE_PATH_KEY="/opt/keyserver/key-dockube.pem"
STAGING_PATH_KEY="/opt/keyserver/key-staging.pem"
PRODUCTION_PATH_KEY="/opt/keyserver/key-prod.pem"
- Running Kubespray Services:
 
make [services]:
  - dockube-cluster:      Build K8S cluster in DocKube environment
  - dockube-remove:       Remove K8S cluster in DocKube environment
  - dockube-reset:        Reset all configuration K8S cluster in DocKube environment
  - dockube-scale:        Scale new K8S cluster in DocKube environment
  - dockube-upgrade:      Upgrade K8S cluster in DocKube environment
  - staging-cluster:      Build K8S cluster in Staging environment
  - staging-remove:       Remove K8S cluster in Staging environment
  - staging-reset:        Reset all configuration K8S cluster in Staging environment
  - staging-scale:        Scale new K8S cluster in Staging environment
  - staging-upgrade:      Upgrade K8S cluster in Staging environment
  - production-cluster:   Build K8S cluster in Production environment
  - production-remove:    Remove K8S cluster in Production environment
  - production-reset:     Reset all configuration K8S cluster in Production environment
  - production-scale:     Scale new K8S cluster in Production environment
  - production-upgrade:   Upgrade K8S cluster in Production environment
- Copy your public-key (id_rsa.pub) to each 
ssh-keyfolder. - Check Container Running
 
docker ps
- Inspect IP Address
 
docker inspect [container_id]
-----
docker inspect 1486 | grep IP    # container_id: dockube-master
"IPAddress": "172.212.0.6"
- Use 
rootaccount 
- Check Container
 
root@1486b2a592b3:~# go version
go version go1.11.1 linux/amd64
root@1486b2a592b3:~# ansible --version
ansible 2.0.0.2
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides