diff --git a/README.rst b/README.rst index 3fe691de36e9160bc4d46ec982a167d39db0989a..89fea6875813133dbfb6d01cf494fdfb62253ba7 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,47 @@ -ansible-role-desktop -#################### +ansible-desktop-playbooks +######################### -Ansible playbook for setting up new desktops. For personal use. +Ansible playbooks for setting up new desktops. + +Desktop +======= + +Common tasks I do on my machine (like set Plymouth theme, make :code:`/tmp` +tmpfs). + +.. code:: shell + + ansible-playbook --ask-become-pass --connection local --inventory-file localhost, --verbose desktop.yml + +Packages +======== + +Installs packages with APT and different languages package managers. + +.. code:: shell + + ansible-playbook --ask-become-pass --connection local --inventory-file localhost, --verbose pkgs.yml + +Skype +===== + +Installs Skype from the Debian package, there's no repository. + +.. code:: shell + + ansible-playbook --ask-become-pass --connection local --inventory-file localhost, --verbose skype.yml + +Can be added as a Cron job under root for updates. + +.. code:: shell + + ansible-playbook --connection local --inventory-file localhsot, --verbose skype.yml | logger + +Dropbox +======= + +Installs Dropbox headless. + +.. code:: shell + + ansible-playbook --connection local --inventory-file localhost, --verbose dropbox.yml diff --git a/playbook.yml b/desktop.yml similarity index 94% rename from playbook.yml rename to desktop.yml index 40658e4ebfdd2d7ae33e8d7f38a3a75e20693fbe..ee8b76bdd9d065a845b364d9a8b72f3031de9e3c 100644 --- a/playbook.yml +++ b/desktop.yml @@ -1,6 +1,7 @@ --- - - hosts: all + become: yes + become_user: root tasks: - name: apt install with_items: @@ -18,7 +19,7 @@ dest: /etc/NetworkManager/NetworkManager.conf section: keyfile option: unmanaged-devices - value: interface-name:docker0;interface-name:vboxnet0;interface-name:nspawnbr0 + value: interface-name:docker0;interface-name:vboxnet0;interface-name:nspawnbr0:interface-name:lxcbr0 state: present - name: Configure Plymouth diff --git a/dropbox.yml b/dropbox.yml new file mode 100644 index 0000000000000000000000000000000000000000..c91e18f42c2307848c12db465e8992c0a9e2e59e --- /dev/null +++ b/dropbox.yml @@ -0,0 +1,23 @@ +--- +- hosts: all + become: no + tasks: + - name: Download Dropbox tarball + get_url: + url: https://www.dropbox.com/download?plat=lnx.x86_64 + dest: '{{ ansible_user_dir }}/Downloads/dropbox-lnx.x86_64.tar.gz' + mode: 0o0644 + register: download_dropbox_tarball + + - name: Unpack Dropbox tarball + when: '{{ download_dropbox_tarball.changed }}' + unarchive: + copy: no + dest: '{{ ansible_user_dir }}/' + src: '{{ ansible_user_dir }}/Downloads/dropbox-lnx.x86_64.tar.gz' + + - name: Get Python Dropbox startup script + get_url: + url: https://www.dropbox.com/download?dl=packages/dropbox.py + dest: '{{ ansible_user_dir }}/.dropbox-dist/dropbox.py' + mode: 0o0755 diff --git a/files/dropbox.py.desktop b/files/dropbox.py.desktop new file mode 100644 index 0000000000000000000000000000000000000000..fe960a2b5baa0e7afe125cf4ddbe0b5f1e2950aa --- /dev/null +++ b/files/dropbox.py.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Exec=/home/nimrod/dropbox.py start +Icon=system-run +Path= +Terminal=false +Type=Application diff --git a/pkgs.yml b/pkgs.yml new file mode 100644 index 0000000000000000000000000000000000000000..67e7b812336c988c76b9fa4894d0750281e1928d --- /dev/null +++ b/pkgs.yml @@ -0,0 +1,184 @@ +--- +- hosts: all + become: false + vars: + apt: + - ansible + - acpi + - apache2-utils + - at + - awscli + - bluedevil + - bluetooth + - bluez-firmware + - btrfs-progs + - busybox + - capistrano + - cargo + - clojure1.6 + - cryptsetup + - dnsmasq + - docker.io + - dos2unix + - easy-rsa + - fabric + - firmware-intel-sound + - firmware-iwlwifi + - firmware-linux + - flake8 + - fonts-oxygen + - gdisk + - git-annex + - git-buildpackage + - golang + - grub-efi-amd64 + - gstreamer1.0-libav + - gstreamer1.0-vaapi + - gstreamer1.0-x + - hyphen-en-us + - intel-microcode + - iputils-arping + - iputils-ping + - kde-config-sddm + - kde-config-touchpad + - kdeconnect + - kdegraphics-mobipocket + - kdegraphics-strigi-analyzer + - kdegraphics-thumbnailers + - kdesudo + - kde-telepathy + - keepassx + - kio-extras + - kompare + - kontact + - kpcli + - kscreen + - kwalletcli + - kwin-x11 + - linux-headers-amd64 + - linux-image-amd64 + - luarocks + - lxqt + - muon-discover + - muon-notifier + - muon-updater + - mythes-en-us + - nodejs-legacy + - notification-daemon + - npm + - ntfs-3g + - obconf-qt + - pelican + - plasma-nm + - plasma-workspace-wayland + - powerdevil + - pry + - pulseaudio-module-x11 + - python3-dev + - python3-pip + - python3-wheel + - python-dev + - python-pip + - python-virtualenv + - reprepro + - sbuild + - systemsettings + - task-english + - task-hebrew + - task-hebrew-desktop + - task-hebrew-kde-desktop + - task-kde-desktop + - task-laptop + - task-print-server + - task-ssh-server + - texlive-latex-base + - texlive-fonts-recommended + - time + - tmux + - tox + - twine + - va-driver-all + - vagrant + - vdpau-driver-all + - vim-nox + - virtualbox-qt + - vlc-plugin-notify + - xdg-user-dirs + go: + - github.com/giantswarm/semver-bump + - github.com/nishanths/license + gem: + npm: + - yo + - grunt-cli + - gulp + pip: + - ansible-lint + - molecule + - docker-compose + - pbr + - parse + - sh + - pre-commit + - proselint + - testinfra + pip3: + cargo: + - rustfmt + + tasks: + - name: apt install + when: apt is iterable and ansible_pkg_mgr == 'apt' + become: yes + become_user: root + apt: + name: '{{ apt|join(" ") }}' + state: latest + purge: yes + force: yes + install_recommends: no + update_cache: yes + cache_valid_time: 3600 + + - name: go get + when: go is iterable + shell: 'go get -u {{ go|join(" ") }}' + + - name: gem install + when: gem is iterable + become: yes + become_user: root + gem: + name: '{{ gem|join(" ") }}' + state: latest + + - name: npm install + when: npm is iterable + become: yes + become_user: root + npm: + global: yes + name: '{{ npm|join(" ") }}' + state: latest + + - name: pip install + when: pip is iterable + become: yes + become_user: root + pip: + name: '{{ pip|join(" ") }}' + state: latest + + - name: pip3 install + when: pip3 is iterable + become: yes + become_user: root + pip: + name: '{{ pip3|join(" ") }}' + state: latest + executable: pip3 + + - name: cargo install + when: cargo is iterable + become: no + command: '/usr/bin/cargo install {{ cargo|join(" ") }}' diff --git a/skype.yml b/skype.yml new file mode 100644 index 0000000000000000000000000000000000000000..12a440da7aad274a7c448804e9a42e3457d3560e --- /dev/null +++ b/skype.yml @@ -0,0 +1,23 @@ +--- +- hosts: all + become: yes + become_user: root + tasks: + - name: APT install dependencies + with_items: + apt: + name: '{{ item }}' + state: present + update_cache: yes + cache_valid_time: 3600 + + - name: Get Skype Debian package + get_url: + src: http://www.skype.com/go/getskype-linux-deb + dest: /root/skype.deb + register: get_skype_package + + - name: Install Skype Debian package + apt: + deb: /root/skype.deb + state: present diff --git a/skype_update b/skype_update new file mode 100755 index 0000000000000000000000000000000000000000..e104de44cf90830eb478e61092884fdbd056ae6f --- /dev/null +++ b/skype_update @@ -0,0 +1,7 @@ +#!/bin/sh -e +tempfile="$(mktemp)" +wget http://www.skype.com/go/getskype-linux-deb \ + --quiet \ + --output-document "$tempfile" +dpkg --install --skip-same-version -G "$tempfile" 2>&1 | logger +rm "$tempfile"