Last active
January 30, 2016 20:31
-
-
Save mrlesmithjr/db6ec9589f8e1807863b to your computer and use it in GitHub Desktop.
Ubuntu Desktop Like a Boss
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| - name: Set up Fresh Ubuntu Desktop | |
| hosts: all | |
| sudo: true | |
| handlers: | |
| - name: restart avahi-daemon | |
| service: | |
| name: avahi-daemon | |
| state: restarted | |
| - name: restart netatalk | |
| service: | |
| name: netatalk | |
| state: restarted | |
| vars: | |
| - apt_packages: | |
| - name: adobe-flashplugin | |
| state: present | |
| - name: atom #Atom editor | |
| state: present | |
| - name: avahi-daemon | |
| state: present | |
| - name: build-essential | |
| state: present | |
| - name: chromium-browser | |
| state: present | |
| - name: concordance #Logitech Harmony CLI App | |
| state: present | |
| - name: congruity #Logitech Harmony GUI fpr concordance | |
| state: present | |
| - name: cronopete #Time Machine like backups for Ubuntu | |
| state: absent | |
| - name: deja-dup | |
| state: present | |
| - name: digikam | |
| state: present | |
| - name: dkms | |
| state: present | |
| - name: faac | |
| state: present | |
| - name: flac | |
| state: present | |
| - name: gimp | |
| state: present | |
| - name: gimp-data | |
| state: present | |
| - name: gimp-data-extras | |
| state: present | |
| - name: gimp-plugin-registry | |
| state: present | |
| - name: git | |
| state: present | |
| - name: git-review | |
| state: present | |
| - name: google-chrome-stable | |
| state: present | |
| - name: gparted | |
| state: present | |
| - name: grive-tools #Google Drive | |
| state: present | |
| - name: grub-customizer | |
| state: present | |
| - name: handbrake | |
| state: present | |
| - name: keepass2 | |
| state: present | |
| - name: kodi | |
| state: present | |
| - name: lame | |
| state: present | |
| - name: libc6-dev | |
| state: present | |
| - name: libdvdnav4 | |
| state: present | |
| - name: libdvdread4 | |
| state: present | |
| - name: libnss-mdns | |
| state: present | |
| - name: netatalk | |
| state: present | |
| - name: openssh-server | |
| state: present | |
| - name: pkg-config | |
| state: present | |
| - name: python-software-properties | |
| state: present | |
| - name: python-spice-client-gtk | |
| state: present | |
| - name: skype | |
| state: present | |
| - name: spotify-client | |
| state: present | |
| - name: sshpass | |
| state: present | |
| - name: timeshift #Time Machine for Ubuntu | |
| state: present | |
| - name: ubuntu-restricted-extras | |
| state: present | |
| - name: ubuntu-wallpapers | |
| state: present | |
| - name: unity-tweak-tool | |
| state: present | |
| - name: virt-manager #KVM management | |
| state: present | |
| - name: virt-viewer | |
| state: present | |
| - name: virtualbox-5.0 | |
| state: present | |
| - name: vlc | |
| state: present | |
| # - name: vmware-view-client | |
| # state: present | |
| - name: vorbis-tools | |
| state: present | |
| - apt_repo_keys: | |
| - id: BBEBDCB318AD50EC6865090613B00F1FD2C19886 | |
| keyserver: keyserver.ubuntu.com | |
| state: present | |
| - url: https://dl.google.com/linux/linux_signing_key.pub | |
| state: present | |
| - url: https://www.virtualbox.org/download/oracle_vbox.asc | |
| state: present | |
| - apt_repos: | |
| - repo: 'deb http://archive.canonical.com/ubuntu {{ ansible_distribution_release }} partner' | |
| state: present | |
| - repo: 'deb-src http://archive.canonical.com/ubuntu {{ ansible_distribution_release }} partner' | |
| state: present | |
| - repo: 'deb http://dl.google.com/linux/chrome/deb/ stable main' | |
| state: present | |
| - repo: 'deb http://download.virtualbox.org/virtualbox/debian {{ ansible_distribution_release }} contrib' #Virtualbox | |
| state: present | |
| - repo: 'deb http://repository.spotify.com stable non-free' #Spotify | |
| state: present | |
| - repo: 'ppa:danielrichter2007/grub-customizer' #Grub Customizer | |
| state: present | |
| - repo: 'ppa:nilarimogard/webupd8' #Google Drive grive2 | |
| state: present | |
| - repo: 'ppa:otto-kesselgulasch/gimp' #Gimp Photo Editor | |
| state: present | |
| - repo: 'ppa:rastersoft-gmail/cronopetedev' #Time Machine like backups for Ubuntu | |
| state: present | |
| - repo: 'ppa:team-xbmc/ppa' #Kodi | |
| state: present | |
| - repo: 'ppa:teejee2008/ppa' | |
| state: present | |
| - repo: 'ppa:thefanclub/grive-tools' #Google Drive | |
| state: present | |
| - repo: 'ppa:videolan/stable-daily' #VLC | |
| state: present | |
| - repo: 'ppa:webupd8team/atom' #Atom editor | |
| state: present | |
| - avahi_daemon_config: true #Only required if your internal FQDN includes .local - ie. everythingshouldbevirtual.local | |
| - config_timemachine_provider: true #Defines if you would like to make your workstation provide TimeMachine services for OSX clients | |
| - deb_packages: | |
| - name: dropbox | |
| package: dropbox_2015.10.28_amd64.deb | |
| state: present | |
| url: https://www.dropbox.com/download?dl=packages/ubuntu | |
| - name: vagrant | |
| package: vagrant_1.8.1_x86_64.deb | |
| state: present | |
| url: https://releases.hashicorp.com/vagrant/1.8.1 | |
| - docker_config_alt_data_dir: false | |
| - docker_alt_data_dir: '/mnt/USBData/docker' | |
| - docker_opts: #defines docker service options to be configured...if different than defaults from ansible-docker role. | |
| - '--dns {{ pri_dns }}' | |
| - '--dns {{ sec_dns }}' | |
| # - '-g {{ docker_alt_data_dir }}' #example to change location of where Docker will store data...to change - change docker_data_dir var above. | |
| - docker_users: | |
| - larry | |
| # - mount_devices: false #defines if devices defined under mounts: should be mounted....define in host_vars/host.yml | |
| # - mounts: #defines devices to mount...define in host_vars/host.yml | |
| # - name: /mnt/TimeMachine | |
| # fstype: ext4 | |
| # opts: 'defaults' | |
| # src: 'UUID=5ade3608-d7cd-434b-a18e-8bc979279f6d' | |
| # state: mounted | |
| # - name: /mnt/USBData | |
| # fstype: ext4 | |
| # opts: 'defaults' | |
| # src: 'UUID=d0818e3d-efbf-4b5a-ac11-2c994a552023' | |
| # state: mounted | |
| - nvidia_video: true | |
| - timemachine_directory_share: /mnt/TimeMachine | |
| - timemachine_users: | |
| - larry | |
| roles: | |
| - role: ansible-users | |
| - role: ansible-docker | |
| - role: ansible-manage-ssh-keys | |
| - role: ansible-monit | |
| - role: ansible-ntp | |
| - role: ansible-postfix | |
| - role: ansible-rsyslog | |
| - role: ansible-snmpd | |
| - role: ansible-timezone | |
| tasks: | |
| - name: installing pre-reqs | |
| apt: | |
| name: "{{ item }}" | |
| state: present | |
| with_items: | |
| - software-properties-common | |
| - name: adding apt repo keys | |
| apt_key: | |
| keyserver: "{{ item.keyserver|default(omit) }}" | |
| id: "{{ item.id|default(omit) }}" | |
| url: "{{ item.url|default(omit) }}" | |
| state: "{{ item.state }}" | |
| with_items: apt_repo_keys | |
| - name: adding apt repositories | |
| apt_repository: | |
| repo: "{{ item.repo }}" | |
| state: "{{ item.state }}" | |
| with_items: apt_repos | |
| - name: installing packages | |
| apt: | |
| name: "{{ item.name }}" | |
| state: "{{ item.state }}" | |
| with_items: apt_packages | |
| - name: adding SWAT NVIDIA drivers repo (if NVIDIA) | |
| apt_repository: | |
| repo: "ppa:ubuntu-x-swat/x-updates" | |
| state: present | |
| when: nvidia_video is defined and nvidia_video | |
| - name: installing NVIDIA Drivers (if NVIDIA) | |
| apt: | |
| name: "{{ item }}" | |
| state: present | |
| when: nvidia_video is defined and nvidia_video | |
| with_items: | |
| - nvidia-current | |
| - nvidia-settings | |
| - name: downloading additional debian packages to install | |
| get_url: | |
| url: "{{ item.url }}/{{ item.package }}" | |
| dest: "/opt/{{ item.package }}" | |
| with_items: deb_packages | |
| when: item.state != "absent" | |
| - name: installing additional debian packages | |
| apt: | |
| deb: "/opt/{{ item.package }}" | |
| state: "{{ item.state }}" | |
| with_items: deb_packages | |
| #### NOT NEEDED As we modify nsswitch.conf further down....this is only if using a .local unicast DNS name...I AM.. I KNOW>> I KNOW | |
| # - name: modifying Avahi Daemon (.local domains) | |
| # replace: | |
| # dest: /etc/avahi/avahi-daemon.conf | |
| # regexp: "^#domain-name=local" | |
| # replace: "domain-name=.alocal" #This breaks avahi-daemon when setting up for TimeMachine | |
| # notify: restart avahi-daemon | |
| # when: avahi_daemon_config is defined and avahi_daemon_config | |
| - name: configuring nsswitch.conf | |
| template: | |
| src: "templates/etc/nsswitch.conf.j2" | |
| dest: "/etc/nsswitch.conf" | |
| owner: root | |
| group: root | |
| mode: 0644 | |
| when: avahi_daemon_config is defined and avahi_daemon_config | |
| - name: installing vmware-view-client #Will not install using apt module for some reason | |
| command: "apt-get install -y vmware-view-client" | |
| args: | |
| creates: /usr/bin/vmware-view | |
| - name: mounting any devices defined | |
| mount: | |
| name: "{{ item.name }}" | |
| src: "{{ item.src }}" | |
| fstype: "{{ item.fstype }}" | |
| opts: "{{ item.opts|default(omit) }}" | |
| state: "{{ item.state }}" | |
| tags: | |
| - mount_devices | |
| with_items: mounts | |
| when: mount_devices is defined and mount_devices | |
| - name: ensuring docker_alt_data_dir exists | |
| file: | |
| dest: "{{ docker_alt_data_dir }}" | |
| state: directory | |
| when: docker_config_alt_data_dir is defined and docker_config_alt_data_dir | |
| - name: setting permissions on device mounts to allow all users r/w | |
| file: | |
| dest: "{{ item.name }}" | |
| mode: 0777 | |
| state: directory | |
| tags: | |
| - mount_devices | |
| with_items: mounts | |
| when: mount_devices is defined and mount_devices | |
| - name: configuring TimeMachine services | |
| template: | |
| src: "templates/{{ item }}.j2" | |
| dest: "{{ item }}" | |
| owner: root | |
| group: root | |
| mode: 0644 | |
| notify: | |
| - restart avahi-daemon | |
| - restart netatalk | |
| tags: | |
| - timemachine | |
| with_items: | |
| - /etc/avahi/services/afpd.service | |
| when: config_timemachine_provider is defined and config_timemachine_provider | |
| - name: configuring netatalk | |
| template: | |
| src: "templates/etc/netatalk/AppleVolumes.default.j2" | |
| dest: "/etc/netatalk/AppleVolumes.default" | |
| owner: root | |
| group: root | |
| mode: 0644 | |
| tags: timemachine | |
| notify: | |
| - restart netatalk | |
| when: config_timemachine_provider is defined and config_timemachine_provider | |
| - name: cleaning up apt packages | |
| command: "{{ item }}" | |
| with_items: | |
| - 'apt-get -y autoremove' | |
| - 'apt-get -y clean' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment