Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resync with upstream #198

Closed
wants to merge 16 commits into from
4 changes: 0 additions & 4 deletions .github/FUNDING.yml

This file was deleted.

1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,3 @@
.DS_Store
*.retry
roles*
config.yml
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"cSpell.enableFiletypes": [
"!yaml"
],
"yaml.format.singleQuote": false
}
3 changes: 3 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ rules:
line-length:
max: 180
level: warning
quoted-strings:
quote-type: double
required: false

ignore: |
.github/workflows/stale.yml
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

# Mac Development Ansible Playbook

[![CI][badge-gh-actions]][link-gh-actions]

This playbook installs and configures most of the software I use on my Mac for web and software development. Some things in macOS are slightly difficult to automate, so I still have a few manual installation steps, but at least it's all documented here.

## Installation
Expand Down
182 changes: 182 additions & 0 deletions config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
---
downloads: ~/.ansible-downloads/

configure_dotfiles: true
configure_iterm2: true
configure_osx: true

# Set to 'true' to configure the Dock via dockutil.
configure_dock: true
dockitems_remove:
- Launchpad
- Mail
- Maps
- Photos
- Contacts
- TV
- Music
- News
- Keynote
- Numbers
- Pages
- "App Store"
dockitems_persist:
- name: "Path Finder"
path: "/Applications/Setapp/Path Finder.app/"
pos: 1
- name: "Safari"
path: "/Applications/Safari.app/"
pos: 2
- name: "Spark"
path: "/Applications/Spark.app/"
pos: 3
- name: "Slack"
path: "/Applications/Slack.app/"
pos: 4
- name: "Visual Studio Code"
path: "/Applications/Visual Studio Code.app/"
pos: 5
- name: "Fork"
path: "/Applications/Fork.app/"
pos: 6
- name: "iTerm"
path: "/Applications/iTerm.app/"
pos: 7
- name: "Messages"
path: "/System/Applications/Messages.app"
pos: 8
- name: "Signal"
path: "/Applications/Signal.app/"
pos: 9
- name: "Spotify"
path: "/Applications/Spotify.app/"
pos: 10
- name: "Plexamp"
path: "/Applications/Plexamp.app"
pos: 11
- name: "Whatsapp"
path: "/Applications/Whatsapp.app/"
pos: 12

configure_sudoers: false
sudoers_custom_config: ""
# Example:
# sudoers_custom_config: |
# # Allow users in admin group to use sudo with no password.
# %admin ALL=(ALL) NOPASSWD: ALL

dotfiles_repo: https://github.com/ianko/dotfiles.git
dotfiles_repo_accept_hostkey: true
dotfiles_repo_local_destination: ~/Workspace/personal/dotfiles
dotfiles_files:
- .curlrc
- .gitconfig
- .gitignore
- .macos
- .p10k.zsh
- .zshenv
- .zshrc

homebrew_installed_packages:
# - ansible # Installed via Pip.
- asdf
- autoconf
- bat
- cocoapods
- dockutil
- firebase-cli
- fvm
- git
- gpg
- github/gh/gh
- kubectl
- kubectx
- node
- nvm
- mas
- openjdk
- openssl
- podman
- ssh-copy-id
- terraform
- tldr
- tree
- vim
- wget

homebrew_taps:
- homebrew/core
- homebrew/cask
- homebrew/cask-fonts

homebrew_cask_appdir: /Applications
homebrew_cask_apps:
- android-studio
- balenaetcher
- brave-browser
- cakebrew
- docker
- font-fira-code
- font-meslo-lg-nerd-font
- fork
- handbrake
- insomnia
- iterm2
- little-snitch
- micro-snitch
- muzzle
- ngrok
- paw
- plex
- plexamp
- setapp
- signal
- spotify
- visual-studio-code
- zoom

# See `geerlingguy.mas` role documentation for usage instructions.
mas_installed_apps:
# Apple
- { id: 1037126344, name: "Apple Configurator 2" }

Check failure on line 141 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

141:6 [braces] too many spaces inside braces

Check failure on line 141 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

