A new beginning for what used to be my [conf_dir](https://github.com/kejadlen/conf_dir) project, since `dotfiles` appears to be the conventional name of these types of repos nowadays. This uses [Ansible](https://github.com/ansible/ansible) to provision new machines. # Usage There are two ways to go about using this - either locally or remotely. The main difference is that OS X application settings are only copied over when running this on a remote machine. Either way, we start with installing Xcode: ``` shell xcode-select --install open 'https://itunes.apple.com/us/app/xcode/id497799835?mt=12' sudo xcodebuild -license ``` **After running Ansible**, the bootstrap `~/.dotfiles` directory can be removed and replaced with a symlink to the canonical repo location on Dropbox and SSH keys can be populated with the included script: ``` shell rm -rf ~/.dotfiles ln -s ~/Dropbox/dotfiles ~/.dotfiles ruby ~/.dotfiles/ansible/scripts/setup_ssh_keys.rb ``` ## Local ``` 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 cd ~/.dotfiles/ansible && ansible-playbook main.yml --ask-sudo-pass rm -f ~/*.retry ``` ## Remote On the remote machine, SSH access must first be enabled (under System Preferences -> Sharing) and the Xcode Command Line Tools need to be installed (`xcode-select --install`). ``` shell cd ~/.dotfiles/ansible && ansible-playbook main.yml --ask-pass --ask-sudo-pass ``` # Misc To update submodules: ``` shell git submodule foreach git pull ``` # Development Ansible tags are indispensible when tweaking the config. ``` - command: echo debug tags: debug ``` ``` shell ansible-playbook main.yml --ask-sudo-pass --tags debug ``` # Vagrant ``` shell vagrant up ansible vagrant -m ping ``` # TODO See [issues](https://github.com/kejadlen/dotfiles/issues).