├── .gitattributes ├── .github-hetzner.token.enc ├── .gitignore ├── README.md ├── dotfiles.yml ├── dotfiles └── sheldonh │ ├── config │ └── MusicBrainz │ │ └── Picard.conf │ ├── gitconfig.enc │ └── gitignore ├── dropbox.yml ├── emacs.yml ├── euca2ools.yml ├── eucarc-aerosmith_sheldonh_admin.yml ├── eucarc-aerosmith_shuddup_admin.yml ├── eucarc ├── aerosmith_sheldonh_admin-x509.zip.enc └── aerosmith_shuddup_admin-x509.zip.enc ├── fedorautils.yml ├── filter_plugins └── regexp_replace.py ├── gitconfig-gitencrypt ├── gitencrypt.tar.asc ├── github.oauth-token.enc ├── github.password.enc ├── google-chrome.repo ├── google-chrome.yml ├── google-talkplugin.repo ├── hetzner.yml ├── hetzner_api.yml ├── hetzner_github.yml ├── hosts ├── kickoff.yml ├── konsole.yml ├── konsole ├── Railscasts.colorscheme └── Railscasts.profile ├── konversation.password.enc ├── konversation.yml ├── krb5.conf.enc ├── library ├── elpa └── kconfig ├── packages.yml ├── redis.yml ├── rvm.yml ├── setup.yml ├── ssh-add.sh └── vim.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | *.enc filter=openssl diff=openssl 2 | -------------------------------------------------------------------------------- /.github-hetzner.token.enc: -------------------------------------------------------------------------------- 1 | U2FsdGVkX1++s5oIMhNo7nIrKt4IBmn73QVRcdC55xln6CB/iazqrSulYFfwX9bG 2 | GN9QHqdl03G6AqzEfrLqSA== 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .*.sw* 2 | *~ 3 | *.pyc 4 | sheldonh-gpg.tar 5 | sheldonh-ssh.tar.enc 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dotfiles via Ansible 2 | 3 | I used to use Puppet for this. I had a good excuse to start fresh recently, and am migrating to Ansible. 4 | 5 | ## Getting started 6 | 7 | * Log into LastPass to get Dropbox password. 8 | * Log into Dropbox and download sheldonh-gpg.tar and sheldonh-ssh.tar.enc. 9 | * Place sheldonh-gpg.tar and sheldonh-ssh.tar.enc in this directory. 10 | * Then do this: 11 | 12 | ``` 13 | sudo yum remove PackageKit -y && sudo yum install git ansible -y 14 | ansible-playbook -i hosts setup.yml 15 | ssh-agent bash 16 | ssh-add ~/.ssh/id_rsa 17 | sudo ansible-playbook -i hosts google-chrome.yml 18 | ``` 19 | 20 | Once Google Chrome is installed, I log it into my Google account 21 | and it installs LastPass, and then we're off to the races. 22 | 23 | ## Additional playbooks 24 | 25 | Miscellaneous playbooks, messily organized for now: 26 | 27 | ``` 28 | sudo ansible-playbook -i hosts hetzner.yml 29 | sudo ansible-playbook -i hosts konsole.yml 30 | sudo ansible-playbook -i hosts vim.yml 31 | ``` 32 | 33 | This one pops up a graphical configuration wizard. This demonstrates the need to run at least part of the 34 | initial desktop setup playbook from within the graphical environment (since I can't figure out how to 35 | configure Dropbox programmatically: 36 | 37 | ``` 38 | sudo ansible-playbook -i hosts dropbox.yml 39 | ``` 40 | 41 | This one takes ages: 42 | 43 | ``` 44 | sudo ansible-playbook -i hosts rvm.yml 45 | ``` 46 | 47 | This one doesn't check for change: 48 | 49 | ``` 50 | sudo ansible-playbook -i hosts konversation.yml 51 | ``` 52 | 53 | Configuring konversation is interesting. KDE and Ansible don't agree about with an ini file looks like, 54 | and it's a pain in the butt to write a playbook that checks with kreadconfig before changing with kwriteconfig. 55 | 56 | This is also interesting. When you want to restart the KDE kickoff to pick up your config changes, sudo 57 | removes environment variables that qdbus needs to interact with KDE. So you have to mess with sudo config 58 | or run the playbook as the target user. This irregularity has convinced me that my initial desktop 59 | configuration playbook should just end up saying "okay, log out and log back in please". 60 | 61 | ``` 62 | # Note: no sudo 63 | ansible-playbook -i hosts kickoff.yml 64 | ``` 65 | 66 | I'm not sure generalized "dotfiles" and "packages" playbooks are a good idea, but here they are: 67 | 68 | ``` 69 | sudo ansible-playbook -i hosts dotfiles.yml 70 | sudo ansible-playbook -i hosts packages.yml 71 | sudo ansible-playbook -i hosts emacs.yml 72 | sudo ansible-playbook -i hosts fedorautils.yml 73 | ``` 74 | -------------------------------------------------------------------------------- /dotfiles.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | tasks: 7 | - 8 | name: Enumerate dotfile directories 9 | shell: cd dotfiles/{{user}} && find * -type d 10 | register: dotdirs 11 | - 12 | name: Create dotfile directories 13 | file: path="{{home}}/.{{item}}" mode=0700 state=directory recurse=true 14 | with_items: dotdirs.stdout_lines 15 | - 16 | name: Enumerate dotfiles 17 | shell: cd dotfiles/{{user}} && find * -type f 18 | register: dotfiles 19 | - 20 | name: Install dotfiles 21 | template: dest="{{home}}/.{{item|mandatory|regexp_replace('.enc$', '')}}" src="dotfiles/{{user}}/{{item}}" mode=0600 22 | with_items: dotfiles.stdout_lines 23 | -------------------------------------------------------------------------------- /dotfiles/sheldonh/config/MusicBrainz/Picard.conf: -------------------------------------------------------------------------------- 1 | [setting] 2 | caa_image_types=front 3 | cd_lookup_device= 4 | save_images_to_tags=true 5 | save_only_front_images_to_tags=false 6 | save_images_to_files=false 7 | cover_image_filename=cover 8 | ca_provider_use_amazon=false 9 | ca_provider_use_cdbaby=false 10 | ca_provider_use_caa=false 11 | ca_provider_use_whitelist=false 12 | caa_image_size=2 13 | caa_approved_only=false 14 | caa_image_type_as_filename=false 15 | save_images_overwrite=false 16 | server_host=musicbrainz.org 17 | server_port=80 18 | username= 19 | password= 20 | analyze_new_files=false 21 | ignore_file_mbids=false 22 | toolbar_show_labels=true 23 | toolbar_multiselect=false 24 | use_adv_search_syntax=false 25 | quit_confirmation=true 26 | max_tags=5 27 | min_tag_usage=90 28 | join_tags= 29 | ignore_tags="seen live,favorites,fixme,owned" 30 | only_my_tags=false 31 | enable_ratings=false 32 | rating_user_email=users@musicbrainz.org 33 | submit_ratings=true 34 | file_lookup_threshold=0.7 35 | cluster_lookup_threshold=0.8 36 | track_matching_threshold=0.4 37 | translate_artist_names=false 38 | artist_locale=en 39 | convert_punctuation=true 40 | release_ars=true 41 | track_ars=false 42 | folksonomy_tags=false 43 | va_name=Various Artists 44 | standardize_artists=false 45 | release_type_scores=Album 0.50 Spokenword 0.50 Remix 0.50 Compilation 0.50 Audiobook 0.50 Single 0.50 Soundtrack 0.50 Live 0.50 Other 0.50 Interview 0.50 EP 0.50 46 | preferred_release_countries= 47 | preferred_release_formats= 48 | enable_tagger_script=false 49 | tagger_script= 50 | windows_compatible_filenames=true 51 | ascii_filenames=false 52 | rename_files=true 53 | file_naming_format="$if2(%albumartist%,%artist%)/%album%/$if($gt(%totaldiscs%,1),%discnumber%-,)$num(%tracknumber%,2)$if(%compilation%, %artist% -,) %title%" 54 | move_files=true 55 | move_files_to=/home/sheldonh/Music 56 | move_additional_files=false 57 | move_additional_files_pattern=*.jpg *.png 58 | delete_empty_dirs=true 59 | enabled_plugins= 60 | use_proxy=false 61 | proxy_server_host= 62 | proxy_server_port=80 63 | proxy_username= 64 | proxy_password= 65 | dont_write_tags=false 66 | preserve_timestamps=false 67 | write_id3v1=true 68 | write_id3v23=true 69 | id3v2_encoding=utf-16 70 | remove_ape_from_mp3=false 71 | remove_id3_from_flac=false 72 | preserved_tags= 73 | fingerprinting_system=acoustid 74 | acoustid_fpcalc= 75 | acoustid_apikey= 76 | 77 | [persist] 78 | options_position=@Point(799 338) 79 | options_size=@Size(827 587) 80 | options_splitter=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0\x9a\0\0\x2\x8c\x1\0\0\0\x3\x1\0\0\0\x1) 81 | window_state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x3\f\0\0\x1\xdb\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x2\0\0\0\x18\0m\0\x61\0i\0n\0_\0t\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x1c\0s\0\x65\0\x61\0r\0\x63\0h\0_\0t\0o\0o\0l\0\x62\0\x61\0r\x1\0\0\x2m\xff\xff\xff\xff\0\0\0\0\0\0\0\0) 82 | window_position=@Point(-2 0) 83 | window_size=@Size(780 560) 84 | window_maximized=false 85 | view_cover_art=false 86 | view_file_browser=false 87 | bottom_splitter_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\x1n\0\0\0\xc2\x1\0\0\0\x1\x1\0\0\0\x2) 88 | splitter_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x3\xff\xff\xff\xff\0\0\x1\0\0\0\x1\0\x1\0\0\0\x3\x1\0\0\0\x1) 89 | file_view_sizes=250 40 90 | album_view_sizes=250 40 91 | metadata_box_sizes=150 300 313 92 | -------------------------------------------------------------------------------- /dotfiles/sheldonh/gitconfig.enc: -------------------------------------------------------------------------------- 1 | U2FsdGVkX1++s5oIMhNo7liymX8EJXlyLfnxIzpVuSvWGp9XzNVAqVgxzPmtwNOL 2 | 6I86PTO+g7DMfYHsFRbAW+4W5NQCUfizeGBRqmi3qVEbzNzcUnM6sr1F+OWcMFSC 3 | qptb/rxfGjLzqPqhlxMpu9ZODnrhi2Y1FkRDDZ/2AM1bjCgSTk2wPlxO7spnoNzy 4 | JWSNOw5uoDUU5v8VAHgl0+5cR1AYMq6Ylgz+Lb99Vv/gYyTcT+lDu6bflpV2rCSB 5 | tC44h6kCycfx55o5sXzCl/MSBRjzsPTyXNm2ZyitsJoMeqXVcuJ5KYRWVw3WlzyJ 6 | nSvJW9ht2VS94l/C6VLLUvpWImWYedmjqs+EdoMPrmbvt6+R10K2G9H7bpUuidtf 7 | 84vYNmUDmS3FCZrwhiLGlK9SeWI2TYZjQzXdrq9mQvtNchdVCDhh1UsECLcLWRPF 8 | 3IDGGfojfctYnYTZ8VipeHmzmzN4iasrydpcRneaeaz2xW+8d0YOLIltMnKRSToL 9 | -------------------------------------------------------------------------------- /dotfiles/sheldonh/gitignore: -------------------------------------------------------------------------------- 1 | \#*# 2 | *~ 3 | .*.sw* 4 | *.log 5 | -------------------------------------------------------------------------------- /dropbox.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - 3 | hosts: local 4 | connection: local 5 | tasks: 6 | - 7 | name: Install Dropbox control script 8 | get_url: dest=/usr/local/bin/dropbox.py url=https://www.dropbox.com/download?dl=packages/dropbox.py mode=0755 9 | - 10 | hosts: local 11 | connection: local 12 | sudo: yes 13 | sudo_user: "{{user}}" 14 | tasks: 15 | - 16 | name: Install Dropbox 17 | shell: curl -L "https://www.dropbox.com/download?plat=lnx.{{ansible_architecture}}" | tar -C $HOME -xzf - creates={{home}}/.dropbox-dist/dropboxd 18 | - 19 | name: Configure KDE to autostart dropboxd 20 | file: path={{home}}/.kde/Autostart/dropboxd src={{home}}/.dropbox-dist/dropboxd state=link 21 | - 22 | name: Check dropboxd status 23 | command: /usr/local/bin/dropbox.py status 24 | register: status 25 | - 26 | name: Start dropboxd 27 | shell: /usr/local/bin/dropbox.py start >/dev/null 2>&1 28 | when: status.stdout == "Dropbox isn't running!" 29 | -------------------------------------------------------------------------------- /emacs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | tasks: 7 | - name: Install emacs 8 | yum: name={{item}} state=present 9 | with_items: 10 | - emacs 11 | - emacs-color-theme-el 12 | - emacs-goodies 13 | - name: Configure emacs 14 | git: dest={{home}}/.emacs.d repo=git@github.com:{{user}}/dotemacs.git update=no 15 | notify: Install emacs packages 16 | handlers: 17 | - name: Install emacs packages 18 | shell: emacs --user {{user}} --batch --eval t 19 | -------------------------------------------------------------------------------- /euca2ools.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | vars: 5 | version: 3.0.2 6 | tarball: euca2ools-{{version}}.tar.gz 7 | tasks: 8 | - yum: pkg={{item}} state=present 9 | with_items: 10 | - libxml2-devel 11 | - libxslt-devel 12 | - python-devel 13 | - python-pip 14 | - pip: name={{item}} 15 | with_items: 16 | - lxml 17 | - requestbuilder 18 | - requests 19 | - setuptools 20 | - six 21 | - get_url: dest=/usr/src/{{tarball}} url=http://downloads.eucalyptus.com/software/euca2ools/3.0/source/{{tarball}} 22 | - command: tar -C /usr/src -xzf /usr/src/{{tarball}} creates=/usr/src/euca2tools-{{version}} 23 | - command: python setup.py install chdir=/usr/src/euca2ools-{{version}} creates=/usr/bin/euca-describe-images -------------------------------------------------------------------------------- /eucarc-aerosmith_sheldonh_admin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | tasks: 7 | - file: path={{home}}/.euca state=directory mode=0700 8 | - command: unzip eucarc/aerosmith_sheldonh_admin-x509.zip.enc -d {{home}}/.euca creates={{home}}/.euca/eucarc 9 | - command: grep -q 172.16.0.1 {{home}}/.euca/eucarc 10 | ignore_errors: yes 11 | register: grep 12 | - command: sed -i -e 's/172.16.0.1/197.189.194.66/g' {{home}}/.euca/eucarc 13 | when: grep|success 14 | 15 | -------------------------------------------------------------------------------- /eucarc-aerosmith_shuddup_admin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | vars: 7 | account: shuddup 8 | tasks: 9 | - file: path={{home}}/.euca-{{account}} state=directory mode=0700 10 | - command: unzip eucarc/aerosmith_{{account}}_admin-x509.zip.enc -d {{home}}/.euca-{{account}} creates={{home}}/.euca-{{account}}/eucarc 11 | - command: grep -q 172.16.0.1 {{home}}/.euca-{{account}}/eucarc 12 | ignore_errors: yes 13 | register: grep 14 | - command: sed -i -e 's/172.16.0.1/197.189.194.66/g' {{home}}/.euca-{{account}}/eucarc 15 | when: grep|success 16 | -------------------------------------------------------------------------------- /eucarc/aerosmith_sheldonh_admin-x509.zip.enc: -------------------------------------------------------------------------------- 1 | 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 111 | -------------------------------------------------------------------------------- /eucarc/aerosmith_shuddup_admin-x509.zip.enc: -------------------------------------------------------------------------------- 1 | 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 111 | -------------------------------------------------------------------------------- /fedorautils.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | tasks: 5 | - get_url: dest=/usr/local/bin/fedorautils-installer url=http://satya164.github.io/fedorautils/fedorautils-installer mode=0755 6 | - command: /usr/local/bin/fedorautils-installer creates=/usr/bin/fedorautils 7 | - command: fedorautils --exec disk_io_scheduler 8 | -------------------------------------------------------------------------------- /filter_plugins/regexp_replace.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | def regexp_replace(s, f, r): 4 | ''' filter for string substitution by regular expression ''' 5 | return re.sub(f, r, s) 6 | 7 | class FilterModule(object): 8 | 9 | def filters(self): 10 | return { 11 | 'regexp_replace' : regexp_replace 12 | } 13 | -------------------------------------------------------------------------------- /gitconfig-gitencrypt: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = true 4 | bare = false 5 | logallrefupdates = true 6 | [remote "origin"] 7 | url = git@github.com:sheldonh/dotfiles-ansible.git 8 | fetch = +refs/heads/*:refs/remotes/origin/* 9 | [branch "master"] 10 | remote = origin 11 | merge = refs/heads/master 12 | [filter "openssl"] 13 | smudge = ~/.gitencrypt/smudge_filter_openssl 14 | clean = ~/.gitencrypt/clean_filter_openssl 15 | [diff "openssl"] 16 | textconv = ~/.gitencrypt/diff_filter_openssl 17 | [merge] 18 | renormalize = true 19 | -------------------------------------------------------------------------------- /gitencrypt.tar.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP MESSAGE----- 2 | Version: GnuPG v1.4.11 (GNU/Linux) 3 | 4 | hQGOA04pMRrEL4rIEAX/b6Mb4AbzK4XIQr3GRcX+Wgbix+mCqO34tjaz7Cz1hByT 5 | nnYQSLDtBCpEml8cGcOtkeDJIJicjdMp1b9OBk0z5g1AW6D/B4FSEcKN3ODe7mAF 6 | 1KMkPVyKR7C9kR+QIibPiCIxpsgafypRGYsQe9JxKe8+s+b5fXpHydx7Frjhcc3M 7 | 3o89mi3zoAXhKY7FcIHSDAGuB2xnOxVm7DhwozTgUtVp2vm0VmlI7/ChD/Xfe0zz 8 | DiFDOBkQDLuuDNE2MoDQBf90pYNAahqBhXAZ408IMAOV9i2w2CDeeXRy3eXLKERS 9 | 01w7UU+VXRQgyDzYI4QC7vryhYUlpKqo66XwPX6sxGe+FXbv1tezufszh3VJ3QC6 10 | vPkL4k5eEzDIEabZTT1r5yz9/sl0m94vjyFZwPULggAH14niAHGWTsQ1q0CBRbJx 11 | 6j7f1tR3T4pfQPlNqoUBv8xCUU3duEzhDCsuUr8H2XHakOJISvpNQrI3oAwbtWd+ 12 | SyfdMLM8KGKWKu/vwXZjj8TS6QGe1rEAiZlYbvFIcaFl9CW+PAPygdNtenHcfCur 13 | cCJW+NW/jNBO/zN4A4YAYz+WK4nNjQgnvq7nAjD16Kut0KW/TINYcv83NKqxsLUS 14 | uAC2aiT6lnHSjVHnTdcCnRz7dAJnBICyarCRU6jqCaGaK0iR7kSdCR7zeY92dj3w 15 | oKy9gwfgyF0KRSLdAkEKw8aMTkYB9c/hgaGO+WQTq9WXV1Y6+WPLgbVzvq9s55AF 16 | qIbh1FRmxpQsuTZxF/9e6e9bIUgDpBOJ7+RXY9Z8/aSWKUsppMUd4z1FlOKVo158 17 | xjDC/dzX4gVuEN9JCF4Cztkaot7f1jyofVhE89P0xGxgsxWtxKdmvGk2woe3zOT8 18 | 4g/mc7FxU+dqPl2tNdb28J1W8N1N8w8/yphfoobEHonNbTExxAYb7nlK5TxF6awC 19 | P4/UO8QAVr+Vzd0Lw5IsHeH/hAhIbNxX80e0xf5i9su+KmQtGSdK1GqKrIg1eugJ 20 | O/IXNhYksuP/L7qsluPS6T8WsLJcGH+4b5yU8+ih7hamg3ystsBU8x+Go4TmyD27 21 | wus1oLb06eo+BpN9BhSk5tzVQTFlVXSIujp2kO+zvQE6pO8SEIhidsaDL0n09VFZ 22 | sa6fvDAbeXx5bVXJZB/Bs1DeFAsvWncQLK/Y1wl+oxw7uBY/cmzAhehRKECjIlkU 23 | bK9UPzXjhOu1da93xb/oMQjORUyK9kbbRbVttkzlRzLyfgSswVqD18megIWFwcwI 24 | g6q3N47pGwd/EeirwnFvkVVKbQ== 25 | =uBR9 26 | -----END PGP MESSAGE----- 27 | -------------------------------------------------------------------------------- /github.oauth-token.enc: -------------------------------------------------------------------------------- 1 | U2FsdGVkX1++s5oIMhNo7gChln8z7LJRZXisohy65BaAL7xBd0DgDKJFhxVxqljp 2 | EwVOc3s5ICiu0J6kcCBHSg== 3 | -------------------------------------------------------------------------------- /github.password.enc: -------------------------------------------------------------------------------- 1 | U2FsdGVkX1++s5oIMhNo7gWbmUA9j24DcWUY5sF5AUI= 2 | -------------------------------------------------------------------------------- /google-chrome.repo: -------------------------------------------------------------------------------- 1 | [google-chrome] 2 | name=google-chrome - 64-bit 3 | baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 4 | enabled=1 5 | gpgcheck=1 6 | gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub 7 | -------------------------------------------------------------------------------- /google-chrome.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - 3 | hosts: local 4 | connection: local 5 | tasks: 6 | - 7 | name: Enable Yum repo for Google Chrome 8 | copy: dest=/etc/yum.repos.d/google-chrome.repo src=google-chrome.repo 9 | - 10 | name: Install Google Chrome 11 | yum: name=google-chrome-stable state=present 12 | - 13 | name: Enable Yum repo for Google Talk 14 | copy: dest=/etc/yum.repos.d/google-talkplugin.repo src=google-talkplugin.repo 15 | - 16 | name: Install Google Talk Plugin 17 | yum: name=google-talkplugin state=present 18 | -------------------------------------------------------------------------------- /google-talkplugin.repo: -------------------------------------------------------------------------------- 1 | [google-talkplugin] 2 | name=google-talkplugin 3 | baseurl=http://dl.google.com/linux/talkplugin/rpm/stable/x86_64 4 | enabled=1 5 | gpgcheck=1 6 | -------------------------------------------------------------------------------- /hetzner.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | tasks: 5 | - name: Install kerberos client 6 | yum: name=krb5-workstation state=present 7 | - name: Configure kerberos 8 | copy: dest=/etc/krb5.conf src=krb5.conf.enc 9 | -------------------------------------------------------------------------------- /hetzner_api.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | tasks: 5 | - 6 | yum: name={{item}} state=present 7 | with_items: 8 | - mariadb-server 9 | - libxml2-devel 10 | - libxslt-devel 11 | - mariadb-devel 12 | - postgresql-devel 13 | -------------------------------------------------------------------------------- /hetzner_github.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | tasks: 7 | - name: Install Hetzner Github API token 8 | copy: dest={{home}}/.github-hetzner.token src=.github-hetzner.token.enc owner={{user}} mode=0600 9 | -------------------------------------------------------------------------------- /hosts: -------------------------------------------------------------------------------- 1 | [local] 2 | localhost 3 | 4 | [local:vars] 5 | user=sheldonh 6 | home=/home/{{user}} 7 | -------------------------------------------------------------------------------- /kickoff.yml: -------------------------------------------------------------------------------- 1 | - name: configure KDE kickoff 2 | hosts: local 3 | connection: local 4 | sudo: no 5 | tasks: 6 | - 7 | kconfig: file=kickoffrc group=Favorites key=FavoriteURLs value=/usr/local/share/applications/google-chrome.desktop,/usr/share/applications/kde4/konsole.desktop,/usr/share/applications/emacs.desktop,/usr/share/applications/kde4/konversation.desktop,/usr/share/applications/kde4/amarok.desktop,/usr/share/applications/kde4/cantata.desktop,/usr/share/applications/kde4/dolphin.desktop,/usr/share/applications/kde4/systemsettings.desktop 8 | notify: 9 | - rebuild system configuration cache 10 | - stop plasma desktop 11 | - start plasma desktop 12 | - 13 | copy: dest="{{home}}/.kde/Autostart/ssh-add.sh" src=ssh-add.sh mode=0755 14 | handlers: 15 | - 16 | name: rebuild system configuration cache 17 | command: kbuildsycoca4 --nocheckfiles 18 | - 19 | name: stop plasma desktop 20 | command: kquitapp plasma-desktop 21 | - 22 | name: start plasma desktop 23 | shell: kstart plasma-desktop >/dev/null 2>&1 24 | -------------------------------------------------------------------------------- /konsole.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | vars: 7 | appdir: "{{home}}/.kde/share/apps/konsole" 8 | tasks: 9 | - name: Create the Konsole app directory 10 | file: path={{appdir}} state=directory recurse=yes 11 | - name: Install Railscasts colorscheme into Konsole 12 | copy: dest={{appdir}}/Railscasts.colorscheme src=konsole/Railscasts.colorscheme 13 | - name: Create Railscasts profile for Konsole 14 | copy: dest={{appdir}}/Railscasts.profile src=konsole/Railscasts.profile 15 | - name: Set Railscasts as default Konsole profile 16 | kconfig: file=konsolerc group="Desktop Entry" key=DefaultProfile value=Railscasts.profile 17 | -------------------------------------------------------------------------------- /konsole/Railscasts.colorscheme: -------------------------------------------------------------------------------- 1 | [Background] 2 | Color=43,43,43 3 | Transparency=false 4 | 5 | [BackgroundIntense] 6 | Bold=true 7 | Color=43,43,43 8 | Transparency=false 9 | 10 | [Color0] 11 | Color=43,43,43 12 | Transparency=false 13 | 14 | [Color0Intense] 15 | Bold=true 16 | Color=85,117,83 17 | Transparency=false 18 | 19 | [Color1] 20 | Color=204,0,0 21 | Transparency=false 22 | 23 | [Color1Intense] 24 | Bold=true 25 | Color=239,41,41 26 | Transparency=false 27 | 28 | [Color2] 29 | Color=78,154,6 30 | Transparency=false 31 | 32 | [Color2Intense] 33 | Bold=true 34 | Color=165,194,97 35 | Transparency=false 36 | 37 | [Color3] 38 | Color=188,148,88 39 | Transparency=false 40 | 41 | [Color3Intense] 42 | Bold=true 43 | Color=255,198,109 44 | Transparency=false 45 | 46 | [Color4] 47 | Color=52,101,164 48 | Transparency=false 49 | 50 | [Color4Intense] 51 | Bold=true 52 | Color=109,156,190 53 | Transparency=false 54 | 55 | [Color5] 56 | Color=117,80,123 57 | Transparency=false 58 | 59 | [Color5Intense] 60 | Bold=true 61 | Color=173,127,168 62 | Transparency=false 63 | 64 | [Color6] 65 | Color=6,152,154 66 | Transparency=false 67 | 68 | [Color6Intense] 69 | Bold=true 70 | Color=52,226,226 71 | Transparency=false 72 | 73 | [Color7] 74 | Color=211,215,207 75 | Transparency=false 76 | 77 | [Color7Intense] 78 | Bold=true 79 | Color=238,238,236 80 | Transparency=false 81 | 82 | [Foreground] 83 | Color=230,225,220 84 | Transparency=false 85 | 86 | [ForegroundIntense] 87 | Bold=true 88 | Color=230,225,220 89 | Transparency=false 90 | 91 | [General] 92 | Description=Railscasts 93 | Opacity=1 94 | Wallpaper= 95 | -------------------------------------------------------------------------------- /konsole/Railscasts.profile: -------------------------------------------------------------------------------- 1 | [Appearance] 2 | BoldIntense=true 3 | ColorScheme=Railscasts 4 | Font=Monospace,16,-1,5,50,0,0,0,0,0 5 | 6 | [General] 7 | Command=/bin/bash --login 8 | Environment=TERM=konsole-256color 9 | Icon=utilities-terminal 10 | LocalTabTitleFormat=%D : %n 11 | Name=Railscasts 12 | Parent=FALLBACK/ 13 | RemoteTabTitleFormat=(%u) %H 14 | 15 | [Terminal Features] 16 | BidiRenderingEnabled=true 17 | -------------------------------------------------------------------------------- /konversation.password.enc: -------------------------------------------------------------------------------- 1 | U2FsdGVkX1++s5oIMhNo7poeoF9ZTG7Z/j2tuRe+tAk= 2 | -------------------------------------------------------------------------------- /konversation.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | tasks: 7 | - kconfig: file=konversationrc group=Flags key=HideUnimportantEvents value=true 8 | - kconfig: file=konversationrc group=Flags key=HideUnimportantEventsExcludeActive value=true 9 | - kconfig: file=konversationrc group="General Options" key=AutomaticRememberLine value=true 10 | - kconfig: file=konversationrc group="Identity 0" key=Name value="Default Identity" 11 | - kconfig: file=konversationrc group="Identity 0" key=Realname value="Sheldon Hearn" 12 | - kconfig: file=konversationrc group="Identity 0" key=Nicknames value=sheldonh,sheldonh_,sheldonh__ 13 | - kconfig: file=konversationrc group="Identity 0" key=Ident value=sheldonh 14 | - kconfig: file=konversationrc group="Identity 0" key=Bot value=nickserv 15 | - name: Set Freenode password 16 | kconfig: file=konversationrc group="Identity 0" key=Password value="{{lookup('password', 'konversation.password.enc') }}" 17 | - kconfig: file=konversationrc group="Server 0" key=Server value="chat.freenode.net" 18 | - kconfig: file=konversationrc group="ServerGroup 0" key=Name value="Freenode" 19 | - kconfig: file=konversationrc group="ServerGroup 0" key=AutoConnect value=true 20 | - kconfig: file=konversationrc group="ServerGroup 0" key=AutoJoinChannels value="" 21 | - kconfig: file=konversationrc group="ServerGroup 0" key=Identity value="" 22 | - kconfig: file=konversationrc group="ServerGroup 0" key=ServerList value="Server 0" 23 | - kconfig: file=konversationrc group="Appearance" key=CustomTextFont value=true 24 | - kconfig: file=konversationrc group="Appearance" key=TextFont value="Sans Serif,16,-1,5,50,0,0,0,0,0" 25 | -------------------------------------------------------------------------------- /krb5.conf.enc: -------------------------------------------------------------------------------- 1 | U2FsdGVkX1++s5oIMhNo7gJBomkSyY5rE+aZR/onFRWf7DrY/cBBtb+WREbO9/J0 2 | yWU/PSdilvZzC/e7rPU38cqTVYZyIExA6ZVLmzIeDW0mxC821/fxzJ7mV3xuJcPp 3 | esDeAmwm3XXWw9PIOEIwalz7hY4S3GaeyQ7DT8EsT5uigL306Mw/zl7K7i8v5YC1 4 | faYTXch52mEF2K1zDhNWQJcaqhAc6rH0DqDbEG6V0yu5XUTgEodndJH1q77dFKry 5 | B+HqAKmLQNZxIaf4/76+5VNY+Ua9rAEDET4wtoadNfvCb42SNpLce+w9GPSRJ/PO 6 | SjykAHwCKb0haxE+SwbwT1lCxp93r7dHW3eqegfdVTz7bUdxjgQsWUJvlIGYg1SO 7 | roWWLvD519ebwFlu7mrjjFTVKngDMBeQB4BQq1c83eJQOuIcTws7W4E3sOj+bGiX 8 | 59RrBjSR+fQwUrtWTkLg7Vf8pmADjLEGk/9vGOkTjr6lF/UuvYmr1r4EoyAntNIj 9 | xEMzlU4mjxD9UqbINYBJAv4e9GNkFwKejvb1mUvl6Kqca3YKkiTZOFMHmYd20xu8 10 | nPcbZuKVfuV1m7iLH/GhBtBGULh9qvtW9+UrG4crgn3/yC8yxIjje3qwzKFWguD2 11 | 9xkysrbCxk6qi0xvPjW7g+U9+BUYpQti3H41vejrgP4wAk2vEgsoeHKp9mm+hgZN 12 | u3wgBD5TjPOHK+K21HlLXuG332+0BUIbgXeagsOqgTq1wIwPhfOKULEs7ehJV9lQ 13 | It2on0m6qOuS5o4QcFEYBjAogIXYieaDQOKICWZXHQUm+AJGU680MjdymSG11DkY 14 | Lvz8ieZvymxxxBfL7oluduKzFMcBDDYucstMjbdHLwWQiwaWh2mLYa2AUUo2Rrha 15 | A+rNBPNoki6dHJAyawc4xA== 16 | -------------------------------------------------------------------------------- /library/elpa: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import glob 4 | import json 5 | import os 6 | import shlex 7 | import subprocess 8 | import sys 9 | 10 | package = None 11 | 12 | args_file = sys.argv[1] 13 | args_data = file(args_file).read() 14 | 15 | arguments = shlex.split(args_data) 16 | for arg in arguments: 17 | if arg.find("=") != -1: 18 | (key, value) = arg.split("=") 19 | if key == "pkg": 20 | package = value 21 | 22 | existing = glob.glob(os.environ['HOME'] + '/.emacs.d/elpa/' + package + '-*') 23 | if not existing: 24 | subprocess.check_call(['emacs', '--user', os.environ['USER'], '--batch', '--eval', "(package-install '" + package + ")"]) 25 | print json.dumps({ 26 | "changed" : True, 27 | "msg" : "OK" 28 | }) 29 | else: 30 | print json.dumps({ 31 | "changed" : False 32 | }) 33 | 34 | sys.exit(0) 35 | -------------------------------------------------------------------------------- /library/kconfig: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import json 4 | import shlex 5 | import subprocess 6 | import sys 7 | 8 | exec_args = [] 9 | new_value = None 10 | 11 | args_file = sys.argv[1] 12 | args_data = file(args_file).read() 13 | 14 | arguments = shlex.split(args_data) 15 | for arg in arguments: 16 | if arg.find("=") != -1: 17 | (key, value) = arg.split("=") 18 | if key == "file": 19 | exec_args.append('--file') 20 | exec_args.append(value) 21 | if key == "group": 22 | exec_args.append('--group') 23 | exec_args.append(value) 24 | if key == "key": 25 | exec_args.append('--key') 26 | exec_args.append(value) 27 | if key == "value": 28 | new_value = value 29 | 30 | existing_value = subprocess.check_output(['kreadconfig'] + exec_args).rstrip() 31 | if existing_value != value: 32 | subprocess.check_call(['kwriteconfig'] + exec_args + [new_value]) 33 | print json.dumps({ 34 | "changed" : True, 35 | "msg" : "OK" 36 | }) 37 | else: 38 | print json.dumps({ 39 | "changed" : False 40 | }) 41 | 42 | sys.exit(0) 43 | -------------------------------------------------------------------------------- /packages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | tasks: 5 | - name: Enable the Yum repo for rpmfusion 6 | shell: yum localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm creates=/etc/yum.repos.d/rpmfusion-free.repo 7 | - yum: name={{item}} state=present 8 | with_items: 9 | - ack 10 | - aggregate 11 | - cantata 12 | - clusterssh 13 | - emacs 14 | - emacs-color-theme-el 15 | - gstreamer-ffmpeg 16 | - gstreamer-plugins-ugly 17 | - hunspell-en 18 | - ktouch 19 | - mplayer 20 | - picard 21 | - pssh 22 | - pwgen 23 | - sipcalc 24 | - strace 25 | - swaks 26 | - telnet 27 | - unrar 28 | - whois 29 | - wireshark-gnome 30 | - words 31 | # for xterm: 32 | - xorg-x11-fonts-misc 33 | - name: Add sheldonh to the wireshark group 34 | user: name=sheldonh append=yes groups=wireshark 35 | - name: configure cantata 36 | hosts: local 37 | connection: local 38 | sudo: yes 39 | sudo_user: "{{user}}" 40 | tasks: 41 | - kconfig: file=cantatarc group=Connection key=dir value=/var/lib/mpd/music/ 42 | - kconfig: file=cantatarc group=Connection key=host value=linsh.dur1.host-h.net 43 | - kconfig: file=cantatarc group=Connection key=passwd value=true 44 | - kconfig: file=cantatarc group=Connection key=port value=6600 45 | - name: disable Nepomuk File Indexer 46 | hosts: local 47 | connection: local 48 | sudo: yes 49 | sudo_user: "{{user}}" 50 | tasks: 51 | - kconfig: file=nepomukserverrc group="Basic Settings" key="Start Nepomuk" value=true 52 | - kconfig: file=nepomukserverrc group="Service-nepomukfileindexer" key=autostart value=false 53 | - name: enable auto-login 54 | hosts: local 55 | connection: local 56 | tasks: 57 | - kconfig: file=/etc/kde/kdm/kdmrc group=X-:0-Core key=AutoLoginEnable value=true 58 | - kconfig: file=/etc/kde/kdm/kdmrc group=X-:0-Core key=AutoLoginLocked value=false 59 | - kconfig: file=/etc/kde/kdm/kdmrc group=X-:0-Core key=AutoLoginUser value="{{user}}" 60 | - kconfig: file=/etc/kde/kdm/kdmrc group=X-:0-Core key=ClientLogFile value=.xsession-errors 61 | - name: enable mouse hover focus 62 | hosts: local 63 | connection: local 64 | sudo: yes 65 | sudo_user: "{{user}}" 66 | tasks: 67 | - kconfig: file=kwinrc group=Windows key=FocusPolicy value=FocusFollowsMouse 68 | - kconfig: file=kwinrc group=Windows key=NextFocusPrefersMouse value=true 69 | - kconfig: file=kwinrc group=Windows key=DelayFocusInterval value=true 70 | 71 | -------------------------------------------------------------------------------- /redis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | vars: 5 | version: 2.8.4 6 | tasks: 7 | - name: Download redis source 8 | get_url: dest=/usr/src/redis-{{version}}.tar.gz url=http://download.redis.io/releases/redis-{{version}}.tar.gz 9 | - name: Unpack redis source 10 | command: tar -C /usr/src -xzf /usr/src/redis-{{version}}.tar.gz creates=/usr/src/redis-{{version}} 11 | - name: Build redis from source 12 | command: chdir=/usr/src/redis-{{version}} make creates=/usr/src/redis-{{version}}/src/redis-server 13 | - name: Install redis from source 14 | command: chdir=/usr/src/redis-{{version}} make install creates=/usr/local/bin/redis-server -------------------------------------------------------------------------------- /rvm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | tasks: 5 | - 6 | name: Install ruby build dependencies 7 | yum: name={{item}} state=present 8 | with_items: 9 | - autoconf 10 | - automake 11 | - bison 12 | - gcc-c++ 13 | - libffi-devel 14 | - libtool 15 | - libyaml-devel 16 | - openssl-devel 17 | - readline-devel 18 | - zlib-devel 19 | - hosts: local 20 | connection: local 21 | sudo: yes 22 | sudo_user: "{{user}}" 23 | tasks: 24 | - 25 | name: Install rvm 26 | shell: curl -L https://get.rvm.io | bash -s -- creates={{home}}/.rvm 27 | - 28 | name: Disable autolibs 29 | lineinfile: dest={{home}}/.rvm/user/db line="autolibs=read-only" regexp="^autolibs=" state=present create=yes 30 | - 31 | name: Check for a default ruby 32 | shell: source {{home}}/.bash_profile && rvm list default | grep "Default Ruby" 33 | ignore_errors: true 34 | changed_when: False 35 | register: default 36 | - 37 | name: Install an MRI ruby as default 38 | shell: source {{home}}/.bash_profile && rvm install --default --docs ruby 39 | when: default|failed 40 | -------------------------------------------------------------------------------- /setup.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: local 3 | connection: local 4 | sudo: yes 5 | sudo_user: "{{user}}" 6 | tasks: 7 | - 8 | name: Unpack PGP archive 9 | shell: tar -C {{home}} -xf sheldonh-gpg.tar creates={{home}}/.gnupg/secring.gpg 10 | - 11 | name: Unpack SSH archive 12 | shell: gpg --decrypt < sheldonh-ssh.tar.enc | tar -C {{home}} -xf - creates={{home}}/.ssh/id_rsa 13 | - 14 | name: Install gitencrypt glue 15 | shell: gpg --decrypt < gitencrypt.tar.asc | tar -C {{home}} -xf - creates={{home}}/.gitencrypt/smudge_filter_openssl 16 | - 17 | name: Configure gitencrypt filters in repo 18 | copy: dest=.git/config src=gitconfig-gitencrypt 19 | - 20 | name: Apply filters to repo checkout 21 | command: git checkout HEAD -- . 22 | -------------------------------------------------------------------------------- /ssh-add.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | SSH_ASKPASS=/usr/bin/ksshaskpass ssh-add