Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joshgachnang/ansible-dotfiles
An Ansible role initially intended to manage my dotfiles that has since grown to include package/app management on OSX and Debian/Ubuntu.
https://github.com/joshgachnang/ansible-dotfiles
Last synced: 25 days ago
JSON representation
An Ansible role initially intended to manage my dotfiles that has since grown to include package/app management on OSX and Debian/Ubuntu.
- Host: GitHub
- URL: https://github.com/joshgachnang/ansible-dotfiles
- Owner: joshgachnang
- License: mit
- Created: 2015-05-06T05:44:57.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-05-08T20:17:35.000Z (over 9 years ago)
- Last Synced: 2023-03-11T08:12:45.679Z (over 1 year ago)
- Size: 137 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Dotfiles
=========A role to manage your dotfiles and install requirements for OSX and Debian/Ubuntu.
I use this to manage my various developer environments. I use OSX on my laptops, and Debian
or Ubuntu on my cloud servers and Vagrant VMs. This role ensures I have a consistent working
environment. It revolves around symlinking your dotfiles to ensure your dotfiles repo stays
up to date. It started as a simple Python script and evolved to an Ansible role after I had
to rebuild my Devstack VMs from scratch repeatedly.The role was originally designed to be run locally, because of all the symlinking and it was part
of my dotfiles repo. I plan to fix that so I can more easily remotely bootstrap VMs/dev boxes.To install:
sudo ansible-galaxy install ServerCobra.dotfiles
To run, create a YAML file called dotfiles.yml and modify the example playbook
below. Then, to run the playbook on your local machine:ansible-playbook --ask-sudo-pass -v -i "localhost," -c local -v dotfiles.yml
Role Variables
--------------
# The base directory containing files to be symlinked. This is probably your
# dotfiles repo.
dotfiles_src_dir: ~/src/dotfiles/files
# Directories to create before symlinking
dotfiles_create_dirs:
- ~/.ssh/# List of files to be symlinked, using dotfiles_src_dir as the base
dotfiles_link_files:
- { src: 'bashrc', dest: '~/.bashrc' }
# Files to template instead of symlink (only pip.conf is included right now)
dotfiles_template_files:
- { src: 'pip.conf', dest: '~/.pip/pip.conf' }
# Apt repos to add before install Apt packages on Debian/Ubuntu
dotfiles_apt_ppas:
- docker-maint/testing
# Apt packages to install on Debian/Ubuntu systems
dotfiles_debian_packages:
- python-pip
# Homebrew repos to tap before running homebrew installs on OSX
dotfiles_homebrew_taps:
- homebrew/dupes
# Homebrew packages to install on OSX
dotfiles_homebrew_packages:
- the_silver_searcher
# Homebrew packages to install on OSX with custom options
dotfiles_homebrew_packages_with_options:
- { package: 'vim', options: 'override-system-vi' }
# Homebrew packages to install with cask
dotfiles_cask_packages:
- iterm2
# Global Python packages to install on OSX and Debian/Ubuntu
dotfiles_global_python_packages:
# These 4 are picky about being installed in order..
- ipythonExample Playbook
----------------Here's my actual playbook
- hosts: dev_vm
roles:
- role: ServerCobra.dotfiles
dotfiles_src_dir: ~/src/dotfiles/files
dotfiles_create_dirs:
- ~/.ssh/
- ~/.ipython/profile_default/
- ~/Library/Preferences/
- ~/.pip/
dotfiles_link_files:
- { src: 'bashrc', dest: '~/.bashrc' }
- { src: 'bash_aliases', dest: '~/.bash_aliases' }
- { src: 'bash_exports', dest: '~/.bash_exports' }
- { src: 'bash_profile', dest: '~/.bash_profile' }
- { src: 'bash_prompt', dest: '~/.bash_prompt' }
- { src: 'git_complete.sh', dest: '~/.git_complete.sh' }
- { src: 'django_complete.sh', dest: '~/.django_complete.sh' }
- { src: 'ironic_complete.sh', dest: '~/.ironic_complete.sh' }
- { src: 'gitconfig', dest: '~/.gitconfig' }
- { src: 'gitignore', dest: '~/.gitignore' }
- { src: 'supernova', dest: '~/.supernova' }
- { src: 'agignore', dest: '~/.agignore' }
- { src: 'functions', dest: '~/.functions' }
- { src: 'path', dest: '~/.path' }
- { src: 'nanorc', dest: '~/.nanorc ' }
- { src: 'ipython_config.py', dest: '~/.ipython/profile_default/ipython_config.py' }
- { src: 'ssh/config', dest: '~/.ssh/config' }
- { src: 'ssh/known_hosts', dest: '~/.ssh/known_hosts' }
- { src: 'PyCharm40', dest: '~/Library/Preferences/PyCharm40' }
- { src: 'weechat', dest: '~/.weechat' }
dotfiles_template_files:
- { src: 'pip.conf', dest: '~/.pip/pip.conf' }
dotfiles_debian_packages:
- python-pip
- python-tox
- python3.3
- python3.3-dev
- python-dev
- libssl-dev
- python-pip
- libmysqlclient-dev
- libxml2-dev
- libxslt-dev
- libpq-dev
- git
- git-review
- libffi-dev
- vim
- docker.io
- silversearcher-ag
- gettext
- memcached
- syslinux
- s3cmd
- python-gdbm
- tmux
- weechat
dotfiles_homebrew_taps:
- homebrew/dupes
- homebrew/completions
dotfiles_homebrew_packages:
- python
- aspell
- ssh-copy-id
- the_silver_searcher
- tmux
- pianobar
- nano
- mysql- openssl
- vagrant-completion
- android-sdk
- coreutils
- moreutils
# Install GNU `find`, `locate`, `updatedb`, and `xargs`, `g`-prefixed.
- findutils
# Install Bash 4.
# Note: don’t forget to add `/usr/local/bin/bash` to `/etc/shells` before
# running `chsh`.
- bash
- bash-completion
- binutils
- binwalk
- fcrackzip
- nmap
- pngcheck
- socat
- sqlmap
- tcpflow
- tcpreplay
- tcptrace
- xz
# Install other useful binaries.
- ack
- git
- lua
- lynx
- p7zip
- pigz
- pv
- rename
- speedtest_cli
- tree
- webkit2png
- imagemagick
- gnu-sed
- wget
- grep
- screen
- fleetctl
# Install Node.js. Note: this installs `npm` too, using the recommended
# installation method.
- node
- postgresql
- colordiff
dotfiles_cask_packages:
- battery-guardian
- github
- google-chrome
- iterm2
- rescuetime
- steam
- vagrant
- vagrant-manager
- virtualbox
- vmware-fusion
- dropbox
- boot2docker
- chromecast
- firefox
- utorrent
- vlc
- skype
dotfiles_homebrew_packages_with_options:
- { package: 'vim', options: 'override-system-vi' }
dotfiles_global_python_packages:
- rackspace-auth-openstack
- keyring
- rackspace-novaclient
- supernova
- pyrax
- python-gflags
- python-glanceclient
- python-ironicclient
- python-keystoneclient
- python-neutronclient
- python-swiftclient
- requests
- stevedore
- awscli
- ipython
- plypatch
dotfiles_apt_ppas:
- fkrull/deadsnakes
- nesthib/weechat
- docker-maint/testingLicense
-------MIT