diff --git a/ansible/compute.yml b/ansible/compute.yml index 4003b8f769c59c1947b4c4dfbb7a6dac7a8844ae..198454852c2e28cc47ea8661a45fce7fae6f44fb 100644 --- a/ansible/compute.yml +++ b/ansible/compute.yml @@ -5,7 +5,7 @@ roles: - { name: 'install_packages', tags: 'install_packages' } - { name: 'pam_slurm_adopt', tags: 'pam_slurm_adopt' } - - { name: 'lmod_user', tags: 'lmod_user'} + - { name: 'install_nhc', tags: 'install_nhc'} - name: Setup node for use as a virtual cheaha node ansible.builtin.import_playbook: cheaha.yml diff --git a/ansible/files/nux-dextop.repo b/ansible/files/nux-dextop.repo index dd4a382e43ca145fa82e2fb3b0451ee785410726..475d3d4ce4b2fa171a5df146fa31d650115f0a1b 100644 --- a/ansible/files/nux-dextop.repo +++ b/ansible/files/nux-dextop.repo @@ -1,14 +1,14 @@ [nux-dextop] name=Nux.Ro RPMs for general desktop use -baseurl=http://li.nux.ro/download/nux/dextop/el7/$basearch/ http://mirror.li.nux.ro/li.nux.ro/nux/dextop/el7/$basearch/ +baseurl= http://mirror.li.nux.ro/li.nux.ro/nux/dextop/el7/$basearch/ enabled=1 gpgcheck=1 -gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro +gpgkey=http://mirror.li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro protect=0 [nux-dextop-testing] name=Nux.Ro RPMs for general desktop use - testing -baseurl=http://li.nux.ro/download/nux/dextop-testing/el7/$basearch/ +baseurl=http://mirror.li.nux.ro/download/nux/dextop-testing/el7/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro diff --git a/ansible/group_vars/all b/ansible/group_vars/all index 665d5cdfccf013d3bc0ac080119ce3c6c56d6591..e55be3c6b5c2ad77a3195681900b9b84a6a25585 100644 --- a/ansible/group_vars/all +++ b/ansible/group_vars/all @@ -4,3 +4,9 @@ yum_repo_files: [] pkg_list: [] slurm_version: 18.08.9 + +# NHC related + nhc_download_url: "https://github.com/mej/nhc/releases/download/1.4.3/lbnl-nhc-1.4.3-1.el7.noarch.rpm" + nhc_download_path: "/tmp" + nhc_git_repo: "https://gitlab.rc.uab.edu/rc/nhc.git" + nhc_git_repo_path: "/tmp/nhc" diff --git a/ansible/group_vars/base b/ansible/group_vars/base index 232c36d1debcc6dffa039fd7006f5d43f85519f5..71ce49998bcd7e633858dc53fdd49cc1fbe167ac 100644 --- a/ansible/group_vars/base +++ b/ansible/group_vars/base @@ -28,7 +28,6 @@ - "OpenIPMI-libs" - "OpenIPMI-modalias" - "PackageKit-glib" - - "Red_Hat_Enterprise_Linux-Release_Notes-7-en-US" - "SDL" - "Thunar" - "abattis-cantarell-fonts" @@ -75,7 +74,6 @@ - "atkmm" - "atlas" - "atlas-devel" - - "atom" - "atril" - "atril-caja" - "atril-libs" @@ -183,9 +181,6 @@ - "cjkuni-uming-fonts" - "clucene-contribs-lib" - "clucene-core" - - "clusterkit" - - "clusterkit" - - "clusterkit" - "clutter" - "clutter-gst2" - "clutter-gst3" @@ -277,7 +272,6 @@ - "dracut-config-rescue" - "dracut-network" - "dstat" - - "dump_pr" - "dvd+rw-tools" - "dwz" - "dyninst" @@ -399,7 +393,6 @@ - "geoclue2" - "geoclue2-libs" - "geocode-glib" - - "geoipupdate" - "gettext" - "gettext-common-devel" - "gettext-devel" @@ -471,16 +464,6 @@ - "google-noto-emoji-fonts" - "gparted" - "gperftools-libs" - - "gpfs.base" - - "gpfs.callhome-ecc-client" - - "gpfs.docs" - - "gpfs.ext" - - "gpfs.gpl" - - "gpfs.gskit" - - "gpfs.gss.pmsensors" - - "gpfs.java" - - "gpfs.license.std" - - "gpfs.msg.en_US" - "gpgme" - "gpm-libs" - "graphite2" @@ -590,7 +573,6 @@ - "ibus-setup" - "ibus-table" - "ibus-table-chinese" - - "ibutils2" - "icedax" - "icedtea-web" - "ilmbase" @@ -662,7 +644,6 @@ - "keyutils-libs-devel" - "khmeros-base-fonts" - "khmeros-fonts-common" - - "knem" - "kpartx" - "kpatch" - "krb5-devel" @@ -1301,7 +1282,6 @@ - "mtools" - "mtr" - "mutter" - - "mxm" - "mythes" - "mythes-en" - "nano" @@ -1375,7 +1355,6 @@ - "opencore-amr" - "openjpeg-libs" - "openjpeg2" - - "openmpi" - "openscap" - "openscap-scanner" - "opensm" @@ -1686,58 +1665,36 @@ - "python-warlock" - "python-wrapt" - "python-yubico" - - "python2-adal" - "python2-asn1crypto" - - "python2-babel" - "python2-backports-functools_lru_cache" - "python2-blockdev" - "python2-boto" - "python2-certifi" - - "python2-chardet" - - "python2-cmd2" - - "python2-contextlib2" - "python2-crypto" - "python2-cryptography" - "python2-dateutil" - - "python2-extras" - "python2-futures" - - "python2-gunicorn" - "python2-idna" - "python2-iso8601" - "python2-jmespath" - "python2-jsonpatch" - - "python2-jsonpointer" - "python2-jsonschema" - - "python2-jwt" - - "python2-ldap" - - "python2-markupsafe" - "python2-mimeparse" - "python2-mock" - - "python2-monotonic" - "python2-msgpack" - - "python2-msrest" - - "python2-msrestazure" - - "python2-munch" - "python2-oauthlib" - "python2-olefile" - - "python2-os-service-types" - - "python2-pexpect" - - "python2-pillow" - "python2-pip" - "python2-ptyprocess" - "python2-pyasn1" - "python2-pyasn1-modules" - "python2-pyatspi" - - "python2-pyparsing" - - "python2-pyperclip" - "python2-pyxdg" - - "python2-requests" - "python2-rpm-macros" - "python2-rsa" - "python2-setuptools" - "python2-subprocess32" - "python2-traceback2" - - "python2-unittest2" - "python2-urllib3" - "python2-wcwidth" - "python3" @@ -1758,9 +1715,6 @@ - "pyusb" - "pyxattr" - "qemu-guest-agent" - - "qemu-img-ev" - - "qemu-kvm-common-ev" - - "qemu-kvm-ev" - "qpdf-libs" - "qrencode-libs" - "qt" @@ -1798,7 +1752,6 @@ - "redhat-lsb-submod-multimedia" - "redhat-lsb-submod-security" - "redhat-menus" - - "redhat-release-server" - "redhat-rpm-config" - "redhat-support-lib-python" - "redhat-support-tool" @@ -1876,7 +1829,6 @@ - "sgpio" - "shadow-utils" - "shared-mime-info" - - "sharp" - "shim-x64" - "sil-abyssinica-fonts" - "sil-nuosu-fonts" @@ -2660,7 +2612,6 @@ - "ttmkfdir" - "tumbler" - "tuned" - - "turbovnc" - "twolame-libs" - "tzdata" - "tzdata-java" diff --git a/ansible/group_vars/compute b/ansible/group_vars/compute index eb73c7f148b4642cb047a7491859cf1f96c1b23f..98bd90e5f3e59ec37ec1879b352357e19f2ea3de 100644 --- a/ansible/group_vars/compute +++ b/ansible/group_vars/compute @@ -3,7 +3,7 @@ - TurboVNC.repo - cm.repo pkg_list: - - "Lmod" + - "Lmod-7.8.11" - "atftp-server" - "cluster-tools-dell" - "cluster-tools-slave" @@ -36,7 +36,6 @@ - "cm-libprometheus" - "cm-lua" - "cm-mariadb-libs" - - "cm-modules-init-client" - "cm-openssl" - "cm-python2" - "cm-python36" @@ -47,7 +46,6 @@ - "cmdaemon" - "cmdaemon-remotecm" - "confuse" - - "env-modules" - "gcc-recent" - "gdb-recent" - "lshw" @@ -61,43 +59,22 @@ - "net-snmp-recent" - "node-installer-slave" - "openvpn" - - "pbspro-ce-client" - - "pbspro-client" - "perl-Config-IniFiles" - - "python-azure-sdk" - "python-dogpile-cache" - "python-isodate" - "python-netaddr" - "python-netifaces" - - "python-oslo-i18n-lang" - - "python-oslo-utils-lang" - "python-setuptools_scm" - "python-testtools" - - "python-vcrpy" - "python-websockify" - - "python2-cffi" - - "python2-cinderclient" - "python2-cliff" - "python2-debtcollector" - "python2-deprecation" - "python2-fixtures" - "python2-funcsigs" - - "python2-glanceclient" - - "python2-heatclient" - "python2-ipaddress" - - "python2-keystoneauth1" - - "python2-keystoneclient" - - "python2-novaclient" - - "python2-openstacksdk" - - "python2-os-client-config" - - "python2-osc-lib" - - "python2-oslo-config" - - "python2-oslo-i18n" - - "python2-oslo-serialization" - - "python2-oslo-utils" - "python2-pbr" - "python2-positional" - - "python2-pyOpenSSL" - "python2-pysocks" - "python2-pyyaml" - "python2-requests-oauthlib" @@ -105,10 +82,7 @@ - "python2-rfc3986" - "python2-six" - "python2-stevedore" - - "python2-swiftclient" - "sdparm" - - "sge-client" - - "shorewall" - "sshpass" - "swig" - - "turbovnc" + - "turbovnc-2.2.6*" diff --git a/ansible/roles/cuda_driver/tasks/main.yml b/ansible/roles/cuda_driver/tasks/main.yml index fde04c1edb6cfb0ddb825e352a0d0f9c63e98641..d411731c6593a8f550217ff15190f4aafd1288c9 100644 --- a/ansible/roles/cuda_driver/tasks/main.yml +++ b/ansible/roles/cuda_driver/tasks/main.yml @@ -16,11 +16,11 @@ - cuda-dcgm.x86_64 - cuda-dcgm-libs - cuda-dcgm-devel - state: present + state: latest - name: start cuda-driver service ansible.builtin.systemd: - name: cuda-driver + name: "{{ item }}" state: started enabled: yes loop: diff --git a/ansible/roles/install_nhc/tasks/main.yml b/ansible/roles/install_nhc/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..4e9d90a60de3090bb58fcdf77a7f14b9ea8ff1be --- /dev/null +++ b/ansible/roles/install_nhc/tasks/main.yml @@ -0,0 +1,28 @@ +--- +- name: Download the rpm + ansible.builtin.get_url: + url: "{{ nhc_download_url }}" + dest: "{{ nhc_download_path }}" + +- name: Clone the NHC config repo + ansible.builtin.git: + repo: "{{ nhc_git_repo }}" + dest: "{{ nhc_git_repo_path }}" + +- name: Install NHC + ansible.builtin.yum: + name: "{{ nhc_download_url }}" + state: latest + +- name: Copy config files + ansible.builtin.copy: + src: "{{ nhc_git_repo_path }}/{{ item.src }}" + dest: "{{ item.dest }}" + owner: root + group: root + mode: '0644' + remote_src: true + loop: + - { src: 'nhc.conf' , dest: '/etc/nhc/' } + - { src: 'nhc.etc.sysconfig', dest: '/etc/sysconfig/nhc/' } + diff --git a/ansible/roles/lmod_user/tasks/main.yaml b/ansible/roles/lmod_user/tasks/main.yaml deleted file mode 100644 index 825538ead9d8024b1256bb3dcf09255f9b804046..0000000000000000000000000000000000000000 --- a/ansible/roles/lmod_user/tasks/main.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Setup rsyslog - template: - src: rsyslog.j2 - dest: /etc/rsyslog.d/moduleTracking-client.conf - -- name: Restart rsyslog - service: - name: rsyslog - state: restarted diff --git a/ansible/roles/lmod_user/templates/rsyslog.j2 b/ansible/roles/lmod_user/templates/rsyslog.j2 deleted file mode 100644 index 537711acbc8c253a11fe540cde9cdd7655620f34..0000000000000000000000000000000000000000 --- a/ansible/roles/lmod_user/templates/rsyslog.j2 +++ /dev/null @@ -1,2 +0,0 @@ -if $programname contains 'ModuleUsageTracking' then @{{ lmod_db_host_machine }} -&~ diff --git a/ansible/roles/pam_slurm_adopt/tasks/main.yml b/ansible/roles/pam_slurm_adopt/tasks/main.yml index 4f027f2df5c96a8094dd3303660dc04c3ba88a9d..1493946c6a6746483093301aefbf227ece8f0076 100644 --- a/ansible/roles/pam_slurm_adopt/tasks/main.yml +++ b/ansible/roles/pam_slurm_adopt/tasks/main.yml @@ -1,4 +1,12 @@ --- +- name: Install slurm-client packages + ansible.builtin.yum: + name: "{{ item }}" + state: present + loop: + - munge + - "slurm-client-{{ slurm_version }}" + # restrict user access to nodes - name: Get version and release for slurm-pam pkg shell: rpm -q --qf "%{VERSION}-%{RELEASE}\n" slurm-client @@ -41,6 +49,6 @@ - name: Update secure access config for the node lineinfile: dest: /etc/security/access.conf - line: "-:ALL EXCEPT root mhanby_ cmcclung_ (sysadmins) (atlab):ALL" + line: "-:ALL EXCEPT root mhanby_ cmcclung_ centos (sysadmins) (atlab):ALL" owner: root mode: 0644 diff --git a/openstack-compute/nodeimage.pkr.hcl b/openstack-compute/nodeimage.pkr.hcl index e6f39d8a3e93dbb83f95e0f57e4ded5a08e32aed..cccebc3a4bebf6dd5a5a53bbee5c26d5afd4818f 100644 --- a/openstack-compute/nodeimage.pkr.hcl +++ b/openstack-compute/nodeimage.pkr.hcl @@ -25,18 +25,19 @@ build { provisioner "ansible" { groups = ["compute"] playbook_file = "./ansible/compute.yml" + ansible_env_vars = [ + "ANSIBLE_SSH_ARGS='-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=ssh-rsa'", + "ANSIBLE_HOST_KEY_CHECKING=False" + ] roles_path = "./ansible/roles" extra_arguments = [ + "--scp-extra-args", "'-O'", "--extra-vars", "root_ssh_key='${var.root_ssh_key}'" ] } provisioner "ansible" { use_proxy = false - ansible_env_vars = ["ANSIBLE_HOST_KEY_CHECKING=False"] - playbook_file = "../CRI_XCBC/ood-packer.yaml" - extra_arguments = [ - "-t enable_lmod", - "-t lmod_user", - ] + groups = ["compute"] + playbook_file = "./CRI_XCBC/compute-packer.yaml" } } diff --git a/openstack-gpu/nodeimage.pkr.hcl b/openstack-gpu/nodeimage.pkr.hcl index 02720c2d434a2c6a70a79deae9fb37716869c171..7d3ed258d138b3ad3605b9b11e56bb7d2eef4b9a 100644 --- a/openstack-gpu/nodeimage.pkr.hcl +++ b/openstack-gpu/nodeimage.pkr.hcl @@ -21,8 +21,13 @@ build { provisioner "ansible" { groups = ["gpu"] playbook_file = "./ansible/gpu.yml" + ansible_env_vars = [ + "ANSIBLE_SSH_ARGS='-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=ssh-rsa'", + "ANSIBLE_HOST_KEY_CHECKING=False" + ] roles_path = "./ansible/roles" extra_arguments = [ + "--scp-extra-args", "'-O'", "--extra-vars", "root_ssh_key='${var.root_ssh_key}'" ] } diff --git a/openstack/nodeimage.pkr.hcl b/openstack/nodeimage.pkr.hcl index 509ae3cde0684fd1a02a913ae760d8ae737c419e..7988088e8fba1b6dd664a5b12b4d3bd557e4cb1a 100644 --- a/openstack/nodeimage.pkr.hcl +++ b/openstack/nodeimage.pkr.hcl @@ -26,8 +26,13 @@ build { user = var.ssh_username groups = ["base"] playbook_file = "./ansible/base.yml" + ansible_env_vars = [ + "ANSIBLE_SSH_ARGS='-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=ssh-rsa'", + "ANSIBLE_HOST_KEY_CHECKING=False" + ] roles_path = "./ansible/roles" extra_arguments = [ + "--scp-extra-args", "'-O'", "--extra-vars", "root_ssh_key='${var.root_ssh_key}'" ] } diff --git a/openstack/variables.pkr.hcl b/openstack/variables.pkr.hcl index 09827195aba2322d506e5a2b57e1f16092e4738b..aa810592db45127232fb61d07a9df8a63359658f 100644 --- a/openstack/variables.pkr.hcl +++ b/openstack/variables.pkr.hcl @@ -67,7 +67,7 @@ variable "security_groups" { variable "build_instance_name" { type = string - default = "compute" + default = "base" description = "A name of build instance used for image build" }