diff --git a/hosts b/hosts index ec9896e..8002a8d 100644 --- a/hosts +++ b/hosts @@ -1,5 +1,15 @@ test: - hosts: - 172.19.134.38: - ansible_user: ubuntu - ansible_ssh_private_key_file: ~/.ssh/id_rsa + children: + debian: + hosts: + 172.19.134.64: {} + 172.19.134.54: {} + vars: + ansible_user: debian + ubuntu: + hosts: + 172.19.134.38: {} + vars: + ansible_user: ubuntu + vars: + ansible_ssh_private_key_file: ~/.ssh/id_rsa diff --git a/playbooks/test.yml b/playbooks/test.yml index e887dc6..3fa0c1a 100644 --- a/playbooks/test.yml +++ b/playbooks/test.yml @@ -7,4 +7,5 @@ - csc-packages - csc-filesystems - general-use - - gui + - devel + #- gui diff --git a/roles/csc-filesystems/tasks/main.yml b/roles/csc-filesystems/tasks/main.yml index e0adb90..7a92fe3 100644 --- a/roles/csc-filesystems/tasks/main.yml +++ b/roles/csc-filesystems/tasks/main.yml @@ -89,7 +89,7 @@ ignore_errors: true - name: Mount music (sec=krb5p) - when: mount_music is define and mount_music_sys is not defined and not(ansible_virtualization_role == 'guest' and ansible_virtualization_type == 'lxc') + when: mount_music is defined and mount_music_sys is not defined and not(ansible_virtualization_role == 'guest' and ansible_virtualization_type == 'lxc') mount: src: corn-syrup.csclub.uwaterloo.ca:/scratch name: /scratch diff --git a/roles/devel/files/dupload.conf b/roles/devel/files/dupload.conf new file mode 100644 index 0000000..25b1b1e --- /dev/null +++ b/roles/devel/files/dupload.conf @@ -0,0 +1,148 @@ +# This is the configuration for dupload. +# It is intended to be read and evaluated from Perl. +# +### PLEASE READ THE dupload.conf(5) MANUAL PAGE +# +# reading the dupload(1) manual page is also advisable + +package config; + +# Global variables: +# $default_host - the host to use if no --to option is used +# $no_parentheses_to_fullname - boolean, as its name says +# +# Per-host variables: +# fqdn - full hostname +# method - ftp, scp, scpb or rsync +# (defaults to ftp) +# login - user name to use on the remote host +# (defaults to 'anonymous' for FTP and local username for SSH methods) +# use "user\@remote" for firewall logins +# incoming - directory where to upload first +# queuedir - directory where to move if upload succeeded +# mailto - address for announcement email (stable) +# mailtx - address for announcement email (unstable) +# cc - address for carbon copy of the announcement email +# fullname - the full name to use in the announcement email +# (defaults to what your local MTA uses) +# visibleuser - the username to use in the announcement email +# (defaults to local username) +# visiblename - the domainname to use in the announcement email +# (defaults to what your local MTA uses) + +# Example of a default host: +$default_host = "debian.csclub"; + +# ----------------- +# Pre-defined hooks +# ----------------- +# Check changes file for valid signatures +# Using GPG: +$preupload{'changes'} = '/usr/share/dupload/gpg-check %1'; +# or using PGP: +# $preupload{'changes'} = '/usr/share/dupload/pgp-check %1'; +# + +# Lintian check of packages +# $preupload{'deb'} = 'lintian -v -i %1'; + +# Other hooks: +# $preupload{'sourcepackage'} +# $preupload{'file'} +# $preupload{'package'} +# $postupload{'changes'} +# $postupload{'sourcepackage'} +# $postupload{'file'} +# $postupload{'deb'} +# $postupload{'package'} + +# Note: hooks can also be defined in a per-host basis, this +# overrides globaly defined hooks. + +# ----------------- +# Pre-defined hosts +# ----------------- + +$cfg{'debian.csclub'} = { + fqdn => 'potassium-benzoate.csclub.uwaterloo.ca', + method => 'scpb', + incoming => '/srv/debian/incoming', + dinstall_runs => 1, +}; + +# Notice: There are login restriction on this host, scp will not +# work unless you are authorised. +$cfg{'ftp-master'} = { + fqdn => "ftp-master.debian.org", + method => "scpb", + incoming => "/org/ftp.debian.org/incoming/", + # The dinstall on ftp-master sends emails itself + dinstall_runs => 1, +}; +$cfg{'anonymous-ftp-master'} = { + fqdn => "ftp-master.debian.org", + incoming => "/pub/UploadQueue/", + # files pass on to dinstall on ftp-master which sends emails itself + dinstall_runs => 1, +}; + +# For Delayed uploads use this. You can use 0-day, which is uploaded +# one hour before dinstall runs. +$delay = (defined($ENV{DEBDELAY}) ? $ENV{DEBDELAY} : 7); +$cfg{'delayed'} = { + fqdn => "gluck.debian.org", + method => "scpb", + incoming => "/home/tfheen/DELAYED/$delay-day/", + # The dinstall on ftp-master sends emails itself + dinstall_runs => 1, +}; + +# Mentors upload queue, see +# http://mentors.debian.net/signup.php +$cfg{'mentors'} = { + fqdn =>'mentors.debian.net', + method =>'scpb', + login =>'incoming', + incoming=>'~', +# Change these to the user and domain part of your email address +# and uncomment them +# visibleuser=>'hugo', +# visiblename=>'mydomain.tld', + mailtx =>'incoming@mentors.debian.net', + preupload=> { + deb=>'chmod 0644 %1', + changes=>'chmod 0644 %1', + file=>'chmod 0644 %1', + }, +}; + +# NOTE: Do _NOT_ upload a package to the security upload queue +# (oldstable-security, stable-security, etc.) without prior authorization +# from the security team. Please read: +# http://www.debian.org/doc/developers-reference/ch-pkgs.en.html#s-bug-security + +# Notice: There are login restriction on this host, scp will not +# work unless you are authorised. +#$cfg{'security'} = { +# fqdn => "security-master.debian.org", +# method => "scpb", +# incoming => "/org/security.debian.org/queue/unchecked", +# # The dinstall on security sends emails itself +# dinstall_runs => 1, +# nonus => 1, +#}; +#$cfg{'anonymous-security'} = { +# fqdn => "security-master.debian.org", +# incoming => "/pub/SecurityUploadQueue", +# # files pass on to dinstall on security which sends emails itself +# dinstall_runs => 1, +# nonus => 1, +#}; + + +# Don't remove the following line. Perl needs it. +1; + +## Local Variables: ## +## mode:perl ## +## End: ## diff --git a/roles/devel/tasks/main.yml b/roles/devel/tasks/main.yml new file mode 100644 index 0000000..b018bdd --- /dev/null +++ b/roles/devel/tasks/main.yml @@ -0,0 +1,473 @@ +--- + +- name: Install build essentials + apt: + name: build-essential + state: present + cache_valid_time: 3600 + +- name: Install debian development tools + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - dpkg-dev + - devscripts + - debootstrap + - dupload + - fakeroot + - debhelper + - dh-make + - dh-make-perl + - dh-buildinfo + - cdbs + - dpatch + - lintian + - alien + - po-debconf + - pbuilder + - dpkg-repack + +- name: Install kernel-package (not Debian Stretch) + when: not(ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch') + apt: + name: kernel-package + state: present + cache_valid_time: 3600 + +- name: Configure dupload + file: + src: dupload.conf + dest: /etc/dupload.conf + +- name: Install llvm + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - clang + - llvm + - llvm-dev + +- name: Install build helpers + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - make + - make-doc + - autoconf + - autoconf-doc + - automake + - cmake + - ccache + - ant + - ant-optional + - scons + - qt4-qmake + - qt5-qmake + - autogen + - autotools-dev + - autoproject + - kbuild + - premake4 + - maven + +- name: Install debuggers + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - strace + - gdb + - elfutils + - valgrind + - libc6-dbg + +- name: Install documentation + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - manpages-dev + - gcc-doc + - cpp-doc + - binutils-doc + - manpages-posix-dev + - glibc-doc + - glibc-doc-reference + - gdb-doc + - stl-manual + - perl-doc + +- name: Install languages + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - python + - python3 + - perl + - ruby + - ruby-dev + - golang + - gfortran + - erlang + - erlang-dev + - beef + - intercal + - rhino + - sbcl + - r-base-core + - ghc + - ghc-doc + - haskell-platform + - openjdk-8-jdk-headless + - mono-complete + - mono-devel + - mono-profiler + - mono-tools-devel + - mono-tools-gui + - mono-vbnc + - ocaml + - camlp4 + - lua5.3 + - liblua5.3-dev + - php7.0-cli + +- name: Install scheme/racket + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - racket + - racket-doc + - tinyscheme + - chicken-bin + - mit-scheme-doc + - scheme9 + - stalin + +- name: Install scheme/racket (Ubuntu) + when: ansible_distribution == 'Ubuntu' + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - scheme2c + - guile-1.8 + - guile-1.8-dev + +- name: Install assembly tools + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - bin86 + - nasm + - yasm + +- name: Install scanning and parsing utils + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - flex + - flex-doc + - bison + - bison-doc + - ragel + - byacc + - re2c + +- name: Install source control + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - git + - git-email + - git-cvs + - git-svn + - git-doc + - git-buildpackage + - git-gui + - mercurial + - subversion + - subversion-tools + - darcs + - bzr + - bzrtools + - cvs + - cvsps + - wdiff + - colordiff + - patch + - patchutils + - quilt + - gitk + - diffutils + +- name: Install source control (Ubuntu) + when: ansible_distribution == 'Ubuntu' + apt: + name: tkdiff + state: present + cache_valid_time: 3600 + +- name: Install source control (not Debian Stretch) + when: not(ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch') + apt: + name: git-lfs + state: present + cache_valid_time: 3600 + +- name: Install python libraries + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - python3-pip + - python3-virtualenv + - python3-all-dev + - python-pip + - python-virtualenv + - python-all-dev + - drpython + - ipython + - pylint + - pychecker + - pyflakes + - python-m2crypto + - python-mysqldb + - python-imaging + - python-libxml2 + - python-libxslt1 + - python-numpy + - python-numpy-doc + - python-twisted + - python-openssl + - python-pexpect + - python-pyasn1 + - python-pysnmp4 + - python-sqlobject + - python-subversion + - python-urwid + - python-xmpp + - python-beautifulsoup + - python-chardet + - python-kerberos + - python-mako + - python-rpm + - python-selinux + - python-setuptools + - python-simplejson + - python-sqlite + - python-sqlitecachec + - python-urlgrabber + - python-cups + - python-notify + - python-tk + - python-requests + - jython + - jython-doc + +- name: Install rake + apt: + name: rake + state: present + cache_valid_time: 3600 + +- name: Install tcl/tk + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - tcl + - tcl-dev + - tcl8.5 + - tk + - tk-dev + +- name: Install lua libs (when not Debian Buster) + when: not(ansible_distribution == 'Debian' and ansible_distribution_version == 'buster/sid') + apt: + name: love + state: present + cache_valid_time: 3600 + +- name: Install misc. scripting + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - swig + - gawk + - mawk + - m4 + +- name: Install AVR tools + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - gcc-avr + - binutils-avr + - gdb-avr + - avrdude + - avrdude-doc + - simulavr + - avarice + - avr-libc + - avra + - avrp + - uisp + - usbprog + +- name: Install misc. libraries + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - libldap2-dev + - libpam0g-dev + - comerr-dev + - e2fslibs-dev + - libcap-dev + - libattr1-dev + - libacl1-dev + - libselinux1-dev + - libpcre3-dev + - libapt-pkg-dev + - linux-libc-dev + - libkrb5-dev + - libreadline-dev + - libncurses5-dev + - libncursesw5-dev + - libghc-mtl-dev + - libghc-mtl-prof + - libghc-mtl-doc + - libghc-network-dev + - libghc-parsec3-dev + - libboost-dev + - zlib1g-dev + - libbz2-dev + - libcurl4-gnutls-dev + - libexpat1-dev + - libglib2.0-dev + - libgmp3-dev + - libsasl2-dev + - libsctp-dev + - libsqlite3-dev + - libssl-dev + - libssl-dev + - libxml2-dev + - libxslt1-dev + - ss-dev + - mesa-common-dev + - uuid-dev + - libprotobuf-c-dev + - libprotobuf-dev + - libffi-dev + - libidl-dev + - libelf-dev + - libdw-dev + - libaudit-dev + - libgmp-dev + - libmpfr-dev + - libmpc-dev + - libfplll-dev + +- name: Install misc. libraries (Ubuntu) + when: ansible_distribution == 'Ubuntu' + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - libgnutls-dev + +- name: Install x11 libraries + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - xorg-dev + - xutils-dev + - libgtk2.0-dev + - libqt4-dev + - libsdl1.2-dev + - freeglut3-dev + - libgl1-mesa-dev + - libglu1-mesa-dev + - libghc-x11-dev + - libghc-x11-doc + - libghc-x11-prof + - libgtkmm-2.4-dev + - glade + +- name: Install cross-platform toolchains (Ubuntu) + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - gcc-5-arm-linux-gnueabi + - gcc-5-mips-linux-gnu + - gcc-5-mipsel-linux-gnu + - gcc-5-powerpc-linux-gnu + - gcc-5-sparc64-linux-gnu + - gcc-5-s390x-linux-gnu + when: ansible_distribution == 'Ubuntu' + +- name: Install cross-platform toolchains (Debian) + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - gcc-6-arm-linux-gnueabi + - gcc-6-mips-linux-gnu + - gcc-6-mipsel-linux-gnu + - gcc-6-powerpc-linux-gnu + - gcc-6-sparc64-linux-gnu + - gcc-6-s390x-linux-gnu + when: ansible_distribution == 'Debian' + +- name: Install misc. development tools + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - gperf + - gettext + - check + - dejagnu + - doxygen + - exuberant-ctags + - indent + - cutils + - chrpath + - openmpi-bin + - openmpi-doc + - protobuf-compiler + - protobuf-c-compiler + - dos2unix diff --git a/roles/general-use/tasks/main.yml b/roles/general-use/tasks/main.yml index e5a38b3..3dd1ba3 100644 --- a/roles/general-use/tasks/main.yml +++ b/roles/general-use/tasks/main.yml @@ -58,9 +58,22 @@ - sqlite3 - sqlite3-doc - postgresql-client - - mysql-client - db-util +- name: Install database tools (Ubuntu) + when: ansible_distribution == 'Ubuntu' + apt: + name: mysql-client + state: present + cache_valid_time: 3600 + +- name: Install database tools (Debian) + when: ansible_distribution == 'Debian' + apt: + name: default-mysql-client + state: present + cache_valid_time: 3600 + - name: Install xml tools apt: name: '{{ item }}' @@ -78,7 +91,6 @@ - opensp - sgml2x - sgmltools-lite - - sp - tidy - xalan @@ -164,8 +176,8 @@ - dvdrip - ffmpeg -- name: Install multimedia tools (Debian) - when: ansible_distribution == 'Debian' +- name: Install multimedia tools (Debian Stretch) + when: ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch' apt: name: '{{ item }}' state: present @@ -173,6 +185,15 @@ with_items: - libav-tools +- name: Install multimedia tools (Debian Buster) + when: ansible_distribution == 'Debian' and ansible_distribution_release == 'buster' + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - ffmpeg + - name: Install torrent tools apt: name: '{{ item }}' @@ -189,7 +210,6 @@ with_items: - mutt - alpine - - fetchmail - spamassassin - tin - irssi @@ -197,6 +217,13 @@ - weechat-plugins - newsbeuter +- name: Install communication tools (not Debian Buster) + when: not(ansible_distribution == 'Debian' and ansible_distribution_version == 'buster/sid') + apt: + name: fetchmail + state: present + cache_valid_time: 3600 + - name: Install serial tools apt: name: '{{ item }}' @@ -214,9 +241,15 @@ with_items: - qemu - qemu-kvm - - libvirt-bin - bridge-utils +- name: Install virtualization tools (Ubuntu) + when: ansible_distribution != 'Debian' + apt: + name: libvirt-bin + state: present + cache_valid_time: 3600 + - name: Install misc. tools apt: name: '{{ item }}' diff --git a/roles/gui/tasks/main.yml b/roles/gui/tasks/main.yml index 429c9de..90ba427 100644 --- a/roles/gui/tasks/main.yml +++ b/roles/gui/tasks/main.yml @@ -340,3 +340,13 @@ name: idle-python2.7 state: present cache_valid_time: 3600 + +- name: Install development environments + apt: + name: '{{ item }}' + state: present + cache_valid_time: 3600 + with_items: + - eclipse + - monodevelop + - code