From 01c1e0d2a17f05fa29a0040baa3bb5e5f0165c63 Mon Sep 17 00:00:00 2001 From: Paul van Noort Date: Wed, 7 Apr 2021 13:26:28 +0200 Subject: [PATCH 1/3] dingen --- ansible.cfg | 2 ++ default.config.yml | 10 +++--- inventory | 3 +- main.yml | 8 +++++ requirements.yml | 2 ++ tasks/extra-packages.yml | 70 +++++++++++++++++++++------------------- tasks/terminal.yml | 13 ++++++-- 7 files changed, 66 insertions(+), 42 deletions(-) diff --git a/ansible.cfg b/ansible.cfg index 1b00cf9..4079992 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,3 +1,5 @@ [defaults] nocows = True roles_path = ./roles:/etc/ansible/roles +inventory = inventory +become = true diff --git a/default.config.yml b/default.config.yml index 38ff438..c19b001 100644 --- a/default.config.yml +++ b/default.config.yml @@ -2,7 +2,7 @@ downloads: ~/.ansible-downloads/ configure_dotfiles: true -configure_terminal: true +configure_terminal: false configure_osx: true configure_sudoers: false @@ -12,7 +12,7 @@ sudoers_custom_config: '' # # Allow users in admin group to use sudo with no password. # %admin ALL=(ALL) NOPASSWD: ALL -dotfiles_repo: https://github.com/geerlingguy/dotfiles.git +dotfiles_repo: https://github.com/dspolleke/dotfiles.git dotfiles_repo_accept_hostkey: true dotfiles_repo_local_destination: ~/Development/GitHub/dotfiles dotfiles_files: @@ -83,15 +83,15 @@ composer_packages: [] # - name: drush # state: present # present/absent, default: present # version: "^8.1" # default: N/A -gem_packages: [] -# - name: bundler +gem_packages: + - name: showoff # state: present # present/absent/latest, default: present # version: "~> 1.15.1" # default: N/A npm_packages: [] # - name: webpack # state: present # present/absent/latest, default: present # version: "^2.6" # default: N/A -pip_packages: [] +#pip_packages: [] # - name: mkdocs # state: present # present/absent/latest, default: present # version: "0.16.3" # default: N/A diff --git a/inventory b/inventory index 5b72010..f296d73 100644 --- a/inventory +++ b/inventory @@ -1,2 +1,3 @@ [all] -127.0.0.1 ansible_connection=local +#127.0.0.1 ansible_connection=local +192.168.2.49 diff --git a/main.yml b/main.yml index b35b077..57648c7 100644 --- a/main.yml +++ b/main.yml @@ -36,6 +36,14 @@ - include_tasks: tasks/extra-packages.yml tags: ['extra-packages'] + - name: Install global Ruby gems. + gem: + name: "{{ item.name | default(item) }}" + state: "{{ item.state | default('present') }}" + version: "{{ item.version | default(omit) }}" + user_install: false + executable: "{{ item.executable | default(omit) }}" + loop: "{{ gem_packages }}" - name: Run configured post-provision ansible task files. include_tasks: "{{ outer_item }}" diff --git a/requirements.yml b/requirements.yml index 859e695..c8046ca 100644 --- a/requirements.yml +++ b/requirements.yml @@ -3,3 +3,5 @@ roles: - name: geerlingguy.dotfiles - name: geerlingguy.homebrew - name: geerlingguy.mas +collections: + - name: community.general diff --git a/tasks/extra-packages.yml b/tasks/extra-packages.yml index 643cd41..94928e9 100644 --- a/tasks/extra-packages.yml +++ b/tasks/extra-packages.yml @@ -1,34 +1,38 @@ --- -- name: Install global Composer packages. - composer: - command: "{{ (item.state | default('present') == 'absent') | ternary('remove', 'require') }}" - arguments: "{{ item.name | default(item) }} {{ item.version | default('@stable') }}" - # Ansible 2.4 supports `global_command` making `working_dir` optional. - working_dir: "{{ lookup('env', 'COMPOSER_HOME') | default('~/.composer', true) }}" - with_items: "{{ composer_packages }}" - -- name: Install global NPM packages. - npm: - name: "{{ item.name | default(item) }}" - state: "{{ item.state | default('present') }}" - version: "{{ item.version | default(omit) }}" - global: true - executable: "{{ item.executable | default(omit) }}" - with_items: "{{ npm_packages }}" - -- name: Install global Pip packages. - pip: - name: "{{ item.name | default(item) }}" - state: "{{ item.state | default('present') }}" - version: "{{ item.version | default(omit) }}" - executable: "{{ item.executable | default(omit) }}" - with_items: "{{ pip_packages }}" - -- name: Install global Ruby gems. - gem: - name: "{{ item.name | default(item) }}" - state: "{{ item.state | default('present') }}" - version: "{{ item.version | default(omit) }}" - user_install: false - executable: "{{ item.executable | default(omit) }}" - with_items: "{{ gem_packages }}" +- name: Ensure extra packages are installed + block: + - name: Install global Composer packages. + composer: + command: "{{ (item.state | default('present') == 'absent') | ternary('remove', 'require') }}" + arguments: "{{ item.name | default(item) }} {{ item.version | default('@stable') }}" + # Ansible 2.4 supports `global_command` making `working_dir` optional. + working_dir: "{{ lookup('env', 'COMPOSER_HOME') | default('~/.composer', true) }}" + loop: "{{ composer_packages }}" + + - name: Install global NPM packages. + ansible.builtin.npm: + name: "{{ item.name | default(item) }}" + state: "{{ item.state | default('present') }}" + version: "{{ item.version | default(omit) }}" + global: true + executable: "{{ item.executable | default(omit) }}" + loop: "{{ npm_packages }}" + + - name: Install global Pip packages. + ansible.builtin.pip: + name: "{{ item.name | default(item) }}" + state: "{{ item.state | default('present') }}" + version: "{{ item.version | default(omit) }}" + executable: "{{ pip_executable | default(omit) }}" + loop: "{{ pip_packages }}" + + - name: Install global Ruby gems. + ansible.builtin.gem: + name: "{{ item.name | default(item) }}" + state: "{{ item.state | default('present') }}" + version: "{{ item.version | default(omit) }}" + user_install: false + install_dir: "{{ gem_dir }}" + executable: "{{ gem_executable | default(omit) }}" + loop: "{{ gem_packages }}" + tags: ['extra-packages'] diff --git a/tasks/terminal.yml b/tasks/terminal.yml index 3807ab6..5ffa752 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -6,9 +6,16 @@ changed_when: false check_mode: false -- name: Ensure custom Terminal profile is added. - command: open files/terminal/JJG-Term.terminal - changed_when: false +- name: ensure JJG-Term + block: + - name: transfer the file + copy: + src: files/terminal/JJG-Term.terminal + dest: /tmp/JJG-Term.terminal + + - name: Ensure custom Terminal profile is added. + command: open /tmp/JJG-Term.terminal + changed_when: false when: "'JJG-Term' not in terminal_theme.stdout" # TODO: This doesn't work in Yosemite. Consider a different solution? From ecaea525e06cea84609a027d2e2032ec85aa6b43 Mon Sep 17 00:00:00 2001 From: Paul van Noort Date: Wed, 7 Apr 2021 13:27:34 +0200 Subject: [PATCH 2/3] bootstrap --- bootstrap.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 bootstrap.sh diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100644 index 0000000..4c2b67f --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,31 @@ +#!/bin/bash +alias python=python3 +pyenv install --list | grep -Ev '[abc-]' | tail -1 +python -V 2>&1 | awk '/Python/{ split($2, a, "."); print a[1]"."a[2] }' + +if curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ; +then +python get-pip.py +fi + +export PATH="$HOME/Library/Python/${pyver}/bin/:$PATH" +python -m pip install --user ansible + +xcode-select --install > /dev/null 2>&1 +if [ "$?" == '0' ]; then + sleep 1 + osascript < Date: Wed, 7 Apr 2021 19:18:39 +0200 Subject: [PATCH 3/3] dock --- default.config.yml | 1 + tasks/dock.yml | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 tasks/dock.yml diff --git a/default.config.yml b/default.config.yml index c19b001..a3972e3 100644 --- a/default.config.yml +++ b/default.config.yml @@ -4,6 +4,7 @@ downloads: ~/.ansible-downloads/ configure_dotfiles: true configure_terminal: false configure_osx: true +configure_dock: [] configure_sudoers: false sudoers_custom_config: '' diff --git a/tasks/dock.yml b/tasks/dock.yml new file mode 100644 index 0000000..bfcd4c7 --- /dev/null +++ b/tasks/dock.yml @@ -0,0 +1,20 @@ +--- +- name: Install dockutil + homebrew: + name: dockutil + state: present + notify: + - Clear homebrew cache + +- name: Remove all crap from Dock + shell: dockutil --remove '{{ item }}' + ignore_errors: true + with_items: "{{ dockitems_to_remove }}" + +- name: Check if items in dock exist + shell: dockutil --find '{{ item.name }}' || dockutil --add '{{ item.path }}' + with_items: "{{ dockitems_to_persist }}" + +- name: Fix order + shell: dockutil --move '{{ item.name }}' --position '{{ item.pos }}' + with_items: "{{ dockitems_to_persist }}"