Replace software-install scripts with Ansible playbook and role.

This commit is contained in:
Scott Wallace 2017-10-12 22:28:35 +01:00
parent e4806a8ea8
commit ac373d3479
10 changed files with 107 additions and 144 deletions

View file

@ -1,41 +0,0 @@
tap "caskroom/versions"
tap "buo/homebrew-cask-upgrade"
brew "ack"
brew "bash-completion"
brew "git"
brew "coreutils"
brew "htop-osx"
brew "ipcalc"
brew "mosh"
brew "nmap"
brew "p7zip"
brew "psgrep"
brew "pv"
brew "python3"
brew "rename"
brew "task"
brew "tree"
brew "vim"
cask "alfred"
cask "bbc-iplayer-downloads"
cask "beardedspice"
cask "cleanmymac"
cask "enpass"
cask "firefox"
cask "google-backup-and-sync"
cask "google-chrome"
cask "google-hangouts"
cask "handbrake"
cask "iterm2"
cask "itsycal"
cask "osxfuse"
cask "resilio-sync"
cask "sonos"
cask "sublime-text"
cask "virtualbox"
cask "wireshark"
cask "xquartz"
cask "yubikey-manager"
cask "yubikey-personalization-gui"

2
.ansible.cfg Normal file
View file

@ -0,0 +1,2 @@
[defaults]
inventory = ~/.ansible/inventory.yaml

4
.ansible/inventory.yaml Normal file
View file

@ -0,0 +1,4 @@
mac_desktops:
hosts:
localhost:
ansible_connection: local

View file

@ -0,0 +1,39 @@
# Install Homebrew
- name: Check for Homebrew
stat:
path: /usr/local/bin/brew
register: st
- name: Install Homebrew
command: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
when: st.stat.executable != True
- name: Disable Homebrew analytics
command: brew analytics off
# Taps
- name: Install Homebrew Taps
homebrew_tap:
name: "{{ item }}"
state: present
with_items: "{{ homebrew_tap_items }}"
# Update and upgrades
- name: Homebrew update and upgrades
homebrew:
update_homebrew: True
upgrade_all: True
# Brews
- name: Install Homebrew Brews
homebrew:
name: "{{ item }}"
state: present
with_items: "{{ homebrew_brew_items }}"
# Casks
- name: Install Homebrew Casks
homebrew_cask:
name: "{{ item }}"
state: present
with_items: "{{ homebrew_cask_items }}"

View file

@ -0,0 +1,4 @@
- name: Homebrew tasks
import_tasks: homebrew.yaml
- import_tasks: mas.yaml
- import_tasks: prefs.yaml

View file

@ -0,0 +1,2 @@
- name: Upgrade AppStore apps
command: mas upgrade

View file

@ -0,0 +1,2 @@
- name: Clear preferences cache
command: pkill -u ${USER} cfprefsd

View file

@ -0,0 +1,50 @@
homebrew_tap_items:
- caskroom/versions
- buo/homebrew-cask-upgrade
homebrew_brew_items:
- ack
- bash-completion
- curl
- git
- coreutils
- htop-osx
- ipcalc
- mas
- mosh
- nmap
- p7zip
- psgrep
- pv
- python3
- rename
- screen
- task
- tree
- vim
- watch
homebrew_cask_items:
- alfred
- bbc-iplayer-downloads
- beardedspice
- cleanmymac
- enpass
- firefox
- flux
- google-backup-and-sync
- google-chrome
- google-hangouts
- handbrake
- iterm2
- itsycal
- osxfuse
- resilio-sync
- sonos
- sublime-text
- virtualbox
- whatsapp
- wireshark
- xquartz
- yubikey-manager
- yubikey-personalization-gui

4
.ansible/site.yaml Normal file
View file

@ -0,0 +1,4 @@
- name: Mac desktops
hosts: mac_desktops
roles:
- mac_desktop

View file

@ -1,103 +0,0 @@
#!/bin/bash
function configure_Linux_software {
echo "Not configured yet."
}
function configure_Darwin_software {
# Ensure any preference cache is cleared
pkill -u ${USER} cfprefsd
}
function install_Linux_software {
#-------------------------------
# Check the OS and set install command
#-------------------------------
if [ -x "$(which yum)" ]; then
INSTALLCMD="yum install -y"
elif [ -x "$(which apt-get)" ]; then
INSTALLCMD="apt-get install -y"
else
echo "Sorry, I don't know how to install software on this OS yet."
exit 1
fi
#-------------------------------
xargs -n1 sudo ${INSTALLCMD} <<-EOF
ack
archey
bash-completion
git
htop
mosh
nmap
p7zip
psgrep
pv
ss
vim
EOF
}
function install_Darwin_software {
#-------------------------------
# Install Homebrew if missing
#-------------------------------
if [ ! -x /usr/local/bin/brew ]; then
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap buo/cask-upgrade
fi
#-------------------------------
# Disable Homebrew's Google Analytics tracking
brew analytics off
# Update Brew formulae if older than 24 hours
find /usr/local/Homebrew/.git -name FETCH_HEAD -mtime +0 -exec brew update \;
# Install homebrew/bundle tap if we don't have it
[ -d /usr/local/Library/Taps/homebrew/homebrew-bundle ] || brew tap homebrew/bundle
#-------------------------------
# Run brew bundle if there's a newer version of Brewfile
#-------------------------------
if [ ~/.Brewfile -nt ~/.Brewfile.updated ]; then
( brew bundle --global install && touch ~/.Brewfile.updated )
fi
#-------------------------------
#-------------------------------
# Upgrade and clean Brew
#-------------------------------
brew upgrade
brew cleanup
brew bundle --global check
brew cask cleanup
brew cu -y --cleanup
#-------------------------------
#-------------------------------
# OS X software update
#-------------------------------
softwareupdate -ia --verbose
#-------------------------------
}
function install_python_modules {
pip install pyopenssl
}
echo "#-------------------------------"
echo "# START: $(date)"
echo "#-------------------------------"
# Call the install function appropriate for this platform
install_$(uname -s)_software
configure_$(uname -s)_software
install_python_modules
echo "#-------------------------------"
echo "# END: $(date)"
echo "#-------------------------------"
exit 0