From 819870642d1a783208d78156e802c1ad15b73321 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Wed, 2 May 2018 19:39:08 +0200 Subject: [pkg] add ansible scripts for bootstrapping windows env --- pkg/windows/ansible/01_bitmask_deps.yml | 58 +++++++++++++++++++++++++++ pkg/windows/ansible/02_bitmask_virtualenv.yml | 37 +++++++++++++++++ pkg/windows/ansible/Makefile | 9 +++++ pkg/windows/ansible/README | 23 +++++++++++ pkg/windows/ansible/hosts.sample | 11 +++++ pkg/windows/ansible/reboot.yml | 9 +++++ pkg/windows/ansible/rmvirtualenv.yml | 9 +++++ 7 files changed, 156 insertions(+) create mode 100644 pkg/windows/ansible/01_bitmask_deps.yml create mode 100644 pkg/windows/ansible/02_bitmask_virtualenv.yml create mode 100644 pkg/windows/ansible/Makefile create mode 100644 pkg/windows/ansible/README create mode 100644 pkg/windows/ansible/hosts.sample create mode 100644 pkg/windows/ansible/reboot.yml create mode 100644 pkg/windows/ansible/rmvirtualenv.yml diff --git a/pkg/windows/ansible/01_bitmask_deps.yml b/pkg/windows/ansible/01_bitmask_deps.yml new file mode 100644 index 00000000..d69aa9ab --- /dev/null +++ b/pkg/windows/ansible/01_bitmask_deps.yml @@ -0,0 +1,58 @@ +######################################################################## +# Playbook to bootstrap a bitmask development environment in +# a windows base image (install system dependencies). +# +# Make sure to follow the instructions in +# https://docs.ansible.com/ansible/devel/user_guide/windows_setup.html +# before running this playbook. +# You also need to install win_git plugin: +# https://github.com/tivrobo/ansible-win_git +######################################################################## + +- hosts: all + gather_facts: false + tasks: + - name: create leap directory + win_file: + path: C:\leap + state: directory + + - name: create ssh folder + win_file: + path: C:\Users\admin\.ssh\ + state: directory + + - name: touch ssh hosts file + win_file: + path: C:\Users\admin\.ssh\known_hosts + state: file + + - name: install dev requirements + win_chocolatey: + name: '{{ item }}' + state: present + with_items: + - git + - poshgit + - wget + - curl + - 7zip + - python2 + - nssm + - nsis + - mingw + - nim + - golang + + - name: install developer tools + win_chocolatey: + name: '{{ item }}' + state: present + with_items: + - vim + - openssh + + - name: upgrade all the packages + win_chocolatey: + name: all + state: latest diff --git a/pkg/windows/ansible/02_bitmask_virtualenv.yml b/pkg/windows/ansible/02_bitmask_virtualenv.yml new file mode 100644 index 00000000..fed36a0c --- /dev/null +++ b/pkg/windows/ansible/02_bitmask_virtualenv.yml @@ -0,0 +1,37 @@ +######################################################################## +# Playbook to bootstrap a bitmask development environment in +# a windows base image (install virtualenv) +# +# Make sure to follow the instructions in +# https://docs.ansible.com/ansible/devel/user_guide/windows_setup.html +# before running this playbook. +# You also need to install win_git plugin: +# https://github.com/tivrobo/ansible-win_git +######################################################################## + +- hosts: all + gather_facts: false + tasks: + + # XXX this will fail the first time! need to reboot windows so thatthe PATH variable gets updated + # https://github.com/ansible/ansible/issues/24333 + + - name: git clone bitmask + win_git: + repo: "https://github.com/leapcode/bitmask-dev.git" + dest: "c:\\leap\\bitmask-dev" + branch: master + update: yes + replace_dest: no + accept_hostkey: yes + + - name: install virtualenv + win_command: pip install -U virtualenvwrapper-win + + - name: create bitmask virtualenv (with vpn deps) + win_command: mkvirtualenv.bat bitmask -r c:\leap\bitmask-dev\pkg\requirements-vpn.pip + ignore_errors: yes + + - name: install bitmask in devmode + win_command: pip install -e c:\leap\bitmask-dev + ignore_errors: yes diff --git a/pkg/windows/ansible/Makefile b/pkg/windows/ansible/Makefile new file mode 100644 index 00000000..87400f9f --- /dev/null +++ b/pkg/windows/ansible/Makefile @@ -0,0 +1,9 @@ +deps: + ansible-playbook 01_bitmask_deps.yml +bootstrap: + ansible-playbook 02_bitmask_virtualenv.yml +reboot: + ansible-playbook reboot.yml +rmvirtualenv: + ansible-playbook rmvirtualenv.yml + diff --git a/pkg/windows/ansible/README b/pkg/windows/ansible/README new file mode 100644 index 00000000..afefa0d4 --- /dev/null +++ b/pkg/windows/ansible/README @@ -0,0 +1,23 @@ +Bootstrapping a windows environment for Bitmask development +=========================================================== + +Create a windows virtual machine. Give it a minimum of 25GB. + +Install ansible: + + https://docs.ansible.com/ansible/devel/user_guide/windows_setup.html + +TODO: add instructions for configuring inventory in a file in this folder - see hosts.sample + the other option is to configure it in /etc/ansible/hosts + +Install bitmask deps and some tools for development: + + make deps + +Reboot the windows machine so that some installed tools get in the PATH for the new session: + + make reboot + +Bootstrap a bitmask virtualenv: + + make bootstrap diff --git a/pkg/windows/ansible/hosts.sample b/pkg/windows/ansible/hosts.sample new file mode 100644 index 00000000..e42bb16e --- /dev/null +++ b/pkg/windows/ansible/hosts.sample @@ -0,0 +1,11 @@ +[windows] +192.168.122.196 + +[windows:vars] + ansible_user=admin + ansible_password=secretpass + ansible_connection=winrm + ansible_port=5985 + ansible_winrs_scheme=http + ansible_winrm_transport=basic + ansible_winrm_server_cert_validation=ignore diff --git a/pkg/windows/ansible/reboot.yml b/pkg/windows/ansible/reboot.yml new file mode 100644 index 00000000..005c83a9 --- /dev/null +++ b/pkg/windows/ansible/reboot.yml @@ -0,0 +1,9 @@ +######################################################################## +# Reboot a a windows host. +######################################################################## + +- hosts: all + gather_facts: false + tasks: + - name: reboot host unconditionally + win_reboot: diff --git a/pkg/windows/ansible/rmvirtualenv.yml b/pkg/windows/ansible/rmvirtualenv.yml new file mode 100644 index 00000000..0de422a4 --- /dev/null +++ b/pkg/windows/ansible/rmvirtualenv.yml @@ -0,0 +1,9 @@ +######################################################################## +# Remove the bitmask virtualenv. +######################################################################## + +- hosts: all + gather_facts: false + tasks: + - name: remove bitmask virtualenv + win_command: rmvirtualenv bitmask -- cgit v1.2.3