├── .gitignore ├── LICENSE ├── README.adoc ├── files └── inventory ├── scripts ├── install-corporate.sh └── install-custom.sh ├── vagrantfile ├── xedora.png └── xubuntu.png /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | *.swp 4 | .vagrant 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- 1 | :toc: 2 | :toc-placement!: 3 | 4 | :note-caption: :information_source: 5 | :tip-caption: :bulb: 6 | :important-caption: :heavy_exclamation_mark: 7 | :warning-caption: :warning: 8 | :caution-caption: :fire: 9 | 10 | = Software Development Environment 11 | Ron Kurr 12 | 13 | toc::[] 14 | 15 | == Overview 16 | This project is a Vagrant box that is provisioned for software development. It is a Linux-based system and has many of the tools needed by a developer already installed. The provisioning mechanism is based on Ansible and allows for user-specific customizations to be applied. 17 | 18 | == Prerequisites 19 | 20 | * https://www.vagrantup.com/[Vagrant] installed and working 21 | * https://www.virtualbox.org/[VirtualBox] installed and working 22 | * https://en.wikipedia.org/wiki/X86_virtualization[Virtualization support] enabled in your BIOS 23 | * a working internet connection 24 | * Your corporate VPN running (if you want to apply some work-specific plays) 25 | 26 | IMPORTANT: if you don't enable virtualization support in your BIOS, VirtualBox will not run correctly. 27 | 28 | 29 | == Building 30 | All the components of the environment live in repositories on the internet so there is nothing to build. 31 | 32 | TIP: Some people have experienced issues when rebuilding a box due to flaky networks, online assets moving to different locations or installation processes changing. When you need your box, you need your box and you don't have the time to troubleshoot an installation issue. To combat this problem, we've decided to change the build model and bake in much of the software into the base image. The trade-off we've made to ensure quick and stable rebuilds is a larger initial download. All boxes are currently housed in https://app.vagrantup.com/kurron[HashiCorp's Vagrant Cloud] repository. 33 | 34 | == Installation 35 | Use Git to clone this project, go into the project folder, type `vagrant up` and go get a cup of coffee. The construction time of the box greatly depends on your internet speeds. 36 | 37 | .Xubuntu 38 | image::xubuntu.png[Xubuntu] 39 | 40 | == Tips and Tricks 41 | 42 | === All I see is a black box! 43 | Some are reporting that when the box is first started, everything is black. The cause is unknown but the work around is to switch from full screen to windowed and back. So far, this behavior has only been reported on Windows 10 running VirtualBox. 44 | 45 | === Where is my JDK? 46 | Recent changes to the JDK release schedule have resulted in numerous versions of the JDK available for download, making it difficult to select a version that will meet your needs. We now use https://sdkman.io/[SDK Man!] to manage JVM installation. The `~/bin` folder contains a script that will help you list out the available JVMs and how to install them. The key is to select the proper JVM identifier from the list and use it when invoking the installation command. The `JAVA_HOME` and `JDK_HOME` environment variables already point to the location that SDK Man! installs the JDK. 47 | 48 | === I Want To Customize My Box But I'm Not Comfortable With Ansible Yet 49 | The articles https://opensource.com/article/18/3/manage-workstation-ansible[How to manage your workstation configuration with Ansible], https://opensource.com/article/18/3/manage-your-workstation-configuration-ansible-part-2[Manage your workstation with Ansible: Automating configuration] and https://opensource.com/article/18/5/manage-your-workstation-ansible-part-3[Manage your workstation with Ansible: Configure desktop settings] provide a nice recipe you can follow. The author suggests using `local.yml` as your playbook's name but our integration expects `playbook.yml`. Other than that, you should be able to follow the recipe and customize the box to your liking. 50 | 51 | === Using Snap To Install Applications 52 | TIP: Look in the `~/bin` folder for scripts that install IDEs and other tools via Snap. 53 | 54 | Due to the ever increasing image size, some applications no longer come pre-installed. Those applications, however, can be easily installed via Snap. You can think of a Snap as a Docker image for GUI applications. You can find the popular applications in the https://snapcraft.io/store[Snap Store]: 55 | 56 | * MicroK8s 57 | * Visual Studio Code 58 | * Atom 59 | * Skype 60 | * Slack 61 | * Chromium 62 | * Firefox 63 | * Brave 64 | * Eclipse 65 | * RubyMine 66 | * PyCharm 67 | * DataGrip 68 | * PhpStorm 69 | * IDEA 70 | * GoLand 71 | * GIMP 72 | 73 | === Upgrading 74 | Sometimes the Vagrant file changes which can cause some subtle issues, such as creating an orphaned virtual machine. The safest upgrade procedure is the following: 75 | 76 | 1. `vagrant destroy` to remove the existing box 77 | 1. `git pull` to download the new files 78 | 1. **`vagrant box outdated`** to see if newer version of the box is available 79 | 1. `vagrant box update --box ` to pull down the current version of the box 80 | 1. `vagrant up` to build the new box 81 | 82 | === RAM and CPU Settings 83 | If you examine the `vagrantfile` file, you will see that the virtual machine is configured to use 6GB of RAM and 2 CPUs. Feel free to change these values to match your computer's hardware. 84 | 85 | === Low Disk Space 86 | If an environment is used long enough, it is likely to run out of disk space. The two main culprits are kernel updates filling up the `/boot` partition and Docker images filling up the `/var/lib/docker` partition. You have at least 3 options: 87 | 88 | * throw away the environment and start fresh 89 | * clean up the old kernels via `sudo apt-get autoremove` 90 | * clean up Docker containers via `docker rm --volumes --force $(docker ps --all --quiet)` 91 | * clean up Docker images, after cleaning up the containers, via `docker rmi --force $(docker images --quiet)` 92 | 93 | === Verifying The Setup 94 | Log into the system with a username of `vagrant` and password of `vagrant`. 95 | 96 | === Installed Infrastructure 97 | Docker containers running common infrastructure are installed in `/home/vagrant/bin/servers`. Look at the `docker-compose.yml` file to see what services are currently available to use. Run the `start.sh` script to install and run the servers. You can also start up a single server, eg `docker-compose up -d mongodb`. 98 | 99 | === Docker-based IDEs 100 | We've deprecated the use of Docker-based IDEs. We've found that projects that produce and consume Docker images can be challenging when running from within a container. If Docker in Docker ever becomes mainstream, we'll look into switching back. See <> for a better alternative. 101 | 102 | === Applying Your Company Specific Customizations 103 | The system will look for an environment variable named `CORPORATE_PLAYS`. If the shell running Vagrant specifies the variable such that it points to an Ansible project on GitHub, the plays will be run and the changes applied. For example `export CORPORATE_PLAYS=kurron/ansible-pull-transparent.git` will result in https://github.com/kurron/ansible-pull-transparent.git[this playbook] getting run. If the environment variable does not exist, the custom provisioning step is not run. 104 | 105 | === Applying Your Personal Customizations 106 | The system will look for an environment variable named `USER_PLAYS`. If the shell running Vagrant specifies the variable such that it points to an Ansible project on GitHub, the plays will be run and the changes applied. For example `export USER_PLAYS=myaccount/my-custom-tweaks.git` will result in the playbook getting run. If the environment variable does not exist, the custom provisioning step is not run. 107 | 108 | === Customizations: Linux Example 109 | 1. create and/or edit `~/.bash_profile` 110 | 1. add the two variables and save the file 111 | 1. open a new shell 112 | 1. `echo $CORPORATE_PLAYS` to verify the new variable has been properly set 113 | 1. `echo $USER_PLAYS` to verify the new variable has been properly set 114 | 1. you **may** have to log out and back in again for the variables to take affect 115 | 116 | ``` 117 | export CORPORATE_PLAYS=kurron/ansible-pull-transparent.git 118 | export USER_PLAYS=foo/custom-tweaks.git 119 | ``` 120 | 121 | === Customizations: Windows 10 Example 122 | 1. In Search, search for and then select: System (Control Panel) 123 | 1. Click the Advanced system settings link. 124 | 1. Click Environment Variables. 125 | 1. In `User variables for ...` add `CORPORATE_PLAYS` variable, pointing it to your plays on GitHub 126 | 1. In `User variables for ...` add `USER_PLAYS` variable, pointing it to your plays on GitHub 127 | 1. In Search, search for and then select: Command (Command Prompt) 128 | 1. `echo %CORPORATE_PLAYS%` to verify that your new variable has been properly set 129 | 1. `echo %USER_PLAYS%` to verify that your new variable has been properly set 130 | 131 | === Gather Docker Container Metrics 132 | `sudo csysdig -pcontainer` will fire up the sysdig tool. Use `F2` to switch to the container view and see how each container is using system resources. Explore some http://www.sysdig.org/wiki/sysdig-examples/[examples of how to use Sysdig] and see how can aid in troubleshooting. 133 | 134 | === Sub-Projects 135 | TIP: We've moved away from using `ansible-pull` and to using http://docs.ansible.com/ansible/playbooks_roles.html[Ansible Roles], which give us a better mechanism for reusing provisioning logic. You can find a https://galaxy.ansible.com/kurron/[list of available roles] in my Ansible Galaxy account. More are sure to be included over time. 136 | 137 | === Installed Software (partial list) 138 | 139 | * current http://zulu.org/[JDK] 140 | * http://sdkman.io/[SDKMAN!] to manage various JVM tools, including Groovy, Kotlin, Scala, Clojure, Java, VisualVM, Vert.x, Grails, Gradle, sbt, Maven, Ant and Leiningen 141 | * https://nodejs.org/en/[NodeJS] and https://www.npmjs.com/[npm] 142 | * https://packer.io/[Packer] 143 | * https://terraform.io/[Terraform] 144 | * https://aws.amazon.com/cli/[AWS CLI] 145 | * https://www.docker.com/[Docker] 146 | * https://www.docker.com/products/docker-compose[Docker Compose] 147 | * https://www.docker.com/products/docker-machine[Docker Machine] 148 | * various http://www.jetbrains.com/[JetBrains IDEs] 149 | * https://github.com/jkbrzt/httpie[httpie] - a more friendly alternative to cURL and wget 150 | 151 | == Troubleshooting 152 | 153 | === My Favorite App Is Missing! 154 | Due to ever increasing image size, some applications no longer come pre-installed. See <> for more details. 155 | 156 | === My Customization Script No Longer Works! 157 | The custom Ansible playbooks are now launched using the normal user account instead of the `root` account. You should check your playbook to ensure that `Become: True` are on the plays that require them. Another place to check is the Ansible code itself. The newest release has moved beyond deprecation and has removed some constructs. I noticed it with some of my plays that use iteration. 158 | 159 | === Vagrant Box Does Not Come Up 160 | If you find that when you are building a new box that it does not come up, try going into the `Settings->USB` section of your box in the VirtuabBox UI and disabling the USB controller. If you want USB support, make sure you have installed https://www.virtualbox.org/wiki/Downloads[VM VirtualBox Extension Pack]. 161 | 162 | You should also double check that you have **enabled virtualization support** in your BIOS. 163 | 164 | === Partial Failure 165 | Sometimes networks fail or mirror sites go down. If you experience a failure, you can attempt to resume the construction by issuing `vagrant provision` at the command line. Vagrant will attempt to start over, but will skip any provisions that have already taken place. 166 | 167 | === Cannot Acquire Repository Lock 168 | TIP: We've altered some of the installation logic to perform the retry logic described below automatically so you probably don't have to worry about this scenario any longer. 169 | 170 | One of the first steps is to update the APT repositories via `apt-get update` which every once in a while can fail. What appears to happen in those cases is that the Ubuntu GUI has already acquired the lock and is running the update on its own. The solution is to wait a bit and then reset the environment so that provisioning can continue. This issue will manifest in "Ansible is not installed" errors. 171 | 172 | 1. `vagrant ssh` 173 | 1. `sudo rm /var/lib/dpkg/lock` to remove the lock file 174 | 1. `sudo apt-get update` -- repeat this step until you can successfully acquired the lock and update 175 | 1. `sudo rm /var/ansible-install` 176 | 1. `exit` 177 | 1. `vagrant provision` should resume the provisioning of the box 178 | 179 | === My Git settings are all wrong! 180 | You need to specify a custom Git configuration file. The best way to do that is to create and apply your own customizations. 181 | 182 | === I'm running Windows 7 and Vagrant hangs! 183 | You need to install a current version of https://www.microsoft.com/en-us/download/details.aspx?id=40855[Windows Management Framework] and then reboot your machine. Apparently, there is a compatibility issue older PowerShell and newer Vagrant versions. 184 | 185 | === When updating my box, I get a metadata error! 186 | Some people have seen the following error: 187 | 188 | ---- 189 | $ vagrant box update 190 | ==> xedhat: Box 'kurron/maipo-xedhat' not installed, can't check for updates. 191 | ==> xubuntu: Checking for updates to 'kurron/xenial-xubuntu' 192 | xubuntu: Latest installed version: 5.1.29 193 | xubuntu: Version constraints: 194 | xubuntu: Provider: virtualbox 195 | There was an error while downloading the metadata for this box. 196 | The error message is shown below: 197 | 198 | The requested URL returned error: 404 Not Found 199 | ---- 200 | 201 | The solution is to `vagrant destroy xubuntu` followed by `vagrant box remove kurron/xenial-xubuntu`. The update should work properly now. 202 | 203 | == Change History 204 | 205 | 1. Release 2021.09.1100 206 | * Upgraded: based on current Ubuntu release which contains many package updates and a new kernel. 207 | 1. Release 2020.10.2800 208 | * Changed: Docker installed on demand via `~/bin/install-docker.sh` 209 | 1. Release 2020.10.0300 210 | * Upgraded: Ubuntu 20.04 211 | * Upgraded: Kernel 5.4.0-48-generic 212 | * Upgraded: SDKMAN! 5.9.0+555 213 | * Upgraded: Python 3.8.2 214 | * Upgraded: Docker version 19.03.13, build 4484c46d9d 215 | * Upgraded: docker-compose version 1.27.4, build 40524192 216 | * Upgraded: Support for VirtualBox 6.1.14 r140239 217 | 1. Release 2020.02.2200 218 | * Upgraded: Kernel 4.15.0-76-generic 219 | * Upgraded: SDKMAN! 5.7.4+362 220 | * Upgraded: Python 3.6.9 221 | * Upgraded: Legacy Python 2.7.17 222 | * Upgraded: Docker version 19.03.6, build 369ce74a3c 223 | * Upgraded: docker-compose version 1.25.4, build 8d51620a 224 | * Upgraded: docker-machine version 0.16.2, build bd45ab13 225 | * Upgraded: aws-cli/1.18.5 Python/2.7.17 Linux/4.15.0-76-generic botocore/1.15.5 226 | * Upgraded: AWS ecs-cli version 1.18.0 (3970a6c) 227 | * Upgraded: Nomad v0.10.4 (f750636ca68e17dcd2445c1ab9c5a34f9ac69345) 228 | * Upgraded: Packer 1.5.4 229 | * Upgraded: Terraform v0.11.14 230 | * Upgraded: Vault v1.3.2 231 | * Upgraded: Support for VirtualBox 6.1.4 232 | 233 | 1. Release 2019.11.1535 234 | * Upgraded: Kernel 4.15.0-72-generic 235 | * Upgraded: JDK 0 236 | * Upgraded: SDKMAN! 0 237 | * Upgraded: Python 3.6.9 238 | * Upgraded: Legacy Python 2.7.15+ 239 | * Upgraded: Docker version 19.03.5, build 633a0ea838 240 | * Upgraded: docker-compose version 1.24.1, build 4667896b 241 | * Upgraded: docker-machine version 0.16.2, build bd45ab13 242 | * Upgraded: aws-cli/1.16.290 Python/2.7.15+ Linux/4.15.0-72-generic botocore/1.13.26 243 | * Upgraded: AWS ecs-cli version 1.18.0 (3970a6c) 244 | * Upgraded: Nomad v0.9.5 (1cbb2b9a81b5715be2f201a4650293c9ae517b87) 245 | * Upgraded: Packer 1.4.3 246 | * Upgraded: Terraform v0.11.14 247 | * Upgraded: Vault v1.2.3 248 | * Upgraded: Support for VirtualBox 6.0.18 249 | * Upgraded: Support for VMWare Fusion 10.1.6 250 | 251 | 1. Release 2019.05.1452 252 | * Upgraded: Kernel 4.15.0-50-generic 253 | * Upgraded: JDK 1.8.0_212 254 | * Upgraded: SDKMAN! 5.7.3+337 255 | * Upgraded: Python 3.6.7 256 | * Upgraded: Legacy Python 2.7.15rc1 257 | * Upgraded: Virtualenv 16.6.0 258 | * Upgraded: Docker version 18.09.6, build 481bc77 259 | * Upgraded: docker-compose version 1.24.0, build 0aa59064 260 | * Upgraded: docker-machine version 0.16.1, build cce350d7 261 | * Upgraded: aws-cli/1.16.162 Python/2.7.15rc1 Linux/4.15.0-50-generic botocore/1.12.152 262 | * Upgraded: AWS ecs-cli version 1.14.1 (f73f9e3) 263 | * Upgraded: Kubectl Client Version: v1.14.1 264 | * Upgraded: Helm Client: v2.13.1+g618447c 265 | * Upgraded: localstack 0.9.2 266 | * Upgraded: sysdig version 0.25 267 | * Upgraded: falco version 0.15.0 268 | * Upgraded: Nomad v0.9.1 (4b2bdbd9ab68a27b10c2ee781cceaaf62e114399) 269 | * Upgraded: Packer 1.4.0 270 | * Upgraded: Terraform v0.11.14 271 | * Upgraded: Vault v1.1.2 ('0082501623c0b704b87b1fbc84c2d725994bac54') 272 | * Upgraded: NodeJS v8.16.0 273 | * Upgraded: NPM 6.4.1 274 | * Upgraded: Yeoman 2.0.6 275 | * Upgraded: Bower 1.8.8 276 | * Upgraded: Gulp CLI version: 2.2.0 277 | * Upgraded: Grunt grunt-cli v1.3.2 278 | * Upgraded: Serverless 1.43.0 279 | * Upgraded: IntelliJ IDEA 2019.1.2 280 | * Upgraded: PyCharm 2019.1.2 281 | * Upgraded: Support for VirtualBox 6.0.8 282 | * Upgraded: Support for VMWare Fusion 10.1.6 283 | 1. Release 2018.10.1700 284 | * Upgraded: Kernel 4.15.0-36-generic 285 | * Upgraded: OpenJDK Runtime Environment Zulu11.1+23 (build 11-ea+22) 286 | * Upgraded: OpenJDK Runtime Environment (Zulu 8.31.0.1-linux64) (build 1.8.0_181-b02) 287 | * Upgraded: SDKMAN! 5.7.3+337 288 | * Upgraded: Python 3.6.6 289 | * Upgraded: Legacy Python 2.7.15rc1 290 | * Upgraded: Virtualenv 16.0.0 291 | * Upgraded: Docker version 18.06.1-ce, build e68fc7a 292 | * Upgraded: docker-compose version 1.22.0, build f46880fe 293 | * Upgraded: docker-machine version 0.15.0, build b48dc28d 294 | * Upgraded: aws-cli/1.16.38 Python/2.7.15rc1 Linux/4.15.0-36-generic botocore/1.12.28 295 | * Upgraded: AWS ecs-cli version 1.9.0 (a426586) 296 | * Upgraded: Kubectl Client Version: v1.11.2 297 | * Upgraded: Helm Client: v2.10.0+g9ad53aa 298 | * Upgraded: localstack 0.8.7 299 | * Upgraded: sysdig version 0.24.1 300 | * Upgraded: falco version 0.12.1 301 | * Upgraded: Nomad v0.8.6 302 | * Upgraded: Packer 1.3.1 303 | * Upgraded: Terraform v0.11.9 304 | * Upgraded: Vault v0.11.3 305 | * Upgraded: NodeJS v8.12.0 306 | * Upgraded: NPM 6.4.1 307 | * Upgraded: Yeoman 2.0.5 308 | * Upgraded: Bower 1.8.4 309 | * Upgraded: Gulp [18:48:21] CLI version 2.0.1 310 | * Upgraded: Grunt grunt-cli v1.3.1 311 | * Upgraded: Serverless 1.32.0 312 | * Upgraded: IntelliJ IDEA 2018.2.5 313 | * Upgraded: PyCharm 2018.2.4 314 | * Upgraded: Support for VirtualBox 5.2.20 315 | * Upgraded: Support for VMWare Fusion 10.1.3 316 | 1. Release 2018.09.0100 317 | * Upgraded: Kernel 4.15.0-33-generic 318 | * Upgraded: SDKMAN! 5.7.2+323 319 | * Upgraded: Python 3.6.5 320 | * Upgraded: Legacy Python 2.7.15rc1 321 | * Upgraded: Virtualenv 16.0.0 322 | * Upgraded: Docker version 18.06.1-ce, build e68fc7a 323 | * Upgraded: Docker Compose version 1.22.0, build f46880fe 324 | * Upgraded: Docker Machine version 0.15.0, build b48dc28d 325 | * Upgraded: AWS CLI 1.16.6 326 | * Upgraded: AWS ECS CLI ecs-cli version 1.7.0 (61f83b2e) 327 | * Upgraded: Kubectl Client Version: v1.11.2 328 | * Upgraded: Helm v2.10.0+g9ad53aa 329 | * Upgraded: localstack 0.8.7 330 | * Upgraded: Sysdig 0.23.1 331 | * Upgraded: Falco 0.11.1 332 | * Upgraded: Nomad v0.8.4 (dbee1d7d051619e90a809c23cf7e55750900742a) 333 | * Upgraded: Packer 1.2.5 334 | * Upgraded: Terraform v0.11.8 335 | * Upgraded: Vault v0.11.0 ('87492f9258e0227f3717e3883c6a8be5716bf564') 336 | * Upgraded: NodeJS v8.11.4 337 | * Upgraded: NPM 5.6.0 338 | * Upgraded: Yeoman 2.0.5 339 | * Upgraded: Bower 1.8.4 340 | * Upgraded: Gulp [17:40:51] CLI version 2.0.1 341 | * Upgraded: Grunt grunt-cli v1.3.1 342 | * Upgraded: Serverless 1.30.3 343 | * Upgraded: IntelliJ IDEA 2018.2.2 344 | * Upgraded: PyCharm 2018.2.2 345 | * Upgraded: Support for VirtualBox 5.2.18 346 | * Upgraded: Support for VMWare Fusion 10.1.3 347 | 1. Release 2018.08.0400 348 | * Removed: MongoDB Compass (lack of use) 349 | * Removed: WebStorm (easy install via Snap Store) 350 | * Removed: Charles Proxy (lack of use) 351 | * Added: https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html[IAM Authenticator for EKS] 352 | * Added: https://github.com/localstack/awscli-local[localstack CLI] 353 | * Upgraded: Kernel 4.15.0-22-generic 354 | * Upgraded: SDKMAN! SDKMAN 5.7.2+323 355 | * Upgraded: Python 3.6.5 356 | * Upgraded: Legacy Python 2.7.15rc1 357 | * Upgraded: Edge Python Python 3.6.5 358 | * Upgraded: Virtualenv 16.0.0 359 | * Upgraded: Docker Docker version 18.06.0-ce, build 0ffa825 360 | * Upgraded: Docker Compose docker-compose version 1.22.0, build f46880fe 361 | * Upgraded: Docker Machine docker-machine version 0.15.0, build b48dc28d 362 | * Upgraded: AWS CLI aws-cli/1.15.71 Python/2.7.15rc1 Linux/4.15.0-22-generic botocore/1.10.70 363 | * Upgraded: AWS ECS CLI ecs-cli version 1.7.0 (61f83b2e) 364 | * Upgraded: Kubectl Client Version: v1.11.1 365 | * Upgraded: Helm v2.9.1 366 | * Upgraded: localstack 0.8.7 367 | * Upgraded: Sysdig sysdig version 0.22.1 368 | * Upgraded: Falco falco version 0.11.1 369 | * Upgraded: Nomad Nomad v0.8.4 (dbee1d7d051619e90a809c23cf7e55750900742a) 370 | * Upgraded: Packer 1.2.5 371 | * Upgraded: Terraform Terraform v0.11.7 372 | * Upgraded: Vault Vault v0.10.4 ('e21712a687889de1125e0a12a980420b1a4f72d3') 373 | * Upgraded: NodeJS v8.11.3 374 | * Upgraded: NPM 5.6.0 375 | * Upgraded: Yeoman 2.0.5 376 | * Upgraded: Bower 1.8.4 377 | * Upgraded: Gulp [13:25:09] CLI version 2.0.1 378 | * Upgraded: Grunt grunt-cli v1.2.0 379 | * Upgraded: Serverless 1.29.2 380 | * Upgraded: IntelliJ IDEA 2018.2 381 | * Upgraded: PyCharm 2018.2 382 | 1. Release 2018.05.2801 383 | * Removed: Windows support (I no longer have access to a Window 10 box, preventing me from diagnosing issues) 384 | * Removed: VPN support (it no longer installs and I don't have access to a VPN account to diagnose issues) 385 | * Removed: Python 3 PPA (it no longer installs and the official repository contains a recent version) 386 | * Removed: Atom (see <> for installation instructions) 387 | * Removed: Visual Studio Code (see <> for installation instructions) 388 | * Removed: Chromium (see <> for installation instructions) 389 | * Removed: HipChat (lack of use) 390 | * Removed: JDK 9 (replaced by JDK 10) 391 | * Removed: Hashicorp Consul (lack of use) 392 | * Removed: Hashicorp Serf (lack of use) 393 | * Removed: Support for Ubuntu 16.04 Xenial Xerus (replaced with Bionic Beaver) 394 | * **Warning:** Vagrant customization scripts no longer run as root, adjust playbooks accordingly. 395 | * Added: Support for Ubuntu 18.04 Bionic Beaver 396 | * Added: VMWare Support (Fusion used regularly but other flavors should work as well) 397 | * Added: WebStorm 2018.1.4 398 | * Added: audio support. We no longer used the trimmed down kernel so sound is now fully supported! 399 | * Upgraded: Kernel 4.15.0-22-generic 400 | * Upgraded: JDK 1.8.0_163 401 | * Upgraded: SDKMAN! 5.6.4+305 402 | * Upgraded: Python 3.6.5 403 | * Upgraded: Legacy Python 2.7.15rc1 404 | * Upgraded: Virtualenv 16.0.0 405 | * Upgraded: Docker 18.05.0-ce, build f150324 406 | * Upgraded: Docker Compose 1.21.2, build a133471 407 | * Upgraded: Docker Machine 0.14.0, build 89b8332 408 | * Upgraded: AWS CLI 1.15.28 409 | * Upgraded: AWS ECS CLI 1.5.0 (0bfcecd) 410 | * Upgraded: Kubectl Client 1.10 411 | * Upgraded: localstack 0.8.6.1 412 | * Upgraded: Sysdig 0.21.0 413 | * Upgraded: Falco 0.10.0 414 | * Upgraded: Nomad v0.8.3 (c85483da3471f4bd3a7c3de112e95f551071769f) 415 | * Upgraded: Packer 1.2.3 416 | * Upgraded: Terraform v0.11.7 417 | * Upgraded: Vault v0.10.1 ('756fdc4587350daf1c65b93647b2cc31a6f119cd') 418 | * Upgraded: NodeJS v8.11.2 419 | * Upgraded: NPM 5.6.0 420 | * Upgraded: Yeoman 2.0.2 421 | * Upgraded: Bower 1.8.4 422 | * Upgraded: Gulp [20:07:00] CLI version 2.0.1 423 | * Upgraded: Grunt grunt-cli v1.2.0 424 | * Upgraded: Serverless 1.27.3 425 | * Upgraded: IntelliJ IDEA 2018.1.4 426 | * Upgraded: PyCharm 2018.1.3 427 | * Upgraded: Charles Proxy 4.2.5 428 | * Upgraded: MongoDB Compass 1.13.0 429 | 1. Release 5.2.8 430 | * Upgraded: Kernel 4.4.0-116-generic 431 | * Upgraded: JDK 1.8.0_163 432 | * Upgraded: SDKMAN! 5.6.2+294 433 | * Upgraded: Python Python 3.5.2 434 | * Upgraded: Legacy Python2.7.12 435 | * Upgraded: Edge Python Python 3.6.4 436 | * Upgraded: Virtualenv 15.1.0 437 | * Upgraded: Docker 18.02.0-ce, build fc4de44 438 | * Upgraded: Docker Compose 1.19.0, build 9e633ef 439 | * Upgraded: Docker Machine 0.13.0, build 9ba6da9 440 | * Upgraded: AWS CLI 1.14.53 441 | * Upgraded: AWS ECS CLI 1.4.0 442 | * Upgraded: Kubectl Client Version 1.9.3 443 | * Upgraded: localstack 0.8.5 444 | * Upgraded: Sysdig 0.20.0 445 | * Upgraded: Falco 0.9.0 446 | * Upgraded: Consul v1.0.6 447 | * Upgraded: Consul Replicate v0.4.0 448 | * Upgraded: Consul Template v0.19.4 449 | * Upgraded: v0.7.1 450 | * Upgraded: Packer 1.2.1 451 | * Upgraded: Terraform v0.11.3 452 | * Upgraded: Vault v0.9.5 453 | * Upgraded: NodeJS v6.13.1 454 | * Upgraded: NPM 3.10.10 455 | * Upgraded: Yeoman 2.0.1 456 | * Upgraded: Bower 1.8.2 457 | * Upgraded: Gulp 2.0.1 458 | * Upgraded: Grunt v1.2.0 459 | * Upgraded: Serverless 1.26.1 460 | * Upgraded: IntelliJ IDEA 2017.3.4 461 | * Upgraded: PyCharm 2017.3.3 462 | * Upgraded: Charles Proxy 4.2.1 463 | * Upgraded: Atom 1.24.0 464 | * Upgraded: Visual Studio Code 1.21.0 465 | * Upgraded: MongoDB Compass 1.12.0 466 | 1. Release 5.2.6 467 | * Added: AWS Shell 468 | * Added: Meld (graphical diff tool) 469 | * Removed: WebStorm IDE 470 | * Removed: DataGrip IDE 471 | * Removed: VisualVM 472 | * Upgraded: VirtualBox 5.2.8 473 | * Upgraded: Vagrant 2.0.2 474 | * Upgraded: Kernel 4.4.0-112-generic 475 | * Upgraded: JDK1.8.0_162 476 | * Upgraded: SDKMAN! 5.6.1+290 477 | * Upgraded: Python Python 3.5.2 478 | * Upgraded: Legacy Python 2.7.12 479 | * Upgraded: Edge Python Python 3.6.4 480 | * Upgraded: Virtualenv 15.1.0 481 | * Upgraded: Docker 18.01.0-ce 482 | * Upgraded: Docker Compose 1.18.0 483 | * Upgraded: Docker Machine 0.13.0 484 | * Upgraded: AWS CLI 1.14.32 485 | * Upgraded: AWS ECS CLI 1.3.0 486 | * Upgraded: Kubectl v1.9.2 487 | * Upgraded: localstack 0.8.4 488 | * Upgraded: Sysdig 0.20.0 489 | * Upgraded: Falco 0.9.0 490 | * Upgraded: Consul Consul v1.0.3 491 | * Upgraded: Consul Replicate v0.4.0 492 | * Upgraded: Consul Template v0.19.4 493 | * Upgraded: Nomad v0.7.1 494 | * Upgraded: Packer 1.1.3 495 | * Upgraded: Terraform v0.11.3 496 | * Upgraded: Vault v0.9.3 497 | * Upgraded: NodeJS v6.12.3 498 | * Upgraded: NPM 3.10.10 499 | * Upgraded: Yeoman 2.0.1 500 | * Upgraded: Bower 1.8.2 501 | * Upgraded: Gulp 2.0.1 502 | * Upgraded: Grunt grunt-cli v1.2.0 503 | * Upgraded: Servless 1.26.0 504 | * Upgraded: IntelliJ IDEA 2017.3.4 505 | * Upgraded: PyCharm 2017.3.3 506 | * Upgraded: Charles Proxy 4.2.1 507 | * Upgraded: Atom 1.23.3 508 | * Upgraded: Visual Studio Code 1.19.3 509 | * Upgraded: MongoDB Compass 1.11.1 510 | 1. Release 5.2.5 511 | * Upgraded: Kernel 4.4.0-104-generic 512 | * Upgraded: JDK 1.8.0_152 513 | * Upgraded: SDKMAN! SDKMAN 5.6.0+287 514 | * Upgraded: Python Python 3.5.2 515 | * Upgraded: Legacy Python Python 2.7.12 516 | * Upgraded: Edge Python Python 3.6.4 517 | * Upgraded: Virtualenv 15.1.0 518 | * Upgraded: Docker Docker version 17.12.0-ce, build c97c6d6 519 | * Upgraded: Docker Compose docker-compose version 1.18.0, build 8dd22a9 520 | * Upgraded: Docker Machine docker-machine version 0.13.0, build 9ba6da9 521 | * Upgraded: AWS CLI aws-cli/1.11.125 Python/2.7.12 Linux/4.4.0-104-generic botocore/1.5.88 522 | * Upgraded: AWS ECS CLI ecs-cli version 1.2.0 (8d555ea) 523 | * Upgraded: Kubectl Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"} 524 | * Upgraded: localstack 0.8.3 525 | * Upgraded: Sysdig sysdig version 0.19.1 526 | * Upgraded: Falco falco version 0.8.1 527 | * Upgraded: Consul Consul v1.0.2 528 | * Upgraded: Consul Replicate consul-replicate v0.4.0 (886abcc) 529 | * Upgraded: Consul Template consul-template v0.19.4 (68b1da2) 530 | * Upgraded: Nomad Nomad v0.7.1 (0b295d399d00199cfab4621566babd25987ba06e) 531 | * Upgraded: Packer 1.1.3 532 | * Upgraded: Terraform Terraform v0.11.1 533 | * Upgraded: Vault Vault v0.9.1 ('87b6919dea55da61d7cd444b2442cabb8ede8ab1') 534 | * Upgraded: NodeJS v6.12.2 535 | * Upgraded: NPM 3.10.10 536 | * Upgraded: Yeoman 2.0.0 537 | * Upgraded: Bower 1.8.2 538 | * Upgraded: Gulp [09:56:42] CLI version 2.0.0 539 | * Upgraded: Grunt grunt-cli v1.2.0 540 | * Upgraded: Servless 1.25.0 541 | * Upgraded: IntelliJ IDEA 2017.3.2 542 | * Upgraded: PyCharm 2017.3.2 543 | * Upgraded: WebStorm 2017.3.2 544 | * Upgraded: DataGrip 2017.3.3 545 | * Upgraded: Charles Proxy 4.2.1 546 | * Upgraded: Atom 1.23.1 547 | * Upgraded: Visual Studio Code 1.19.1 548 | * Upgraded: MongoDB Compass 1.11.1 549 | * Upgraded: VisualVM 1.4 550 | 1. Release 5.1.29 551 | * Upgraded: IDEA 2017.2.5 552 | * Upgraded: Made JDK 8 default JVM (JDK 9 is also installed) 553 | 1. Release 5.1.28 554 | * Upgraded: VirtualBox 5.1.28 555 | * Upgraded: Vagrant 2.0.0 556 | * Added: Java 9.0.0.15 **(now default JDK)** 557 | * Upgraded: Java 1.8.0_144 (keeping during transition to Java 9) 558 | * Upgraded: Docker 17.07.0-ce 559 | * Upgraded: Docker Compose 1.16.1 560 | * Upgraded: Ansible 2.4.0.0 561 | * Upgraded: Node JS 6.11.3 562 | * Upgraded: Consul 0.9.3 563 | * Upgraded: Terraform 0.10.6 564 | * Upgraded: Linux Kernel 4.4.0-96-generic 565 | * Upgraded: WebStorm 2017.2.4 566 | * Upgraded: IDEA 2017.2.4 567 | * Upgraded: Kubernetes 1.7.6 568 | * Upgraded: PyCharm 2017.2.3 569 | * Upgraded: Atom 1.20.1 570 | * Upgraded: DataGrip 2017.2.2 571 | * Upgraded: Atlassian's localstack 0.8.0 572 | * Upgraded: Visual Studio Code 1.16.1 573 | * Upgraded: MongoDB Compass 1.8.2 574 | * Removed: logFACES (broken and nobody was complaining about it) 575 | 1. Release 5.1.26 576 | * Juniper VPN support 577 | * Upgraded: VirtualBox 5.1.26 578 | * Upgraded: Vagrant 1.9.7 579 | * Upgraded: Docker 17.06.0-ce 580 | * Upgraded: Docker Compose 1.15.0 581 | * Upgraded: Ansible 2.3.1.0 582 | * Upgraded: AWS CLI 1.11.86 583 | * Upgraded: Node JS 6.11.1 584 | * Upgraded: NPM 3.10.10 585 | * Upgraded: Consul 0.9.0 586 | * Upgraded: Linux Kernel 4.4.0-87-generic 587 | * Upgraded: WebStorm 2017.2 588 | * Upgraded: IDEA 2017.2 589 | * Upgraded: Kubernetes 1.7.2 590 | * Upgraded: PyCharm 2017.2 591 | * Upgraded: Atom 1.18.0 592 | * Upgraded: DataGrib 2017.2 593 | * Added: Serverless Framework 594 | * Added: Sysdig's Falco 595 | * Removed: docker-py module 596 | * Added: Atlassian's localstack (AWS emulator) 597 | * Added: Visual Studio Code 598 | * Added: MongoDB Compass 599 | * Removed: JHipster 600 | 1. Release 5.1.22 601 | * VirtualBox 5.1.22 support 602 | * Vagrant 1.9.4 support 603 | * kernel 4.4.0-75 604 | * Zulu JDK to 8.0.131 605 | * Docker Engine v17.04.0-ce 606 | * Docker Compose 1.12.0 607 | * Docker Machine 0.11.0 608 | * IntelliJ 2017.1.2 609 | * PyCharm 2017.1.2 610 | * WebStorm 2017.1.2 611 | * Sysdig 0.15.1 612 | * VisualVM 1.3.9 613 | * Consul to 0.8.1 614 | * Consul Template to 0.18.2 615 | * Nomad to 0.5.6 616 | * Terraform to 0.9.4 617 | * Vault to 0.7.0 618 | * Charles proxy 4.1.1 619 | * kubectl 1.6.2 620 | * Python 3.6 (`/usr/bin/python3.6`) 621 | * Atom 1.16.0 622 | * DataGrip 2017.1.2 623 | * logFaces 4.3.2 624 | * HTTPie 0.9.9 625 | * npm 3.10.10 626 | * node v6.10.2 627 | 1. Release 5.1.18 628 | * VirtualBox 5.1.18 support 629 | * Nomad 0.5.5 630 | * Terraform 0.9.0 631 | * Atom 1.15.0 632 | * AWS CLI 1.11.63 633 | 1. Release 5.1.16 634 | * VirtualBox 5.1.16 support 635 | * Vagrant 1.9.2 support 636 | * Docker 17.03.0-ce 637 | * Docker Compose 1.11.2 638 | * Ansible 2.2.1.0 639 | * AWS CLI 1.11.59 640 | * NodeJS v6.10.0 641 | * NPM 3.10.10 642 | * Consul v0.7.5 643 | * Nomad v0.5.4 644 | * Packer 0.12.3 645 | * WebStorm 2016.3.4 646 | * IntelliJ 2016.3.5 647 | * DataGrip 2016.3.4 648 | * Atom 1.14.4 649 | * Sysdig 0.15.0 650 | 1. Release 5.1.14 651 | * Azul JDK is now the default, Oracle is still available if needed 652 | * Oracle JDK updated to 1.8.0_121 653 | * AWS CLI updated to 1.11.41 654 | * ECS CLI updated to 0.4.6 655 | * Sysdig updated to 0.13.0 656 | * NodeJS updated to 6.9.4 657 | * logFACES updated to 4.3.1 658 | * DataGrip updated to 2016.3.2 659 | * PyCharm updated to 2016.3.2 660 | * IntelliJ IDEA updated to 2016.3.3 661 | * Atom updated to 1.13.0 662 | * Docker Engine updated to 1.13.0 663 | * Docker Compose updated to 1.10.0 664 | * Consul Replicate updated to 0.3.0 665 | * Consul Template updated to 0.18.0 666 | * Consul Env updated to 0.6.2 667 | * Nomad updated to 0.5.2 668 | * Packer updated to 0.12.2 669 | * Terraform update to 0.8.4 670 | * Added missing Atlassian repository keys 671 | 1. Release 5.1.12 672 | * VirtualBox 5.1.12 support, 673 | * RedHat now has a current version of Git installed. 674 | * Firefox, Chromium and Evince now installed by default. 675 | * Numerous version upgrades. 676 | 1. Release 5.1.10 677 | * Smaller download, 678 | * replaced ext4 with xfs, 679 | * updates to Docker, IntelliJ, PyCharm, WebStorm, Node JS, Atom, Packer 680 | * VirtualBox 5.1.10 support 681 | 1. Release 5.1.8 682 | * VirtualBox 5.1.8 support 683 | 684 | == License and Credits 685 | This project is licensed under the http://www.apache.org/licenses/[Apache License Version 2.0, January 2004]. 686 | -------------------------------------------------------------------------------- /files/inventory: -------------------------------------------------------------------------------- 1 | localhost ansible_connection=local 2 | -------------------------------------------------------------------------------- /scripts/install-corporate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$1" = "" ] 4 | then 5 | echo "No corporate-specific Ansible playbook defined. Nothing to do." 6 | exit 7 | fi 8 | 9 | # the GitHub location of the custom Ansible plays to run eg, https://github.com/kurron/ansible-pull-transparent.git 10 | PROJECT=$1 11 | 12 | ansible-pull --checkout master \ 13 | --directory /tmp/ansible-pull-corporate \ 14 | --inventory=localhost, \ 15 | --module-name=git \ 16 | --url=https://github.com/${PROJECT} \ 17 | --verbose \ 18 | --only-if-changed \ 19 | --user vagrant \ 20 | playbook.yml 21 | 22 | -------------------------------------------------------------------------------- /scripts/install-custom.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ "$1" = "" ] 4 | then 5 | echo "No user-specific Ansible playbook defined. Nothing to do." 6 | exit 7 | fi 8 | 9 | # make sure we can get the apt lock before running the plays 10 | until sudo apt-get update; do echo "Waiting for apt-get lock"; sleep 5; done 11 | 12 | # the GitHub location of the custom Ansible plays to run eg, kurron/ansible-pull-desktop-tweaks.git 13 | PROJECT=$1 14 | 15 | ansible-pull --checkout master \ 16 | --directory /tmp/ansible-pull-custom \ 17 | --inventory=localhost, \ 18 | --module-name=git \ 19 | --url=https://github.com/${PROJECT} \ 20 | --verbose \ 21 | --only-if-changed \ 22 | --user vagrant \ 23 | playbook.yml 24 | 25 | -------------------------------------------------------------------------------- /vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | Vagrant.require_version ">= 2.2.15" 5 | 6 | Vagrant.configure("2") do |config| 7 | config.vagrant.host = :detect 8 | config.vm.box = "kurron/focal-xubuntu" 9 | # config.vm.box_version = "2020.10.0100" 10 | config.vm.boot_timeout = 300 11 | config.vm.box_check_update = true 12 | config.vm.graceful_halt_timeout = 60 13 | config.vm.post_up_message = "Login credentials are vagrant/vagrant" 14 | config.vm.synced_folder ".", "/vagrant", disabled: false 15 | 16 | config.ssh.password = "vagrant" 17 | config.ssh.username = "vagrant" 18 | 19 | # uncomment to put the box on the network so it can be accessed by others 20 | # config.vm.network "public_network" 21 | 22 | config.vm.provider "virtualbox" do |v| 23 | v.customize ["modifyvm", :id, "--rtcuseutc", "on"] 24 | v.customize ["modifyvm", :id, "--hwvirtex", "on"] 25 | v.customize ["modifyvm", :id, "--nestedpaging", "on"] 26 | v.customize ["modifyvm", :id, "--vtxvpid", "on"] 27 | v.customize ["modifyvm", :id, "--largepages", "on"] 28 | v.customize ["modifyvm", :id, "--acpi", "on"] 29 | v.customize ["modifyvm", :id, "--groups", "/JVM Development"] 30 | 31 | # change the network card hardware for better performance 32 | v.customize ["modifyvm", :id, "--nictype1", "virtio"] 33 | v.customize ["modifyvm", :id, "--nictype2", "virtio"] 34 | 35 | # suggested fix for slow network performance 36 | # see https://github.com/mitchellh/vagrant/issues/1807 37 | v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] 38 | v.customize ["modifyvm", :id, "--natdnsproxy1", "on"] 39 | 40 | v.customize ["modifyvm", :id, "--vram", "48"] 41 | end 42 | 43 | project = ENV['USER_PLAYS'] 44 | config.vm.provision "shell" do |custom| 45 | custom.path = "scripts/install-custom.sh" 46 | custom.args = project 47 | custom.privileged = false 48 | custom.name = "Personal Ansible Provisions" 49 | end 50 | 51 | project = ENV['CORPORATE_PLAYS'] 52 | config.vm.provision "shell" do |corporate| 53 | corporate.path = "scripts/install-corporate.sh" 54 | corporate.args = project 55 | corporate.privileged = false 56 | corporate.name = "Corporate Ansible Provisions" 57 | end 58 | 59 | config.vm.define "xubuntu", primary: true do |xubuntu| 60 | xubuntu.vm.provider "virtualbox" do |v| 61 | v.gui = true 62 | v.name = "jvmguy.xubuntu" 63 | v.memory = 6144 64 | v.cpus = 2 65 | end 66 | end 67 | 68 | end 69 | -------------------------------------------------------------------------------- /xedora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurron/jvm-development-environment/745bd41e614f9688ec75a8f04afa939ddf879ca0/xedora.png -------------------------------------------------------------------------------- /xubuntu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurron/jvm-development-environment/745bd41e614f9688ec75a8f04afa939ddf879ca0/xubuntu.png --------------------------------------------------------------------------------