diff --git a/ansible.cfg b/ansible.cfg index b723a25..9853599 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -1,5 +1,5 @@ [defaults] -inventory = hosts.yml +inventory = hosts.yml,hosts.local # [privilege_escalation] # become_ask_pass = True diff --git a/dev/defaults.yml b/dev/defaults.yml index 22cb7da..c29d26b 100644 --- a/dev/defaults.yml +++ b/dev/defaults.yml @@ -1,4 +1,4 @@ -- hosts: all +- hosts: os_MacOSX tasks: - name: set OS X defaults @@ -9,13 +9,14 @@ value: "{{ item.value }}" notify: restart OS X system services vars: - mailmate_allowed_image_urls: - - https://((i|images|d)\.gr-assets\.com - - www\.goodreads\.com - - massdrop-s3\.imgix\.net - - .*\.cloudfront\.net - - s3\.amazonaws\.com - - files\.convertkitcdn\.com/assets/pictures)/.* + mailmate: + allowed_image_regexps: + - https://((i|images|d)\.gr-assets\.com + - www\.goodreads\.com + - massdrop-s3\.imgix\.net + - .*\.cloudfront\.net + - s3\.amazonaws\.com + - files\.convertkitcdn\.com/assets/pictures)/.* with_items: # NSGlobalDomain defaults @@ -251,7 +252,7 @@ - domain: com.freron.MailMate key: MmAllowedImageURLRegexp type: string - value: "{{ mailmate_allowed_image_urls | join('|') }}" + value: "{{ mailmate.allowed_image_regexps | join('|') }}" - domain: com.freron.MailMate key: MmSendMessageDelayEnabled @@ -271,3 +272,5 @@ - Finder - Dock - SystemUIServer + +# vim: ft=yaml.ansible diff --git a/dev/dotfiles.yml b/dev/dotfiles.yml index 05d1de2..0e03eb2 100644 --- a/dev/dotfiles.yml +++ b/dev/dotfiles.yml @@ -1,13 +1,17 @@ -- hosts: all +- name: Sync dotfiles + hosts: dev tasks: - - name: List dotfiles - shell: ls -A ~/.dotfiles | grep '^\.' - register: ls_dotfiles + - name: List dotfiles # noqa: risky-shell-pipe + ansible.builtin.shell: ls -A ~/.dotfiles | grep '^\.' + register: ls_dotfiles + changed_when: false - - name: Symlink dotfiles - file: - src: ~/.dotfiles/{{ item }} - dest: ~/{{ item }} - state: link - loop: "{{ ls_dotfiles.stdout_lines | difference(['.git', '.gitmodules']) }}" + - name: Symlink dotfiles + ansible.builtin.file: + src: ~/.dotfiles/{{ item }} + dest: ~/{{ item }} + state: link + loop: "{{ ls_dotfiles.stdout_lines | difference(['.git', '.gitmodules', '.DS_Store']) }}" + +# vim: ft=yaml.ansible diff --git a/dev/homebrew.yml b/dev/homebrew.yml index a87ac2d..09c4cc7 100644 --- a/dev/homebrew.yml +++ b/dev/homebrew.yml @@ -1,5 +1,5 @@ -- name: Homebrew - hosts: all +- name: Install homebrew formulae + hosts: os_MacOSX tasks: - name: Install Homebrew formulae @@ -61,6 +61,8 @@ - name: Heed docker-compose caveats block: - name: Create Docker CLI plugins config dir - ansible.buitin.file: + ansible.builtin.file: dest: ~/.docker/cli-plugins state: directory + +# vim: ft=yaml.ansible diff --git a/dev/main.yml b/dev/main.yml index 6804cfb..c4bf637 100644 --- a/dev/main.yml +++ b/dev/main.yml @@ -1,44 +1,50 @@ -- hosts: all +- name: Main playbook + hosts: dev tasks: - - group_by: key=os_{{ ansible_distribution }} - tags: always - - - ansible.builtin.git: - repo: git@git.kejadlen.dev:alpha/dotfiles.git - dest: ~/.dotfiles.git - bare: true - - # macOS things - - # Not needed anymore since I've switched to kitty - # - # - name: Import terminal profile - # ansible.builtin.command: open ~/.macos/Alpha.terminal - # - # - name: Set terminal profile to be the default - # osx_defaults: - # domain: com.apple.Terminal - # key: "{{ item }} Window Settings" - # type: string - # value: Alpha - # with_items: - # - Default - # - Startup - -- import_playbook: homebrew.yml - -- import_playbook: defaults.yml -- import_playbook: dock.yml -- import_playbook: macos.yml - -- hosts: all + - name: Group by OS + ansible.builtin.group_by: + key: os_{{ ansible_distribution }} + + - name: Check out dotfiles + ansible.builtin.git: + repo: git@git.kejadlen.dev:alpha/dotfiles.git + dest: ~/.dotfiles + version: main + accept_newhostkey: true + # repo can have local changes + ignore_errors: true # noqa: ignore-errors + +- name: Import dotfiles playbook + import_playbook: dotfiles.yml + +# First since this installs tooling used later +- name: Import homebrew playbook + import_playbook: homebrew.yml + +- name: Import defaults playbook + import_playbook: defaults.yml + +- name: Import dock playbook + import_playbook: dock.yml + +- name: Import macos playbook + import_playbook: macos.yml + +- name: Misc macOS things + hosts: os_MacOSX tasks: + # https://tratt.net/laurie/blog/2024/faster_shell_startup_with_shell_switching.html + # I'm not sure why this doesn't work on my Linux box, but whatever - name: Set default shell to sh - user: + ansible.builtin.user: name: alpha shell: /bin/sh --login - - ansible.builtin.command: "luarocks install fennel" + + - name: Install Fennel + ansible.builtin.command: "luarocks install fennel" + args: + creates: /opt/homebrew/bin/fennel # vim: ft=yaml.ansible diff --git a/hosts.yml b/hosts.yml index e2e8d5e..342d40e 100644 --- a/hosts.yml +++ b/hosts.yml @@ -8,3 +8,6 @@ all: ansible_python_interpreter: /usr/bin/python3 on-fire-within: lotus-land-story: +dev: + hosts: + localhost: