{"id":18358621,"url":"https://github.com/david-yu/vagrant-docker-ee-ubuntu","last_synced_at":"2025-04-06T13:31:35.743Z","repository":{"id":86140112,"uuid":"91845984","full_name":"david-yu/vagrant-docker-ee-ubuntu","owner":"david-yu","description":"Vagrant Docker EE 2.1 cluster on Ubuntu 16.04","archived":false,"fork":false,"pushed_at":"2019-03-20T03:28:50.000Z","size":124,"stargazers_count":6,"open_issues_count":3,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-22T00:44:14.841Z","etag":null,"topics":["docker","dtr","ee","k8s","ucp","vagrant"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/david-yu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-19T21:14:36.000Z","updated_at":"2019-03-20T03:28:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"2ca0bac5-36ac-4d71-9132-792bec52b68b","html_url":"https://github.com/david-yu/vagrant-docker-ee-ubuntu","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-yu%2Fvagrant-docker-ee-ubuntu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-yu%2Fvagrant-docker-ee-ubuntu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-yu%2Fvagrant-docker-ee-ubuntu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-yu%2Fvagrant-docker-ee-ubuntu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/david-yu","download_url":"https://codeload.github.com/david-yu/vagrant-docker-ee-ubuntu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247488533,"owners_count":20946956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dtr","ee","k8s","ucp","vagrant"],"created_at":"2024-11-05T22:18:47.331Z","updated_at":"2025-04-06T13:31:35.729Z","avatar_url":"https://github.com/david-yu.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Vagrant Virtualbox setup for Docker EE 2.1 on Ubuntu Xenial 16.04\n========================\n\n## Overview\n\n### Repository structure\n\nThis vagrant file is provided strictly for demonstration purposes to help setup a cluster environment that installs Docker EE, UCP, and DTR with embedded DNS. This can be used as a demo environment on your local machine, when internet access is not present. The organization of this repo is as follows:\n\n- `env` - where environment variables are stored and read for bringing up EE platform\n- `files` - configuration files for load balancers, etc\n- `scripts` - scripts executed by VagrantFile\n- `Makefile` - file used to create simple commands via `make` which invoke the Vagrant CLI\n- `Vagrantfile` - file used to provisioning of infrastructure as invoked by Vagrant CLI\n\n### Vagrant VMs provisioned\n\nBy default, after running `make start` the following will be provisioned and installed:\n- UCP node - UCP will be accessible from `https:\\\\ucp.local` resolved through DNS (login: docker / dockeradmin ), provisioned with 2.5 GB RAM and 2 CPU\n- DTR node - DTR will be accessible from `https:\\\\dtr.local` resolved through DNS, provisioned with 2 GB RAM and 2 CPU\n- 2 worker nodes (`worker-node1` and `worker-node2`) - provisioned with 1GB RAM and 2 CPU each\n- Gitlab CE node (Optional) - Gitlab will be accessible from `https:\\\\gitlab.local` resolved through DNS, provisioned with 2.5 GB RAM and 2 CPU\n- Jenkins worker node (Optional) - worker node that runs Jenkins container, provisioned with 1GB RAM and 2 CPU each\n\n### Static IPs set by default\n\nThis template will also setup the VMs with static ip addresses as follows (if IP addresses are already in use, change them inside of the Vagrantfile):\n- `ucp` (UCP manager node): 172.28.128.31\n- `ucp-node2` (UCP manager node2): 172.28.128.32 - Optional\n- `ucp-node3` (UCP manager node3): 172.28.128.33 - Optional\n- `dtr` (DTR replica): 172.28.128.34\n- `worker-node1` (Worker node): 172.28.128.35\n- `worker-node2` (Worker node): 172.28.128.36\n- `gitlab` (Gitlab node): 172.28.128.37 - Optional\n- `haproxy` (HA Proxy node): 172.28.128.30 - Optional, HAProxy Stats will be accessible from `https:\\\\haproxy.local:9000` (login: `admin` / `admin`)\n- `jenkins` (Jenkins node): 172.28.128.38 - Optional\n\n### DNS entries created for VMs\n\nDNS entries for landrush:\n- `dtr.local`: 172.28.128.34\n- `ucp.local`: 172.28.128.31\n- `wordpress.local`: 172.28.128.35\n- `jenkins.local`: 172.28.128.35\n- `nodeapp.local`: 172.28.128.35\n- `visualizer.local`: 172.28.128.35\n- `gitlab.local`: 172.28.128.31\n\n## Getting Started\n\n1. #### Download vagrant from Vagrant website\n - [https://www.vagrantup.com/downloads.html](https://www.vagrantup.com/downloads.html)\n\n\n2. #### Install Virtual Box\n - [https://www.virtualbox.org/wiki/Downloads/](https://www.virtualbox.org/wiki/Downloads/)\n\n3. #### Create files in the `/env` folder to store environment variables with custom values for use by Vagrant\n```\nee_url\nucp_username\n```\nFor the `ee_url` file make sure the format of the ee_url is like the following\n```\nhttps://storebits.docker.com/ee/linux/sub-xxx-xxx-xxx-xxx-xxx\n```\n\n4. #### Provide Docker EE license in `/files` folder (will fail if not provided)\n```\ndocker_subscription.lic\n```\n\n5. #### Install [vagrant-landrush](https://github.com/vagrant-landrush/landrush) plugin\n```\nvagrant plugin install landrush\nvagrant plugin install vagrant-hostsupdater\n```\n\n6. #### Bring up nodes\nIf you are thinking of customizing the start up of the cluster (i.e. no DTR, HA UCP, etc) modify the `Makefile` to describe the `start`, `stop`, and `destroy` targets to manage certain nodes, if you only need a UCP manager node you can just edit the file to have the following entry for the `start` target.\n```\nstart:\n\t@vagrant up haproxy ucp worker-node1 worker-node2\n\t...\ndestroy:\n\t@vagrant destroy -f ucp worker-node1 worker-node2\n```\n\nFirst lets set up a manager node to start our cluster, we'll use the `ucp` target instead to build a cluster with both swarm and kubernetes workers. If you want to just provision UCP and two swarm workers, use the `make start` target instead.\n```\nmake ucp\n```\nYou should now be able access UCP on `https://ucp.local` and login with `docker/dockeradmin`. Next, lets bring up kubernetes worker nodes by running the following commands to first set the orchestration mode to Kubernes and then provisioning and joining the kubernetes workers to the cluster.\n```\n# Switch orchestration to Kubernetes\nmake orch\n# Provision and join workers\nmake workers\n```\nAfter setting up a swarm or kubernetes cluster with the previous commands, we'll go ahead and set up DTR. Before installing DTR, ensure that orchestration mode is set to Swarm. The following commands will first switch orchestration mode (back to Kubernetes from Swarm) and then provision a swarm worker node and install DTR.\n```\n# Switch orchestration mode to Swarm\nmake orch\n# Provision node and install DTR\nmake dtr\n```\n7. ####  Install Gitlab CE and Jenkins (Optional)\n\t1. If you want to bring up a Gitlab CE node you can run the following command to bring up a VM that runs Gitlab CE without Docker\n\t```\n\tmake gitlab\n\t```\n\n\tThen go login as `root`/`5iveL!fe` and create an Access Token by to going to Settings -\u003e Access Tokens and export the token as an environment variables.\n\t```\n\tEXPORT GITLAB_TOKEN=\u003cinsert token\u003e\n\t```\n\n\t2. Run the following command to configure Gitlab with a new project and webhooks using the GITLAB_TOKEN\n\t```\n\tmake config-gitlab\n\t```\n\n\t3. After bringing up a Gitlab CE node you can then provision a Swarm node to run Jenkins on Docker EE.\n\t```\n\tmake jenkins\n\t```\n\n7. #### SSH into nodes\nYou can SSH directly into the nodes by specifying the names of each Vagrant VM\n```\nvagrant ssh ucp\n```\n8. #### Snapshot nodes\nTake initial snapshot of nodes\n```\nmake snap\n```\nRestore initial snapshot\n```\nmake rollback\n```\n9. #### Stop nodes\n```\nmake stop\n```\n10. #### Destroy nodes\n```\nmake destroy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-yu%2Fvagrant-docker-ee-ubuntu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavid-yu%2Fvagrant-docker-ee-ubuntu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-yu%2Fvagrant-docker-ee-ubuntu/lists"}