Skip to content
Snippets Groups Projects
Commit 1aeecbd5 authored by Chris Hines's avatar Chris Hines
Browse files

make things work on ubuntu

parent 23d321fa
No related branches found
No related tags found
No related merge requests found
Showing
with 605 additions and 46 deletions
---
- name: restart rpcbind
service: name=rpcbind state=restarted
sudo: true
- name: restart idmap
service: name={{ item }} state=restarted
with_items:
- rpcbind
- rpcidmapd
service: name=rpcidmapd state=restarted
sudo: true
when: ansible_os_family == "RedHat"
......@@ -3,17 +3,12 @@
service: name=fail2ban state=stopped
sudo: true
- name: restart idmap
service: name={{ item }} state=restarted
with_items:
- rpcbind
- rpcidmapd
sudo: true
- name: "Mounting NFS mounts"
mount: name={{ item.name }} src={{ item.ipv4 }}:{{ item.src }} fstype={{ item.fstype }} opts={{ item.opts }} state=mounted
with_items: exportList
notify: "restart authentication"
notify: "restart rpcbind"
notify: "restart idmap"
sudo: true
ignore_errors: true
......@@ -30,6 +25,7 @@
with_items: exportList
notify: "restart authentication"
notify: "restart idmap"
notify: "restart rpcbind"
sudo: true
when: exportList is defined and firstMount | failed
......
---
- include: yumPackages.yml
when: ansible_os_family == "RedHat"
- include: aptPackages.yml
when: ansible_os_family == "Debian"
- name: setup idmap.conf
template: src=idmapd.conf.j2 dest=/etc/idmapd.conf
......
---
- name: install nfs kernel server
apt: name=nfs-kernel-server state=latest
sudo: true
when: ansible_os_family == "Debian"
- include: mkFilesystem.yml
- include: startServer.yml
......@@ -13,6 +13,18 @@
- bzip2-devel
- mysql
- mysql-devel
when: ansible_os_family == "RedHat"
- name: install deps
apt: name={{ item }} state=installed update_cache=yes
sudo: true
with_items:
- gcc
- wget
- libssl-dev
- libpam0g-dev
- libbz2-dev
when: ansible_os_family == "Debian"
- name: get munge
shell: wget https://munge.googlecode.com/files/munge-{{ munge_version }}.tar.bz2
......@@ -26,9 +38,25 @@
args:
chdir: /tmp
creates: /root/rpmbuild/RPMS/x86_64/munge-{{ munge_version }}-1.el6.x86_64.rpm
when: ansible_os_family == "RedHat"
- name: untar munge
shell: tar jxf /tmp/munge-{{ munge_version }}.tar.bz2
sudo: true
args:
chdir: /tmp
creates: /tmp/munge-{{ munge_version }}
when: ansible_os_family == "Debian"
- name: build munge
shell: configure && make && make install
sudo: true
args:
chdir: /tmp/munge-{{ munge_version }}
when: ansible_os_family == "Debian"
- name: get slurm
shell: wget http://www.schedmd.com/download/archive/slurm-{{ slurm_version }}.tar.bz2
shell: wget http://www.schedmd.com/download/latest/slurm-{{ slurm_version }}.tar.bz2
args:
chdir: /tmp
creates: /tmp/slurm-{{ slurm_version }}.tar.bz2
......@@ -36,6 +64,7 @@
- name: check munge installation
shell: rpm -qa munge
register: munge_installed
when: ansible_os_family == "RedHat"
- name: install munge deps
shell: rpm -i /root/rpmbuild/RPMS/x86_64/munge-libs-{{ munge_version }}-1.el6.x86_64.rpm /root/rpmbuild/RPMS/x86_64/munge-{{ munge_version }}-1.el6.x86_64.rpm /root/rpmbuild/RPMS/x86_64/munge-devel-{{ munge_version }}-1.el6.x86_64.rpm
......
......@@ -11,3 +11,8 @@
service: name=slurmdbd state=restarted
sudo: true
- name: scontrol reconfigure
shell: sleep 10 ; scontrol reconfigure
sudo: true
delegate_to: "{{ slurmctrl }}"
run_once: true
---
- name: create slurm group
group: name=slurm system=yes gid=497
sudo: true
- name: create slurm user
user: name=slurm group=slurm system=yes createhome=no uid=497
sudo: true
- name: make sure slurm conf dir exists
file: dest=/etc/slurm state=directory
sudo: true
- name: create data directory
file: path="{{ slurmdatadir }}" state=directory owner=slurm group=slurm mode=755
sudo: true
- name: create log directory
shell: mkdir -p {{ slurmddebug.log | dirname }}; chown slurm:slurm {{ slurmddebug.log | dirname }}
args:
creates: "{{ slurmddebug.log | dirname }}"
sudo: true
when: slurmddebug is defined and slurmddebug.log
- name: copy rpms
copy: src=/tmp/rpmbuild dest=/tmp
sudo: true
......@@ -7,6 +31,28 @@
shell: "rpm --install /tmp/rpmbuild/RPMS/x86_64/munge*{{ munge_version }}*rpm"
sudo: true
ignore_errors: true
when: ansible_os_family == "RedHat"
- name: install deps
apt: name={{ item }} state=installed update_cache=yes
sudo: true
with_items:
- gcc
- wget
- libssl-dev
- libpam0g-dev
- libbz2-dev
- make
- alien
when: ansible_os_family == "Debian"
- include: installMungeFromSource.yml
when: ansible_os_family == "Debian"
- name: install munge key
template: src=munge_key.j2 dest=/etc/munge/munge.key owner=munge mode=600
sudo: true
notify: restart munge
- name: install perl
yum: name={{ item }} state=latest
......@@ -14,51 +60,40 @@
- perl
- perl-DBI
sudo: true
when: ansible_os_family == "RedHat"
- name: create slurm group
group: name=slurm system=yes
- name: install perl
apt: name={{ item }} state=latest
with_items:
- perl
- libdbi-perl
sudo: true
when: ansible_os_family == "Debian"
- name: create slurm user
user: name=slurm group=slurm system=yes createhome=no
sudo: true
- include: installSlurmFromSource.yml
when: ansible_os_family == "Debian"
- name: install slurm rpms
shell: "rpm --install /tmp/rpmbuild/RPMS/x86_64/slurm*{{ slurm_version }}*rpm"
sudo: true
ignore_errors: true
- name: install munge key
template: src=munge_key.j2 dest=/etc/munge/munge.key
sudo: true
notify: restart munge
- name: start munge
service: name=munge state=started
sudo: true
when: ansible_os_family == "RedHat"
- name: install slurm.conf
template: src=slurm.conf.j2 dest=/etc/slurm/slurm.conf
sudo: true
notify: restart slurm
when: slurm_use_vpn==False
- name: install slurm.conf
template: src=slurm-vpn.conf.j2 dest=/etc/slurm/slurm.conf
sudo: true
notify: restart slurm
when: slurm_use_vpn==True
- name: create data directory
file: path="{{ slurmdatadir }}" state=directory owner=slurm group=slurm mode=755
sudo: true
- name: create log directory
shell: mkdir -p {{ slurmddebug.log | dirname }}; chown slurm:slurm {{ slurmddebug.log | dirname }}
args:
creates: "{{ slurmddebug.log | dirname }}"
- name: start munge
service: name=munge state=started
sudo: true
when: slurmddebug is defined and slurmddebug.log
- name: start slurm
service: name=slurm state=started
......
- name: "restart sshd"
service: name=sshd state=restarted
sudo: true
when: ansible_os_family == "RedHat"
- name: "restart ssh"
service: name=ssh state=restarted
sudo: true
when: ansible_os_family == "Debian"
......@@ -6,7 +6,9 @@
line: "ChallengeResponseAuthentication yes"
backrefs: yes
sudo: true
notify: restart sshd
notify:
- restart sshd
- restart ssh
- name: "Enable Challenge Response"
lineinfile:
......@@ -16,5 +18,19 @@
line: "PasswordAuthentication yes"
backrefs: yes
sudo: true
notify: restart sshd
notify:
- restart sshd
- restart ssh
- name: "Disable Challenge Response"
lineinfile:
args:
dest: /etc/ssh/sshd_config
regexp: "PasswordAuthentication yes"
line: "PasswordAuthentication no"
backrefs: yes
sudo: true
notify:
- restart sshd
- restart ssh
......@@ -6,3 +6,8 @@
template: src=generic_slurm_config.json.j2 dest=/tmp/Strudel_Desktops.json
delegate_to: 127.0.0.1
run_once: True
- name: "Temlate TurboVNC Strudel config"
template: src=turbo_slurm_config.json.j2 dest=/tmp/Strudel_TurboVNC_Desktops.json
delegate_to: 127.0.0.1
run_once: True
......@@ -268,7 +268,7 @@
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"mkdir ~/.vnc ; rm -f ~/.vnc/clearpass ; touch ~/.vnc/clearpass ; chmod 600 ~/.vnc/clearpass ; passwd=\"'$'\"( dd if=/dev/urandom bs=1 count=8 2>/dev/null | md5sum | cut -b 1-8 ) ; echo \"'$'\"passwd > ~/.vnc/clearpass ; module load turbovnc ; cat ~/.vnc/clearpass | vncpasswd -f > ~/.vnc/passwd ; chmod 600 ~/.vnc/passwd ; echo -e '#!/bin/bash\\n/usr/local/bin/vncsession --vnc turbovnc --geometry {resolution} ; sleep 36000000 ' | sbatch -p batch -N {nodes} -n {ppn} --time={hours}:00:00 -J desktop_{username} -o .vnc/slurm-%j.out \"",
"cmd": "\"mkdir ~/.vnc ; rm -f ~/.vnc/clearpass ; touch ~/.vnc/clearpass ; chmod 600 ~/.vnc/clearpass ; passwd=\"'$'\"( dd if=/dev/urandom bs=1 count=8 2>/dev/null | md5sum | cut -b 1-8 ) ; echo \"'$'\"passwd > ~/.vnc/clearpass ; cat ~/.vnc/clearpass | vncpasswd -f > ~/.vnc/passwd ; chmod 600 ~/.vnc/passwd ; echo -e '#!/bin/bash\\nvncserver ; sleep 36000000 ' | sbatch -p batch -N {nodes} -n {ppn} --time={hours}:00:00 -J desktop_{username} -o .vnc/slurm-%j.out \"",
"failFatal": true,
"formatFatal": false,
"host": "login",
......@@ -345,7 +345,7 @@
"host": "exec",
"loop": false,
"regex": [
"^.*?started on display \\S+(?P<vncDisplay>:[0-9]+)\\s*$"
"^.*?New 'X' desktop is \\S+(?P<vncDisplay>:[0-9]+)\\s*$"
],
"requireMatch": true
},
......@@ -449,4 +449,4 @@
}
}
}
]
\ No newline at end of file
]
[
[
"GenericDesktops"
],
{
"GenericDesktops": {
"__class__": "siteConfig",
"__module__": "siteConfig",
"agent": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": true,
"cmd": "{sshBinary} -A -c {cipher} -t -t -oStrictHostKeyChecking=no -l {username} {execHost} \"echo agent_hello; bash \"",
"failFatal": true,
"formatFatal": false,
"host": "local",
"loop": false,
"regex": [
"agent_hello"
],
"requireMatch": true
},
"authURL": null,
"authorizedKeysFile": null,
"dbusSessionBusAddress": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} 'export DISPLAY={vncDisplay};timeout 15 /usr/local/bin/cat_dbus_session_file.sh'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^DBUS_SESSION_BUS_ADDRESS=(?P<dbusSessionBusAddress>.*)$"
],
"requireMatch": true
},
"defaults": {
"jobParams_hours": 48,
"jobParams_mem": 4,
"jobParams_ppn": 1
},
"directConnect": true,
"displayStrings": {
"__class__": "sshKeyDistDisplayStrings",
"__module__": "siteConfig",
"createNewKeyDialogNewPassphraseEmptyForbidden": "Sorry, empty passphrases are forbidden.",
"createNewKeyDialogNewPassphraseMismatch": "Passphrases don't match!",
"createNewKeyDialogNewPassphraseTooShort": "Passphrase is too short.",
"helpEmailAddress": "help@massive.org.au",
"networkError": "It looks like a network error has occured. You may be able to resume your work by logging in again.",
"newPassphrase": "It looks like this is the first time you're using the CVL on this\ncomputer. To use the CVL, the launcher will generate a local\npassphrase protected key on your computer which is used to\nauthenticate you and set up your remote CVL environment.\n\nPlease enter a new passphrase (twice to avoid typos) to protect your local key. \nAfter you've done this, your passphrase will be the primary method of\nauthentication for the launcher.\n\nWHY?\n\nThis new method of authentication allows you to create file system\nmounts to remote computer systems, and in the future it will support\nlaunching remote HPC jobs.",
"newPassphraseEmptyForbidden": "Sorry, empty passphrases are forbidden.\nIt looks like this is the first time you're using the CVL on this\ncomputer. To use the CVL, the launcher will generate a local\npassphrase protected key on your computer which is used to\nauthenticate you and set up your remote CVL environment.\n\nPlease enter a new passphrase (twice to avoid typos) to protect your local key. \nAfter you've done this, your passphrase will be the primary method of\nauthentication for the launcher.\n\nWHY?\n\nThis new method of authentication allows you to create file system\nmounts to remote computer systems, and in the future it will support\nlaunching remote HPC jobs.",
"newPassphraseMismatch": "Sorry, the two passphrases you entered don't match.\nIt looks like this is the first time you're using the CVL on this\ncomputer. To use the CVL, the launcher will generate a local\npassphrase protected key on your computer which is used to\nauthenticate you and set up your remote CVL environment.\n\nPlease enter a new passphrase (twice to avoid typos) to protect your local key. \nAfter you've done this, your passphrase will be the primary method of\nauthentication for the launcher.\n\nWHY?\n\nThis new method of authentication allows you to create file system\nmounts to remote computer systems, and in the future it will support\nlaunching remote HPC jobs.",
"newPassphraseTitle": "Please enter a new passphrase",
"newPassphraseTooShort": "Sorry, the passphrase must be at least six characters.\nIt looks like this is the first time you're using the CVL on this\ncomputer. To use the CVL, the launcher will generate a local\npassphrase protected key on your computer which is used to\nauthenticate you and set up your remote CVL environment.\n\nPlease enter a new passphrase (twice to avoid typos) to protect your local key. \nAfter you've done this, your passphrase will be the primary method of\nauthentication for the launcher.\n\nWHY?\n\nThis new method of authentication allows you to create file system\nmounts to remote computer systems, and in the future it will support\nlaunching remote HPC jobs.",
"passphrasePrompt": "Please enter the passphrase for your SSH key",
"passphrasePromptIncorrect": "Sorry, that passphrase was incorrect.\nPlease enter the passphrase for you SSH Key\nIf you have forgoten the passphrase for you key, you may need to delete it and create a new key.\nYou can find this option under the Identity menu.\n",
"passphrasePromptIncorrectl": "Sorry, that passphrase was incorrect. Please enter the passphrase for your ssh key",
"passwdPrompt": "Please enter the password for your CVL account.\nThis is the password you entered when you requested an account\nat the website https://web.cvl.massive.org.au/users",
"passwdPromptIncorrect": "Sorry, that password was incorrect.\nPlease enter the password for your CVL account.\nThis is the password you entered when you requested an account\nat the website https://web.cvl.massive.org.au/users",
"persistentMessage": "Would you like to leave your current session running so that you can reconnect later?",
"persistentMessagePersist": "Leave it running",
"persistentMessageStop": "Stop the desktop",
"qdelQueuedJob": "It looks like you've been waiting for a job to start.\nDo you want me to delete the job or leave it in the queue so you can reconnect later?\n",
"qdelQueuedJobNOOP": "Leave it in the queue (I'll reconnect later)",
"qdelQueuedJobQdel": "Delete the job",
"reconnectMessage": "An Existing Desktop was found. Would you like to reconnect or kill it and start a new desktop?",
"reconnectMessageNo": "New desktop",
"reconnectMessageYes": "Reconnect",
"temporaryKey": "\nWould you like to use the launchers old behaviour (entering a password every time you start a new desktop) or try the new behaviour (creating an ssh key pair and entering a passphrase the first time you use the launcher after reboot.)\n\nPasswords are recomended if this is a shared user account.\n\nSSH Keys are recommended if you are the only person who uses this account.\n\nThis option can be changed from the Identity menu.\n",
"temporaryKeyNo": "Use my SSH Key",
"temporaryKeyYes": "Use my password every time"
},
"displayWebDavInfoDialogOnRemoteDesktop": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} 'echo -e \\\"You can access your local home directory in Nautilus File Browser, using the location:\\n\\ndav://{localUsername}@localhost:{remoteWebDavPortNumber}/{homeDirectoryWebDavShareName}\\n\\nYour one-time password is {vncPasswd}\\\" > ~/.vnc/\\$(hostname){vncDisplay}-webdav.txt'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"execHost": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"squeue -j {jobidNumber} -o \"%N\" | tail -n -1 | cut -f 1 -d ',' | xargs -iname getent hosts name | cut -f 1 -d ' ' \"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^(?P<execHost>.*)$"
],
"requireMatch": true
},
"getProjects": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"groups | sed 's@ @\\n@g'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^\\s*(?P<group>\\S+)\\s*$"
],
"requireMatch": true
},
"imageid": null,
"instanceFlavour": null,
"listAll": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "squeue -u {username} -o \\\"%i %L\\\" | tail -n -1",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"(?P<jobid>(?P<jobidNumber>[0-9]+)) (?P<remainingWalltime>.*)$"
],
"requireMatch": false
},
"loginHost": "{{ loginNode }}",
"messageRegexs": [
{
"__class__": "__regex__",
"pattern": "^INFO:(?P<info>.*(?:\n|\r\n?))"
},
{
"__class__": "__regex__",
"pattern": "^WARN:(?P<warn>.*(?:\n|\r\n?))"
},
{
"__class__": "__regex__",
"pattern": "^ERROR:(?P<error>.*(?:\n|\r\n?))"
}
],
"onConnectScript": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} 'module load keyutility ; mountUtility.py'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"openWebDavShareInRemoteFileBrowser": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} \\\"export DBUS_SESSION_BUS_ADDRESS={dbusSessionBusAddress};/usr/bin/gconftool-2 --type=Boolean --set /apps/nautilus/preferences/always_use_location_entry true {ampersand}{ampersand} DISPLAY={vncDisplay} xdg-open dav://{localUsername}@localhost:{remoteWebDavPortNumber}/{homeDirectoryWebDavShareName}\\\"\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"otp": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "'cat ~/.vnc/clearpass'",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^(?P<vncPasswd>\\S+)$"
],
"requireMatch": true
},
"provision": null,
"relabel": {},
"runSanityCheck": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": null,
"failFatal": false,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"running": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"scontrol show job {jobidNumber}\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"JobState=RUNNING"
],
"requireMatch": true
},
"setDisplayResolution": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": null,
"failFatal": false,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"showStart": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": null,
"failFatal": false,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"siteRanges": {
"jobParams_hours": [
1,
336
],
"jobParams_mem": [
1,
1024
],
"jobParams_nodes": [
1,
10
],
"jobParams_ppn": [
1,
12
]
},
"startServer": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"mkdir ~/.vnc ; rm -f ~/.vnc/clearpass ; touch ~/.vnc/clearpass ; chmod 600 ~/.vnc/clearpass ; passwd=\"'$'\"( dd if=/dev/urandom bs=1 count=8 2>/dev/null | md5sum | cut -b 1-8 ) ; echo \"'$'\"passwd > ~/.vnc/clearpass ; module load turbovnc ; cat ~/.vnc/clearpass | vncpasswd -f > ~/.vnc/passwd ; chmod 600 ~/.vnc/passwd ; echo -e '#!/bin/bash\\n/usr/local/bin/vncsession --vnc turbovnc --geometry {resolution} ; sleep 36000000 ' | sbatch -p batch -N {nodes} -n {ppn} --time={hours}:00:00 -J desktop_{username} -o .vnc/slurm-%j.out \"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^Submitted batch job (?P<jobid>(?P<jobidNumber>[0-9]+))$"
],
"requireMatch": true
},
"stop": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"scancel {jobidNumber}\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"stopForRestart": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"scancel {jobidNumber}\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"tunnel": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": true,
"cmd": "{sshBinary} -A -c {cipher} -t -t -oStrictHostKeyChecking=no -L {localPortNumber}:localhost:{remotePortNumber} -l {username} {execHost} \"echo tunnel_hello; bash\"",
"failFatal": true,
"formatFatal": false,
"host": "local",
"loop": false,
"regex": [
"tunnel_hello"
],
"requireMatch": true
},
"username": null,
"visibility": {
"advancedCheckBoxPanel": true,
"cipherPanel": "Advanced",
"debugCheckBoxPanel": "Advanced",
"jobParams_hours": true,
"jobParams_nodes": true,
"jobParams_ppn": true,
"label_hours": true,
"label_nodes": true,
"label_ppn": true,
"resolutionPanel": "Advanced",
"resourcePanel": "Advanced",
"usernamePanel": true
},
"vncDisplay": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"cat .vnc/slurm-{jobidNumber}.out\"",
"failFatal": true,
"formatFatal": false,
"host": "exec",
"loop": false,
"regex": [
"^.*?started on display \\S+(?P<vncDisplay>:[0-9]+)\\s*$"
],
"requireMatch": true
},
"webDavCloseWindow": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} 'export DBUS_SESSION_BUS_ADDRESS={dbusSessionBusAddress};export DISPLAY={vncDisplay}; wmctrl -F -i -c {webDavWindowID}'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"webDavIntermediatePort": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/local/bin/get_ephemeral_port.py\"",
"failFatal": true,
"formatFatal": false,
"host": "exec",
"loop": false,
"regex": [
"^(?P<intermediateWebDavPortNumber>[0-9]+)$"
],
"requireMatch": true
},
"webDavMount": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} \\\"export DBUS_SESSION_BUS_ADDRESS={dbusSessionBusAddress};echo \\\\\\\"import pexpect;child = pexpect.spawn('gvfs-mount dav://{localUsername}@localhost:{remoteWebDavPortNumber}/{homeDirectoryWebDavShareName}');child.expect('Password: ');child.sendline('{vncPasswd}');child.expect(pexpect.EOF);child.close();print 'gvfs-mount returned ' + str(child.exitstatus)\\\\\\\" {pipe} python\\\"\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^gvfs-mount returned (?P<webDavMountingExitCode>.*)$"
],
"requireMatch": true
},
"webDavRemotePort": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/local/bin/get_ephemeral_port.py\"",
"failFatal": true,
"formatFatal": false,
"host": "exec",
"loop": false,
"regex": [
"^(?P<remoteWebDavPortNumber>[0-9]+)$"
],
"requireMatch": true
},
"webDavTunnel": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": true,
"cmd": "{sshBinary} -A -c {cipher} -t -t -oStrictHostKeyChecking=no -oExitOnForwardFailure=yes -R {remoteWebDavPortNumber}:localhost:{localWebDavPortNumber} -l {username} {execHost} \"echo tunnel_hello; bash\"",
"failFatal": true,
"formatFatal": false,
"host": "local",
"loop": false,
"regex": [
"tunnel_hello"
],
"requireMatch": true
},
"webDavUnmount": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} 'export DBUS_SESSION_BUS_ADDRESS={dbusSessionBusAddress};export DISPLAY={vncDisplay};timeout 1 gvfs-mount --unmount-scheme dav'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
null
],
"requireMatch": false
},
"webDavWindowID": {
"__class__": "cmdRegEx",
"__module__": "siteConfig",
"async": false,
"cmd": "\"/usr/bin/ssh {execHost} 'export DBUS_SESSION_BUS_ADDRESS={dbusSessionBusAddress}; DISPLAY={vncDisplay} xwininfo -root -tree'\"",
"failFatal": true,
"formatFatal": false,
"host": "login",
"loop": false,
"regex": [
"^\\s+(?P<webDavWindowID>\\S+)\\s+\"{homeDirectoryWebDavShareName}.*Browser.*$"
],
"requireMatch": true
}
}
}
]
\ No newline at end of file
......@@ -2,11 +2,17 @@
#- include_vars: "{{ hostvars[ansible_hostname]['ansible_distribution'] }}_{{ ansible_architecture }}.yml"
- include_vars: "{{ ansible_distribution }}_{{ ansible_architecture }}.yml"
# Use mate DE on systems that have moved to gnome3, since there is no gpu acceleration by default on NeCTAR openstack
# Trusty (Ubuntu 14.04 LTS) needs repos added. Wheezy (Debian Stable) gets mate from backports, Utopic (Ubuntu 14.10) Jessie (Debian testing) and Sid (Debian unstable) get it by default
- name: add repos apt
shell: "add-apt-repository -y 'deb {{ item }} {{ ansible_distribution_release }} main' "
shell: "add-apt-repository -y ppa:ubuntu-mate-dev/ppa"
sudo: true
with_items: apt_repos
when: ansible_os_family == 'Debian'
when: ansible_distribution_release == 'trusty'
- name: add repos apt
shell: "add-apt-repository -y ppa:ubuntu-mate-dev/trusty-mate"
sudo: true
when: ansible_distribution_release == 'trusty'
- name: install system packages apt
apt: name={{ item }} state=installed update_cache=true force=yes
......
......@@ -2,6 +2,3 @@
system_packages:
- mate-desktop-environment
- tightvncserver
apt_repos:
- "http://repo.mate-desktop.org/archive/1.8/ubuntu"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment