From ebd82cf4a642a7a1583b24cb0f830ad60535f21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertrand=20N=C3=A9ron?= <bneron@pasteur.fr> Date: Thu, 2 Dec 2021 15:11:52 +0100 Subject: [PATCH] update playbook for 2021 course migrate to ubuntu update list of software --- .gitlab-ci.yml | 2 +- Docker/Dockerfile | 8 +- Inventory/group_vars/all | 44 +++----- Inventory/hosts | 2 +- README.md | 52 ++++----- phylogeny.yml | 4 +- roles/gensoft/tasks/main.yml | 18 ++-- .../files/usr/share/applications/lsd.desktop | 10 -- roles/lsd/tasks/main.yml | 18 ---- roles/pastml/tasks/main.yml | 4 +- roles/system/tasks/main.yml | 102 ++++++++++-------- roles/tcoffee/tasks/main.yml | 63 ----------- 12 files changed, 106 insertions(+), 221 deletions(-) delete mode 100644 roles/lsd/files/usr/share/applications/lsd.desktop delete mode 100644 roles/lsd/tasks/main.yml delete mode 100644 roles/tcoffee/tasks/main.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 37adae5..3139e79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ stages: testing: stage: test - image: registry-gitlab.pasteur.fr/hub-courses/phylogeny-machines/phylogeny-ci + image: registry-gitlab.pasteur.fr/hub-courses/phylogeny-machines/phylogeny_ci script: - chmod 755 $CI_PROJECT_DIR - ansible-playbook --limit gitlab phylogeny.yml diff --git a/Docker/Dockerfile b/Docker/Dockerfile index 91cc703..0e1fb5e 100644 --- a/Docker/Dockerfile +++ b/Docker/Dockerfile @@ -1,10 +1,8 @@ -FROM centos:centos7 +FROM ubuntu:focal MAINTAINER Bertrand Neron <bneron@pasteur.fr> USER root -RUN yum clean all &&\ - yum update -y &&\ - yum install -y epel-release &&\ - yum install -y ansible \ No newline at end of file +RUN apt-get update -y &&\ + apt-get install -y ansible diff --git a/Inventory/group_vars/all b/Inventory/group_vars/all index c559642..225c88a 100644 --- a/Inventory/group_vars/all +++ b/Inventory/group_vars/all @@ -1,41 +1,29 @@ --- gensoft_packs: - - {name: beast, vers: 'v2.4.7'} + - {name: beast, vers: 'v2.6.2'} + - {nane: beagle, vers: '5.1'} - {name: BMGE, vers: '1.12'} - {name: Clustal-Omega, vers: '1.2.4'} - {name: ClustalW, vers: '2.1'} - {name: fastme, vers: '2.1.6.1'} - - {name: FigTree, vers: '1.4.3'} + - {name: FigTree, vers: '1.4.4'} + - {name: goalign, vers: '0.3.5'} + - {name: gotree, vers: '0.4.2'} - {name: gblocks, vers: '0.91b'} - - {name: IQ-TREE, vers: '1.6.3'} + - {name: iq-tree, vers: '2.0.6'} - {name: jmodeltest2, vers: '2.1.10'} - - {name: mafft, vers: '7.407'} #7.407 - - {name: mrbayes, vers: '3.2.6'} + - {name: lsd2, vers: '1.9.7'} + - {name: mafft, vers: '7.467'} #7.407 + - {name: mrbayes, vers: '3.2.7'} - {name: msaprobs, vers: '1.0.5'} - {name: muscle, vers: '3.8.31'} - - {name: paml, vers: '4.9e'} + - {name: paml, vers: '4.9j'} - {name: pamlX, vers: '1.3.1'} - {name: phylip, vers: '3.67'} - - {name: phyml, vers: '3.1'} - - {name: seaview, vers: '4.6.2.1'} - -gensoft_menu: - - {pack_name: seaview, bin_name: seaview, vers: '4.6.2.1', term: 'false'} - - {pack_name: FigTree, bin_name: figtree, vers: '1.4.3', term: 'false'} - - {pack_name: pamlX, bin_name: pamlX, vers: '1.3.1', term: 'false'} - - {pack_name: beast, bin_name: beast, vers: 'v2.1.2', term: 'true'} - - {pack_name: ClustalW, bin_name: clustalw, vers: '2.1', term: 'true'} - - {pack_name: fastme, bin_name: fastme, vers: '2.1.4', term: 'true'} - - {pack_name: gblocks, bin_name: Gblocks, vers: '0.91b', term: 'true'} - - {pack_name: mafft, bin_name: mafft, vers: '7.310', term: 'true'} - - {pack_name: mrbayes, bin_name: mb, vers: '3.2.6', term: 'true'} - - {pack_name: phylip, bin_name: protpars, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: dnapars, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: protdist, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: dnadist, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: neighbor, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: consense, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: drawtree, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: drawgram, vers: '3.67', term: 'true'} - - {pack_name: phylip, bin_name: seqboot, vers: '3.67', term: 'true'} + - {name: phyml, vers: '3.3.20190909'} + - {name: raxml, vers: '8.2.12'} + - {name: raxml-ng, vers: '1.0'} + - {name: seaview, vers: '5.0.1'} + - {name: tracer, vers: '1.7.1'} + - {name: treetime, vers: '0.7.4'} diff --git a/Inventory/hosts b/Inventory/hosts index d8a244f..320fc59 100644 --- a/Inventory/hosts +++ b/Inventory/hosts @@ -8,6 +8,6 @@ 157.99.191.[172:175] -[phylogeny-ci] +[phylogeny_ci] gitlab ansible_connection=local diff --git a/README.md b/README.md index b14ea68..10d948d 100644 --- a/README.md +++ b/README.md @@ -6,22 +6,27 @@ It also use *gensoft* yum repository then it will work for hosts operating *Cent The installed packages are: - beast +- beagle - bmge -- clustalW - clustaO +- clustalW - fastme - FigTree - IQ-TREE +- goalign +- gotree - jmodeltest2 +- lsd - mafft -- mr bayes +- mrbayes - msaprobs - muscle -- palm and pamlx +- palm +- raxml +- raxml-ng - seaview -- tcoffee +- tracer - pastml -- lsd and - the libreoffice suite @@ -44,29 +49,8 @@ and The framework used to install the host is ansible. So if you are not familiar with it, please check the [ansible documentation](http://docs.ansible.com/ansible/latest/index.html). -Ansible need to be installed on the local host, -python >= 2.6, <3 and ssh must be installed on the remote hosts - -## copy your public key to the remote host - -First you have to copy your public shh key on each remote hosts using ssh-copy-id -for instance on host 157.99.191.140: - -``` -ssh-copy-id -i ~/.ssh/id_rsa.pub 157.99.191.140 -/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/bneron/.ssh/id_rsa.pub" -/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed -/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys -bneron@157.99.191.140's password: - -Number of key(s) added: 1 - -Now try logging into the machine, with: "ssh '157.99.191.140'" -and check to make sure that only the key(s) you wanted were added. -``` - -*note: if you want to add key in root account `ssh-copy-id -i ~/.ssh/id_rsa.pub root@157.99.191.140` -which is the default for this ansible playbook.* +Ansible needs to be installed on the local host, +python >= 2.7 or >=3.5 and ssh must be installed on the remote hosts ## play the ansible playbook @@ -81,17 +65,17 @@ vim Inventory/hosts then run it ``` -ansible-playbook phylogeny.yml +ansible-playbook --limit phylogeny -u formateur --ask-pass --become phylogeny.yml ``` -If you want to play only one or a set of playbook see available tags in phylogeny.yml +If you want to play only one or a set of playbook see available tags in practices.yml then add option `-t <tag>` then run ``` -ansible-playbook -t editors phylogeny.yml +ansible-playbook --limit phylogeny -u formateur --ask-pass --become -t editors phylogeny.yml ``` -# how to installed a new soft +# how to install a new soft # from a gensoft package @@ -106,7 +90,7 @@ just add an item in the gensoft_packs dict located Inventory/group_vars/all file You have to write a new role and add it in the phylogeny.yml playbook and play the role -# add an entry in the phylogenie menu +# add an entry in the phylogeny menu If the entry you want to add is installed via gensoft (see above), you just have to add an item in the gensoft_menu dict located Inventory/group_vars/all files @@ -124,7 +108,7 @@ then play the tag menu ansible-playbook -t menu phylogeny.yml ``` -if i'ts a new gensoft package run the entire role gensoft: +if it's a new gensoft package run the entire role gensoft: ``` ansible-playbook -t gensoft phylogeny.yml diff --git a/phylogeny.yml b/phylogeny.yml index 1a221c1..cb5b2f9 100644 --- a/phylogeny.yml +++ b/phylogeny.yml @@ -1,6 +1,6 @@ --- - name: Install software required by the Phylogeny course - hosts: phylogeny:phylogeny-ci + hosts: phylogeny:phylogeny_ci remote_user: root roles: @@ -8,7 +8,5 @@ - {role: editors, tags: ['editors']} - {role: office, tags: ['office']} - {role: gensoft, tags: ['gensoft']} - - {role: tcoffee, tags: ['tcoffee']} - {role: pastml, tags: ['pastml']} - - {role: lsd, tags: ['lsd']} diff --git a/roles/gensoft/tasks/main.yml b/roles/gensoft/tasks/main.yml index b49f4a1..63fda89 100644 --- a/roles/gensoft/tasks/main.yml +++ b/roles/gensoft/tasks/main.yml @@ -1,10 +1,10 @@ --- - name: Intstalling gensoft scientific pacakges - yum: + ansible.builtin.apt: name: "gensoft-{{ item.name }}-{{ item.vers }}" state: latest - with_items: "{{ gensoft_packs }}" + loop: "{{ gensoft_packs|flatten(levels=1) }}" - name: Load all modules by default system wide @@ -14,10 +14,10 @@ mode: 0644 -- name: Put application in Menu - template: - src: templates/usr/share/applications/template.desktop.j2 - dest: "/usr/share/applications/{{ item.bin_name }}.desktop" - with_items: "{{ gensoft_menu }}" - tags: menu - +# - name: Put application in Menu +# template: +# src: templates/usr/share/applications/template.desktop.j2 +# dest: "/usr/share/applications/{{ item.bin_name }}.desktop" +# with_items: "{{ gensoft_menu }}" +# tags: menu +# diff --git a/roles/lsd/files/usr/share/applications/lsd.desktop b/roles/lsd/files/usr/share/applications/lsd.desktop deleted file mode 100644 index 795de2a..0000000 --- a/roles/lsd/files/usr/share/applications/lsd.desktop +++ /dev/null @@ -1,10 +0,0 @@ -# {{ ansible_managed }} -[Desktop Entry] -Version=v0.3.2-beta -Name=lsd -Exec=/usr/local/bin/lsd -Type=Application -Terminal=true -Categories=Phylogeny; -StartupWMClass=lsd -X-Desktop-File-Install-Version=0.15 \ No newline at end of file diff --git a/roles/lsd/tasks/main.yml b/roles/lsd/tasks/main.yml deleted file mode 100644 index 883be34..0000000 --- a/roles/lsd/tasks/main.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -- name: Set lsd prefix - set_fact: - lsd_prefix: /usr/local - lsd_version: v0.3.3 - -- name: Downloading lsd binary - get_url: - url: "https://github.com/tothuhien/lsd-0.3beta/releases/download/{{ lsd_version }}/lsd_unix" - dest: "{{ lsd_prefix }}/bin/lsd" - mode: 555 - -- name: Put lsd in Menu - copy: - src: files/usr/share/applications/lsd.desktop - dest: /usr/share/applications/lsd.desktop - mode: 0644 diff --git a/roles/pastml/tasks/main.yml b/roles/pastml/tasks/main.yml index e75cf5f..dfbbdaa 100644 --- a/roles/pastml/tasks/main.yml +++ b/roles/pastml/tasks/main.yml @@ -2,10 +2,10 @@ - name: Install Python3 yum: - name: ['python36', 'python36-pip'] + name: ['python3', 'python3-pip'] state: latest - name: Install PastML pip: - executable: pip3.6 + executable: pip3 name: pastml diff --git a/roles/system/tasks/main.yml b/roles/system/tasks/main.yml index bcc4d8e..55e8e6d 100644 --- a/roles/system/tasks/main.yml +++ b/roles/system/tasks/main.yml @@ -1,28 +1,35 @@ --- -- name: Install EPEL repo. - yum: - name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm - state: present +- name: Installing gnupg2 + ansible.builtin.apt: + name: gnupg2 + state: latest + -- name: Import EPEL GPG key. - rpm_key: - key: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }} +- name: Download the gensoft debian packages signing key + ansible.builtin.apt_key: + url: http://mirrors.web.pasteur.fr/gensoft/ubuntu/deb/public.pgp state: present + - name: add gensoft repos - yum_repository: - name: gensoft - description: packages provided by pasteur - baseurl: http://mirrors.web.pasteur.fr/gensoft/rpm/ - gpgcheck: no + ansible.builtin.apt_repository: + filename: gensoft.list + repo: "deb http://mirrors.web.pasteur.fr/gensoft/ubuntu/deb/ /" + update_cache: yes + state: present + +- name: add gensoft private repos + ansible.builtin.apt_repository: + filename: gensoft_private.list + repo: "deb http://mirrors.web.pasteur.fr/gensoft/ubuntu/deb_private/ /" + update_cache: yes + state: present -- name: upgrade all packages - yum: name=* state=latest update_cache=yes - name: install general dependencies - yum: - name: ['zlib-devel', 'readline-devel', 'make', 'unzip', 'tar', 'gensoft-modules-3.3', 'gensoft-gcc-4.9.0' ] + ansible.builtin.apt: + pkg: ['zlib1g-dev', 'libreadline-dev', 'make', 'unzip', 'tar', 'gensoft-modules-4.4.0', 'gensoft-gcc-10.1.0' ] state: latest - name: Create gensoft group @@ -39,35 +46,36 @@ shell: /bin/bash state: present -- name: Check whether Phylogeny exist in applications menu" - command: grep -Fq "<Directory>Phylogeny.directory</Directory>" /etc/xdg/menus/applications.menu - register: check_menu - check_mode: no - ignore_errors: yes - changed_when: no - -- name: Create an entry in applications menu - when: check_menu.rc == 1 - blockinfile: - marker: '' - path: /etc/xdg/menus/applications.menu - insertafter: "^.*<!-- End Internet -->.*$" - content: | - <!-- Phylogeny --> - <Menu> - <Name>Phylogeny</Name> - <Directory>Phylogeny.directory</Directory> - <Include> - <And> - <Category>Phylogeny</Category> - <Not><Category>Settings</Category></Not> - </And> - </Include> - </Menu> - <!-- End Phylogeny --> -- name: Create Phylogeny menu - copy: - src: files/usr/share/desktop-directories/Phylogeny.directory - dest: /usr/share/desktop-directories/Phylogeny.directory - mode: 0644 +# - name: Check whether Phylogeny exist in applications menu" +# command: grep -Fq "<Directory>Phylogeny.directory</Directory>" /etc/xdg/menus/applications.menu +# register: check_menu +# check_mode: no +# ignore_errors: yes +# changed_when: no +# +# - name: Create an entry in applications menu +# when: check_menu.rc == 1 +# blockinfile: +# marker: '' +# path: /etc/xdg/menus/applications.menu +# insertafter: "^.*<!-- End Internet -->.*$" +# content: | +# <!-- Phylogeny --> +# <Menu> +# <Name>Phylogeny</Name> +# <Directory>Phylogeny.directory</Directory> +# <Include> +# <And> +# <Category>Phylogeny</Category> +# <Not><Category>Settings</Category></Not> +# </And> +# </Include> +# </Menu> +# <!-- End Phylogeny --> +# +# - name: Create Phylogeny menu +# copy: +# src: files/usr/share/desktop-directories/Phylogeny.directory +# dest: /usr/share/desktop-directories/Phylogeny.directory +# mode: 0644 diff --git a/roles/tcoffee/tasks/main.yml b/roles/tcoffee/tasks/main.yml deleted file mode 100644 index 50af2ba..0000000 --- a/roles/tcoffee/tasks/main.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- - -- name: Set tcoffee prefix - set_fact: - tcoffee_prefix: /usr/local - tcoffee_version: T-COFFEE_installer_Version_12.00.7fb08c2_linux_x64 - -- name: Creating dir source for t-coffee - file: - path: "{{ tcoffee_prefix }}/src/tcoffee" - state: directory - - -- name: Downloading t-coffee - get_url: - url: " http://www.tcoffee.org/Packages/Stable/Latest/{{ tcoffee_version }}.tar.gz" - dest: "{{ tcoffee_prefix }}/src/tcoffee" - - -- name: Unarchive t-coffee - unarchive: - src: "{{ tcoffee_prefix }}/src/tcoffee/{{ tcoffee_version }}.tar.gz" - dest: "{{ tcoffee_prefix }}/src/tcoffee/" - creates: "{{ tcoffee_prefix }}/src/tcoffee/{{ tcoffee_version }}" - copy: no - - -- name: Creating directory in libexe - file: - path: "{{ tcoffee_prefix }}/libexec/tcoffee" - state: directory - mode: 0755 - - -- name: Copying executales in libexe dir - command: cp -a "{{ tcoffee_prefix }}/src/tcoffee/{{ tcoffee_version }}/{{ item }}" "{{ tcoffee_prefix }}/libexec/tcoffee/" - with_items: - - bin - - lck - - mcoffee - - methods - - perl - - plugins - - -- name: Creating link to executable - file: - src: "{{ tcoffee_prefix }}/libexec/tcoffee/bin/t_coffee" - dest: "{{ tcoffee_prefix }}/bin/t_coffee" - state: link - - -- name: Installing library required by t-coffee - yum: - name: ['libgfortran', 'argtable-devel'] - state: latest - - -- name: Installing t-coffee third party software - yum: - name: ['gensoft-ClustalW-2.1', 'gensoft-mafft-7.310', 'gensoft-msaprobs-1.0.5', 'gensoft-muscle-3.8.31'] - state: latest - -- GitLab