├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── ansible.cfg ├── group_vars └── all.yml ├── hosts ├── playbooks └── main.yml ├── requirements.yml ├── roles ├── apt │ └── tasks │ │ └── main.yml ├── chromium │ └── tasks │ │ └── main.yml ├── docker │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── dropbox │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── encfs │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── packer │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── python │ └── tasks │ │ ├── main.yml │ │ ├── pip2.yml │ │ └── pip3.yml ├── ruby │ └── tasks │ │ ├── main.yml │ │ └── ruby_gems.yml ├── skype │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── spotify │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── vagrant │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml ├── virtualbox │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml └── vscode │ ├── tasks │ └── main.yml │ └── vars │ └── main.yml └── scripts ├── run.sh ├── setup.sh └── test.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.save 2 | *.sublime-project 3 | *.sublime-workspace 4 | 5 | *.retry 6 | .external-roles/ 7 | .npm/ 8 | .ansible_galaxy 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sudo: required 3 | 4 | language: python 5 | 6 | addons: 7 | apt: 8 | packages: 9 | - docker-ce 10 | 11 | env: 12 | - IMG=geerlingguy/docker-ubuntu1604-ansible 13 | - IMG=geerlingguy/docker-ubuntu1804-ansible 14 | 15 | services: 16 | - docker 17 | 18 | before_install: 19 | - docker --version 20 | - docker pull $IMG 21 | 22 | script: 23 | - docker run -it -v "$(pwd):/root/" 24 | $IMG /bin/sh /root/scripts/test.sh 25 | 26 | notifications: 27 | webhooks: https://galaxy.ansible.com/api/v1/notifications/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/chaosmail/dev-env.svg?branch=master)](https://travis-ci.org/chaosmail/dev-env) 2 | 3 | # Development Environment for Humans 4 | 5 | This repository should help you to quickly setup a clean development environment based on Ubuntu 16.04 LTS on your machine. 6 | 7 | ## Before Starting 8 | 9 | Download Ubuntu 16.04 LTS 64bit from [ubuntu.com](http://www.ubuntu.com/download/desktop) and install it on your machine. 10 | 11 | Git is the only requirement needed, so go ahead and install it via `sudo apt-get install -y git`. 12 | 13 | ## Getting started 14 | 15 | First, clone the *dev-env* repository to your machine to the *~/.dev-env* directory. Then you can run the setup script, which will install Python, Pip and Ansible. It will also link the `run.sh` file to the `dev-env` command. 16 | 17 | ```sh 18 | git clone git@github.com:chaosmail/dev-env.git ~/.dev-env 19 | sh ~/.dev-env/scripts/setup.sh 20 | ``` 21 | 22 | ## Installing, updating and configuring your Environment 23 | 24 | After running the above setup script, you can automatically install and configure all your development applications with Ansible by running the `dev-env` command from the terminal. 25 | 26 | ## What's included? 27 | 28 | At the moment, following packages will be automatically installed and configured: 29 | 30 | * common: curl, gcc, nmap, wget, make, git, openssl 31 | * chromium: installation 32 | * dropbox: installation 33 | * docker: installation 34 | * encfs: installation 35 | * filezilla: installation 36 | * java: installation (Open JDK/JRE 8 and 9) 37 | * keepassx: installation 38 | * nautilus: configuration *open in terminal* 39 | * nodejs: installation and install npm packages (define in group_vars/all.yml) 40 | * python: python3, pip3 and python packages (define in group_vars/all.yml) 41 | * ruby: installation and ruby gems (define in group_vars/all.yml) 42 | * skype: installation and unity wrapper 43 | * spotify: installation 44 | * sublime: installation, package manager and popular packages (define in group_vars/all.yml) 45 | * vagrant: installation 46 | * vscode: installation 47 | 48 | These package are included in this repository and can be added if needed: 49 | 50 | * packer: installation 51 | * virtualbox: installation 52 | 53 | ## Development 54 | 55 | To debug the configuration you can simply add the `tags: debug` statement to a tasks and then call the following command to execute these tasks. 56 | 57 | ```sh 58 | cd ~/.dev-env 59 | ansible-playbook $DIR/playbooks/main.yml -i hosts --ask-sudo-pass --tags debug 60 | ``` 61 | -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | 3 | # hosts configuration 4 | inventory = hosts 5 | 6 | # path to search for roles in 7 | roles_path = roles:.external-roles 8 | 9 | # disable SSH key host checking 10 | host_key_checking = False 11 | 12 | # change the default callback, you can only have one 'stdout' type enabled at a time. 13 | stdout_callback = skippy 14 | 15 | # SSH timeout 16 | timeout = 10 -------------------------------------------------------------------------------- /group_vars/all.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Configuration 3 | 4 | apt_packages: 5 | - curl 6 | - gcc 7 | - make 8 | - nmap 9 | - wget 10 | - build-essential 11 | - software-properties-common 12 | - openjdk-8-jdk 13 | - openjdk-8-jre 14 | - keepassx 15 | - filezilla 16 | - inkscape 17 | - sketch 18 | - pandoc 19 | 20 | sublime_version: 3 21 | 22 | sublime_packages: 23 | - 'https://github.com/skuroda/Sublime-AdvancedNewFile.git' 24 | - 'https://github.com/clifford-github/sublime-ansible.git' 25 | - 'https://github.com/weslly/ColorPicker.git' 26 | - 'https://github.com/kemayo/sublime-text-git.git' 27 | - 'https://github.com/jisaacks/GitGutter.git' 28 | - 'https://github.com/mitsuhiko/jinja2-tmbundle' 29 | - 'https://github.com/revolunet/sublimetext-markdown-preview' 30 | - 'https://github.com/SublimeLinter/SublimeLinter3.git' 31 | - 'https://github.com/Microsoft/TypeScript-Sublime-Plugin.git' 32 | 33 | nodejs_version: 8.x 34 | 35 | npm_packages: 36 | - http-server 37 | - typescript 38 | - karma-cli 39 | - browserify 40 | - webpack 41 | - bower 42 | - grunt 43 | - gulp-cli 44 | - less 45 | 46 | ruby_gems: 47 | - fpm 48 | - jekyll 49 | - rake 50 | - sass 51 | 52 | pip2_packages: 53 | - fabric 54 | 55 | pip3_packages: 56 | - pipenv 57 | - numpy 58 | - scikit-learn 59 | - requests 60 | - matplotlib 61 | - nose 62 | - jupyter 63 | - beautifulsoup4 64 | - Jinja2 -------------------------------------------------------------------------------- /hosts: -------------------------------------------------------------------------------- 1 | localhost ansible_connection=local 2 | -------------------------------------------------------------------------------- /playbooks/main.yml: -------------------------------------------------------------------------------- 1 | - name: Install Common Development Tools 2 | hosts: 127.0.0.1 3 | connection: local 4 | roles: 5 | - apt 6 | - python 7 | - { role: chaosmail.nodejs } 8 | - ruby 9 | - spotify 10 | - chromium 11 | - dropbox 12 | - encfs 13 | - { role: chaosmail.sublime-text } 14 | - vagrant 15 | - docker 16 | - vscode 17 | become_user: root 18 | become: true 19 | -------------------------------------------------------------------------------- /requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Requirements for dev-env 3 | 4 | # Import roles from ansible galaxy 5 | - src: chaosmail.nodejs 6 | - src: chaosmail.sublime-text 7 | -------------------------------------------------------------------------------- /roles/apt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Common Tools 3 | 4 | - name: APT update cache 5 | apt: update_cache=yes 6 | become: true 7 | 8 | - name: Create `/usr/share/man/man1` directory (required for Java 8) 9 | file: 10 | path: /usr/share/man/man1 11 | state: directory 12 | when: 13 | - ansible_distribution == 'Ubuntu' 14 | - ansible_distribution_release == 'bionic' 15 | become: true 16 | 17 | - name: Install common tools 18 | apt: 19 | pkg: "{{ item.name | default(item) }}{{ '=' + item.version if (item.version | default(False)) else '' }}" 20 | state: present 21 | force: yes 22 | with_items: "{{ apt_packages | default([]) }}" 23 | become: true 24 | -------------------------------------------------------------------------------- /roles/chromium/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Chromium 3 | 4 | - name: Install latest chromium package with codecs 5 | apt: pkg="{{ item }}" state=present force=yes 6 | with_items: 7 | - chromium-browser 8 | - chromium-browser-l10n 9 | - chromium-codecs-ffmpeg-extra 10 | become: true 11 | 12 | - name: Check if ~/.profile exists 13 | stat: 14 | path: "{{ ansible_env.HOME }}/.profile" 15 | register: user_profile 16 | 17 | - name: Export CHROME_BIN chrome executable 18 | lineinfile: 19 | dest: "{{ ansible_env.HOME }}/.profile" 20 | regexp: "CHROME_BIN" 21 | line: "export CHROME_BIN=/usr/bin/chromium-browser" 22 | state: present 23 | when: user_profile.stat.exists 24 | -------------------------------------------------------------------------------- /roles/docker/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Docker 3 | 4 | - name: Add docker repository 5 | apt_repository: repo="{{ docker_ppa }}" state=present 6 | sudo: true 7 | 8 | - name: Add public key 9 | apt_key: url="{{ docker_ppa_key }}" id="{{ docker_ppa_id }}" state=present 10 | sudo: true 11 | 12 | - name: Update package manager 13 | apt: update_cache=yes 14 | sudo: true 15 | 16 | - name: Install latest docker package 17 | apt: pkg="{{ item }}" state=latest 18 | with_items: 19 | - docker-ce 20 | sudo: true -------------------------------------------------------------------------------- /roles/docker/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | docker_ppa: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" 4 | docker_ppa_key: https://download.docker.com/linux/ubuntu/gpg 5 | docker_ppa_id: 0EBFCD88 6 | -------------------------------------------------------------------------------- /roles/dropbox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Dropbox 3 | 4 | - name: Check if dropbox is installed 5 | command: dpkg-query -W dropbox 6 | register: dropbox_check_deb 7 | failed_when: dropbox_check_deb.rc > 1 8 | changed_when: dropbox_check_deb.rc == 1 9 | 10 | - name: Install dropbox 11 | apt: deb="{{ dropbox_url }}" 12 | become: true 13 | when: dropbox_check_deb.rc == 1 -------------------------------------------------------------------------------- /roles/dropbox/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dropbox_version: "dropbox_2015.10.28_amd64" 4 | 5 | dropbox_url: "https://www.dropbox.com/download?dl=packages/ubuntu/{{ dropbox_version }}.deb" -------------------------------------------------------------------------------- /roles/encfs/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure EncFS 3 | 4 | - name: Add encfs repository 5 | apt_repository: repo="{{ encfs_ppa }}" state=present 6 | 7 | - name: Add public key 8 | apt_key: keyserver="{{ encfs_ppa_keyserver }}" id="{{ encfs_ppa_id }}" state=present 9 | 10 | - name: Update package manager 11 | apt: update_cache=yes 12 | 13 | - name: Install latest encfs package 14 | apt: pkg="{{ item }}" state=latest force=yes 15 | with_items: 16 | - encfs 17 | - gnome-encfs-manager -------------------------------------------------------------------------------- /roles/encfs/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | encfs_ppa: "deb http://ppa.launchpad.net/gencfsm/ppa/ubuntu {{ ansible_distribution_release }} main" 4 | 5 | encfs_ppa_keyserver: keyserver.ubuntu.com 6 | encfs_ppa_id: B684584331689DCE7C8FDF456A0344470F68ADCA -------------------------------------------------------------------------------- /roles/packer/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Packer 3 | 4 | - name: Check packer directory 5 | stat: path="{{ packer_dir }}" 6 | register: packer_check_dir 7 | 8 | - name: Create packer directory 9 | file: path="{{ packer_dir }}" state=directory 10 | sudo: true 11 | when: packer_check_dir.stat.isdir is not defined 12 | 13 | - name: Check if packer is installed 14 | stat: path="{{ packer_dir }}/packer" 15 | register: packer_check_exe 16 | 17 | - name: Download packer 18 | get_url: 19 | url="{{ packer_url }}" 20 | dest="/home/{{ ansible_env.USER }}/Downloads/{{ packer_version }}.zip" 21 | when: packer_check_exe.stat.isfile is not defined 22 | 23 | - name: Unzip the package and move to users dir 24 | unarchive: 25 | src="/home/{{ ansible_env.USER }}/Downloads/{{ packer_version }}.zip" 26 | dest="{{ packer_dir }}" 27 | copy=no 28 | sudo: true 29 | when: packer_check_exe.stat.isfile is not defined 30 | 31 | - name: Add packer directory to path 32 | lineinfile: 33 | dest="/home/{{ ansible_env.USER }}/.profile" 34 | regexp="packer" 35 | line="export PATH=$PATH:{{ packer_dir }}/" 36 | state=present 37 | when: packer_check_exe.stat.isfile is not defined -------------------------------------------------------------------------------- /roles/packer/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | packer_version: packer_0.7.5_linux_amd64 4 | 5 | packer_url: https://dl.bintray.com/mitchellh/packer/{{ packer_version }}.zip 6 | packer_dir: /opt/packer -------------------------------------------------------------------------------- /roles/python/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Install python 4 | apt: pkg="{{ item }}" state=present force=yes 5 | with_items: 6 | - python3 7 | - python3-pip 8 | - python 9 | - python-pip 10 | become: true 11 | 12 | # Install Pip packages 13 | 14 | - include: pip2.yml 15 | - include: pip3.yml 16 | -------------------------------------------------------------------------------- /roles/python/tasks/pip2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install Python 2 Packages 3 | 4 | - name: Update pip2 5 | pip: name="pip" state=latest 6 | become: true 7 | 8 | - name: Install python2 packages with pip2 9 | pip: 10 | name: "{{ item.name | default(item) }}" 11 | version: "{{ item.version | default(omit) }}" 12 | state: present 13 | extra_args: "--no-cache-dir" 14 | with_items: "{{ pip2_packages | default([]) }}" 15 | become: true 16 | -------------------------------------------------------------------------------- /roles/python/tasks/pip3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install Python 3 Packages 3 | 4 | - name: Update pip2 5 | pip: name="pip" state=latest executable=pip3 6 | become: true 7 | 8 | - name: Install python3 packages with pip3 9 | pip: 10 | name: "{{ item.name | default(item) }}" 11 | version: "{{ item.version | default(omit) }}" 12 | state: present 13 | extra_args: "--no-cache-dir" 14 | executable: pip3 15 | with_items: "{{ pip3_packages | default([]) }}" 16 | become: true -------------------------------------------------------------------------------- /roles/ruby/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Ruby 3 | 4 | - name: Install latest ruby package 5 | apt: pkg="{{ item }}" state=present force=yes 6 | with_items: 7 | - ruby 8 | - ruby-dev 9 | - rubygems 10 | sudo: true 11 | 12 | # Install Ruby Gems 13 | 14 | - include_tasks: ruby_gems.yml -------------------------------------------------------------------------------- /roles/ruby/tasks/ruby_gems.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Ruby Gems 3 | 4 | - name: Install all custom packages 5 | command: "gem install --no-ri --no-rdoc {{ item }}" 6 | with_items: "{{ ruby_gems | default([]) }}" 7 | become: true -------------------------------------------------------------------------------- /roles/skype/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Skype 3 | # SkypeForLinux - Wrapper around Skype web client 4 | 5 | - name: Add skype repository 6 | apt_repository: repo="{{ skype_ppa }}" state=present 7 | sudo: true 8 | 9 | - name: Add public key 10 | apt_key: url="{{ skype_ppa_key }}" state=present 11 | sudo: true 12 | 13 | - name: Update package manager 14 | apt: update_cache=yes 15 | sudo: true 16 | 17 | - name: Install latest skype package 18 | apt: pkg="{{ item }}" state=latest force=yes 19 | with_items: 20 | - skypeforlinux 21 | sudo: true 22 | 23 | 24 | -------------------------------------------------------------------------------- /roles/skype/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | skype_ppa: "deb [arch=amd64] https://repo.skype.com/deb stable main" 4 | skype_ppa_key: https://repo.skype.com/data/SKYPE-GPG-KEY -------------------------------------------------------------------------------- /roles/spotify/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Spotify 3 | 4 | - name: Add spotify repository 5 | apt_repository: repo="{{ spotify_ppa }}" state=present 6 | sudo: true 7 | 8 | - name: Add public key 9 | apt_key: keyserver="{{ spotify_ppa_keyserver }}" id="{{ spotify_ppa_id }}" state=present 10 | sudo: true 11 | 12 | - name: Update package manager 13 | apt: update_cache=yes 14 | sudo: true 15 | 16 | - name: Install latest spotify package 17 | apt: pkg="{{ item }}" state=latest force=yes 18 | with_items: 19 | - spotify-client 20 | sudo: true -------------------------------------------------------------------------------- /roles/spotify/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | spotify_ppa: "deb http://repository.spotify.com stable non-free" 4 | 5 | spotify_ppa_keyserver: keyserver.ubuntu.com 6 | spotify_ppa_id: 0DF731E45CE24F27EEEB1450EFDC8610341D9410 7 | -------------------------------------------------------------------------------- /roles/vagrant/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Vagrant 3 | # https://vagrant-deb.linestarve.com/ 4 | 5 | - name: Add vagrant repository 6 | apt_repository: repo="{{ vagrant_ppa }}" state=present 7 | sudo: true 8 | 9 | - name: Add public key 10 | apt_key: keyserver="{{ vagrant_ppa_keyserver }}" id="{{ vagrant_ppa_id }}" state=present 11 | sudo: true 12 | 13 | - name: Update package manager 14 | apt: update_cache=yes 15 | sudo: true 16 | 17 | - name: Install latest vagrant package 18 | apt: pkg="{{ item }}" state=latest 19 | with_items: 20 | - vagrant 21 | sudo: true 22 | -------------------------------------------------------------------------------- /roles/vagrant/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | vagrant_ppa: "deb https://vagrant-deb.linestarve.com/ any main" 4 | 5 | vagrant_ppa_keyserver: keyserver.ubuntu.com 6 | vagrant_ppa_id: AD319E0F7CFFA38B4D9F6E55CE3F3DE92099F7A4 7 | -------------------------------------------------------------------------------- /roles/virtualbox/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Virtualbox 3 | 4 | - name: Add apt package source 5 | apt_repository: repo="{{ virtualbox_ppa }}" state=present 6 | sudo: true 7 | 8 | - name: Add apt key 9 | apt_key: url="{{ virtualbox_ppa_key }}" state=present 10 | sudo: true 11 | 12 | - name: Update package manager 13 | apt: update_cache=yes 14 | sudo: true 15 | 16 | - name: Install latest virtualbox package 17 | apt: pkg="virtualbox" state=present force=yes 18 | sudo: true 19 | -------------------------------------------------------------------------------- /roles/virtualbox/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | virtualbox_ppa: "deb http://download.virtualbox.org/virtualbox/debian {{ ansible_distribution_release }} contrib" 4 | virtualbox_ppa_key: http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -------------------------------------------------------------------------------- /roles/vscode/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Install & Configure Sublime Text 3 | 4 | - name: Add vscode repository 5 | apt_repository: repo="{{ vscode_ppa }}" state=present 6 | sudo: true 7 | 8 | - name: Add public key 9 | apt_key: url="{{ vscode_ppa_key }}" id="{{ vscode_ppa_id }}" state=present 10 | sudo: true 11 | 12 | - name: Update package manager 13 | apt: update_cache=yes 14 | sudo: true 15 | 16 | - name: Install latest vscode package 17 | apt: pkg="{{ item }}" state=latest 18 | with_items: 19 | - code 20 | sudo: true 21 | -------------------------------------------------------------------------------- /roles/vscode/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | vscode_ppa: "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" 4 | vscode_ppa_key: https://packages.microsoft.com/keys/microsoft.asc 5 | vscode_ppa_id: BE1229CF -------------------------------------------------------------------------------- /scripts/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Root Directory 4 | DIR=~/.dev-env 5 | 6 | ansible-playbook $DIR/playbooks/main.yml -------------------------------------------------------------------------------- /scripts/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Current directory 4 | DIR=~/.dev-env 5 | 6 | # Install Git, Python3, PIP and Ansible 7 | sudo apt-get install -y git python3 python3-pip ansible 8 | 9 | # Install external roles 10 | mkdir -p .external-roles 11 | ansible-galaxy install -p .external-roles -r requirements.yml 12 | 13 | # Make run script executable and link it 14 | chmod u+x $DIR/run.sh 15 | sudo ln -sf $DIR/run.sh /usr/bin/dev-env 16 | -------------------------------------------------------------------------------- /scripts/test.sh: -------------------------------------------------------------------------------- 1 | # Debug output 2 | pwd 3 | cat /etc/*-release; 4 | ansible --version; 5 | 6 | # Run the test.yml playbook 7 | cd /root; 8 | 9 | mkdir -p .external-roles 10 | ansible-galaxy install -p .external-roles -r requirements.yml 11 | 12 | ansible-playbook playbooks/main.yml; --------------------------------------------------------------------------------