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
ssh root@172.212.0.12 - 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