You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.6 KiB

9 years ago
# Dotfiles
9 years ago
This repo contains both my dotfiles as well as [Ansible][ansible] playbooks to
provision new machines.
6 years ago
**Use at your own risk.**
9 years ago
[ansible]: https://github.com/ansible/ansible
# Playbooks
- `bootstrap.yml`: SSH and Homebrew setup
- `main.yml`: Pretty much everything else
- `imac.yml`: For quieting down the broken HDD fan on my iMac
- `macbook_pro.yml`: Remap Caps Lock to Control on the laptop
# Usage
9 years ago
First, some steps need to be performed on the remote machine that I couldn't
figure out how to automate:
6 years ago
- [ ] Enable Remote Login in System Preferences -> Sharing.
- [ ] Install [Xcode][xcode]: `open 'https://itunes.apple.com/us/app/xcode/id497799835?mt=12'`
- [ ] Accept the Xcode license: `sudo xcodebuild -license`
- [ ] Open Xcode
- [ ] Install the command line developer tools: `xcode-select --install`. (It looks like the
Homebrew installer [_should_][xcode-select-cli] be able to handle this, but I haven't been able to
get it to work headless.)
6 years ago
[xcode]: https://itunes.apple.com/us/app/xcode/id497799835?mt=12
9 years ago
[xcode-select-cli]: https://github.com/Homebrew/install/blob/master/install#L207-L216
On the control machine:
```
brew install ansible
git clone --recursive git@github.com:kejadlen/dotfiles
cd dotfiles/ansible
echo HOST > hosts.private
ansible-playbook bootstrap.yml --ask-pass --ask-become-pass
ansible-playbook main.yml --ask-become-pass
```
9 years ago
A couple items that I haven't gotten around to automating yet that need to be
manually run post-provisioning:
``` shell
9 years ago
# Symlink ~/.dotfiles to Dropbox
rm -rf ~/.dotfiles
ln -s ~/Dropbox/dotfiles ~/.dotfiles
# Add private SSH keys
ruby ~/.dotfiles/scripts/setup_ssh_keys.rb
# Install apps from the Mac App Store
open 'https://itunes.apple.com/us/app/reeder-3/id880001334?ls=1&mt=12'
open 'https://itunes.apple.com/us/app/paprika-recipe-manager/id451907568?mt=12'
```
9 years ago
## Provisioning Locally
You can also use this to provision a machine by itself, although this won't
be able to copy over OS X application settings, for obvious reasons.
``` shell
# Install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install ansible
brew install ansible
# Clone dotfiles
git clone --recursive https://github.com/kejadlen/dotfiles.git ~/.dotfiles
# Run Ansible
9 years ago
cd ~/.dotfiles/ansible
echo "localhost ansible_connection=local" > hosts.private
9 years ago
ansible-playbook main.yml --ask-pass --ask-become-pass
```
# Development
9 years ago
Ansible tags are indispensible when tweaking the config:
```
- command: echo debug
tags: debug
```
``` shell
9 years ago
ansible-playbook main.yml --ask-become-pass --tags=debug
```
# TODO
See [issues](https://github.com/kejadlen/dotfiles/issues).