141:51 [braces] too many spaces inside braces
- { id: 409183694, name: "Keynote" }

Check failure on line 142 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

142:6 [braces] too many spaces inside braces

Check failure on line 142 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

142:37 [braces] too many spaces inside braces
- { id: 409203825, name: "Numbers" }

Check failure on line 143 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

143:6 [braces] too many spaces inside braces

Check failure on line 143 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

143:37 [braces] too many spaces inside braces
- { id: 409201541, name: "Pages" }

Check failure on line 144 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

144:6 [braces] too many spaces inside braces

Check failure on line 144 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

144:35 [braces] too many spaces inside braces
- { id: 1450874784, name: "Transporter" }

Check failure on line 145 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

145:6 [braces] too many spaces inside braces

Check failure on line 145 in config.yml

View workflow job for this annotation

GitHub Actions / Lint

145:42 [braces] too many spaces inside braces
- { id: 497799835, name: "Xcode" }

# Others
- { id: 1333542190, name: "1Password" }
- { id: 937984704, name: "Amphetamine" }
- { id: 1509135075, name: "He3" }
- { id: 905953485, name: "NordVPN" }
- { id: 803453959, name: "Slack" }
- { id: 1176895641, name: "Spark" }
- { id: 425424353, name: "The Unarchiver" }
- { id: 1147396723, name: "WhatsApp" }
mas_email: ""
mas_password: ""

osx_script: "~/Workspace/personal/dotfiles/.macos --no-restart"

# Install packages from other package managers.
# Note: You are responsible for making sure the required package managers are
# installed, eg. through homebrew.
gem_packages: []

npm_packages: []

pip_packages:
- name: setuptools
state: latest

asdf_plugins:
- name: erlang
versions: ["latest"]
global: "latest"
- name: elixir
versions: ["latest"]
global: "latest"

# Glob pattern to ansible task files to run after all other tasks are finished.
post_provision_tasks: []
32 changes: 8 additions & 24 deletions default.config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
downloads: ~/.ansible-downloads/

configure_dotfiles: true
configure_terminal: true
configure_iterm2: true
configure_osx: true

# Set to 'true' to configure the Dock via dockutil.
Expand All @@ -18,7 +18,7 @@ dockitems_persist: []
# pos: 5

configure_sudoers: false
sudoers_custom_config: ''
sudoers_custom_config: ""
# Example:
# sudoers_custom_config: |
# # Allow users in admin group to use sudo with no password.
Expand Down Expand Up @@ -88,10 +88,6 @@ osx_script: "~/.osx --no-restart"
# Install packages from other package managers.
# Note: You are responsible for making sure the required package managers are
# installed, eg. through homebrew.
composer_packages: []
# - name: drush
# state: present # present/absent, default: present
# version: "^8.1" # default: N/A
gem_packages: []
# - name: bundler
# state: present # present/absent/latest, default: present
Expand All @@ -104,24 +100,12 @@ pip_packages: []
# - name: mkdocs
# state: present # present/absent/latest, default: present
# version: "0.16.3" # default: N/A

# Set to 'true' to configure Sublime Text.
configure_sublime: false
sublime_base_path: '~/Library/Application Support/Sublime Text'
sublime_config_path: "Packages/User"
sublime_package_control:
- "DocBlockr"
- "Dockerfile Syntax Highlighting"
- "FileDiffs"
- "GitHub Flavored Markdown Preview"
- "Jinja2"
- "Package Control"
- "PHP-Twig"
- "Pretty JSON"
- "SublimeLinter"
- "SublimeLinter-contrib-yamllint"
- "TrailingSpaces"
- "WordCount"
asdf_plugins: []
# - name: "terraform" # a plugin name
# repository: "" # a plugin repository, optional
# versions: # a list of the package versions to install
# - "0.11.14"
# global: "0.11.14" # set as a global version, optional

# Glob pattern to ansible task files to run after all other tasks are finished.
post_provision_tasks: []
Binary file removed files/Mac-Dev-Playbook-Logo.png
Binary file not shown.
Loading
Loading