diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 458847e43bbfb3533548bf271dfdff4053e08676..1e2bd8967f84aeb7596b639a98671a2107117a53 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,10 +10,12 @@ stages: - extended #- heat_test - heat - - ansible_create_cluster_stage - - push_button_spawn_cluster + - openstack_create + - ansible_build - tests - integration_test #https://docs.gitlab.com/ee/ci/triggers/ + - openstack_destroy + #- clean #- testlustre #- clean_testlustre @@ -50,20 +52,6 @@ yamllint: - cd CICD - yamllint -c ./.yamllintheat.yaml ./heat -# delete_stack_manual: -# stage: delete_stack_manual -# tags: -# - heat -# before_script: -# - echo "$GC_KEY" > gc_key.pem -# - chmod 400 gc_key.pem -# - echo "$HPCCICD_openrc" > ./$NECTAR_ALLOCATION-openrc.sh -# script: -# - echo "heat stage" -# - source ./$NECTAR_ALLOCATION-openrc.sh -# - openstack stack list -# - bash -x ./CICD/heat/heatcicdwrapper.sh delete_if_exists $STACKNAME -# when: manual ansiblelint: allow_failure: true @@ -78,46 +66,8 @@ ansiblelint: - python3 ansiblelint/run_lint.py --targets ../maintenance.yml -# testlustre: -# stage: testlustre -# allow_failure: true -# tags: -# - heat -# before_script: -# - cd $DEFAULT_PATH -# - echo "$GC_KEY" > gc_key.pem -# - chmod 400 gc_key.pem -# - echo "$HPCCICD_openrc" > ./$NECTAR_ALLOCATION-openrc.sh -# - sleep 60 -# script: -# - echo "heat stage" -# - source ./$NECTAR_ALLOCATION-openrc.sh -# - openstack stack list -# - openstack stack create --wait --template heat/lustre_HOT.yaml --parameter "project_name=$STACKNAME" $STACKNAME -# - python3 ../scripts/make_inventory.py static $STACKNAME | tee ./files/inventory.$STACKNAME && chmod 755 ./files/inventory.$STACKNAME -# - cd plays/testlustre -# - sleep 100 -# - ansible-playbook -i files/inventory.$STACKNAME --key-file ../../gc_key.pem testlustre.yml -# - sleep 60 -# - cd ../../ -# - bash -x ./heat/heatcicdwrapper.sh delete_if_exists $STACKNAME -# after_script: -# - sleep 60 # the cluster needs to delete first - -#clean_testlustre: -# stage: clean_testlustre -# tags: -# - heat -# before_script: -# - echo "cleanup stack" -# - sleep 30 -# - echo "$HPCCICD_openrc" > ./$NECTAR_ALLOCATION-openrc.sh -# script: -# - source ./$NECTAR_ALLOCATION-openrc.sh -# - bash -x ./CICD/heat/heatcicdwrapper.sh delete_if_exists $STACKNAME - build_cluster_cicd: - stage: heat + stage: openstack_create allow_failure: false tags: - heat @@ -127,10 +77,17 @@ build_cluster_cicd: - chmod 400 gc_key.pem - echo "$HPCCICD_openrc" > ./$NECTAR_ALLOCATION-openrc.sh script: - - echo "heat stage" + - echo "create stage" - source ./$NECTAR_ALLOCATION-openrc.sh - - openstack stack list - - bash -x ./heat/heatcicdwrapper.sh create_or_update $STACKNAME + - cd infra + - template.py + - ansible-playbook os_create.yml + - python ./make_inventory.py $CI_PROJECT_NAME-ci-$CI_COMMIT_REF_NAME > ../inventory.yml + - cd .. + #- ssh-keygen -R `cat ssh.cfg | grep Proxy | cut -f 2 -d "@"` + #- ssh `cat ssh.cfg | grep Proxy | cut -f 2 -d "="` -o StrictHostKeyChecking=accept-new exit 0 + + #- bash -x ./heat/heatcicdwrapper.sh create_or_update $STACKNAME #- bash -x ./heat/server_rebuild.sh all after_script: - sleep 30 # artifically wait a bit to give the nodes time to boot diff --git a/CICD/ansible.cfg b/CICD/ansible.cfg index 98dfd39a6d72b3dfa28f27e2e564c2fb46af8b45..c3240e68762f566eb1ee810dc8ce5a3840ddf0f7 100644 --- a/CICD/ansible.cfg +++ b/CICD/ansible.cfg @@ -1,3 +1,11 @@ [defaults] -remote_tmp = /tmp/.ansible/tmp +#remote_tmp = /tmp/.ansible/tmp host_key_checking = False +pipelining=True +log_path = ./ansible.log +display_args_to_stdout = True +roles_path = HPCasCode/roles +files_path = ./files + +[ssh_connection] +ssh_args = -F ./ssh.cfg diff --git a/CICD/ansible_create_cluster_script.sh b/CICD/ansible_create_cluster_script.sh deleted file mode 100755 index 0f1fa8504d8b80432d819d08674842dfc09d9e1d..0000000000000000000000000000000000000000 --- a/CICD/ansible_create_cluster_script.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e -export ANSIBLE_HOST_KEY_CHECKING=False - -source ./$NECTAR_ALLOCATION-openrc.sh -openstack stack list - -cd CICD - -python3 ../scripts/make_inventory.py static $STACKNAME | tee ./files/inventory.$STACKNAME && chmod 755 ./files/inventory.$STACKNAME -grep -qv "I could not find any resouces tagged with project_name:" ./files/inventory.$STACKNAME #fail if inventory file is empty -ansible -m ping -i files/inventory.$STACKNAME --key-file ../gc_key.pem all -ansible -i files/inventory.$STACKNAME --key-file ../gc_key.pem -a "sudo ls" all - -#cd roles - #- "egrep -lRZ 'sudo: true' . | xargs -0 -l sed -i -e 's/sudo: true/become: true/g' " -#cd .. diff --git a/CICD/files/etcExports b/CICD/files/etcExports deleted file mode 100644 index 0867fd1b7bb1aff1d6be948f7c4fd40ee07f199a..0000000000000000000000000000000000000000 --- a/CICD/files/etcExports +++ /dev/null @@ -1,4 +0,0 @@ -/nfsvol/home *(fsid=1,rw,no_root_squash) -/slurmstate *(fsid=2,rw,no_root_squash) -/nfsvol/projects *(fsid=4,rw,no_root_squash) -/nfsvol/scratch *(fsid=5,rw,no_root_squash) diff --git a/CICD/files/gres.conf b/CICD/files/gres.conf deleted file mode 100644 index dc8448acc87fe6af03f6b9e4b679dc2716fa148b..0000000000000000000000000000000000000000 --- a/CICD/files/gres.conf +++ /dev/null @@ -1,4 +0,0 @@ -#consolidated GRES configuration file - -# example entry: -#NodeName=m3f0[00-31] Name=gpu Type=K1 File=/dev/nvidia0 CPUs=0-2 diff --git a/CICD/heat/gc_HOT.yaml b/CICD/heat/gc_HOT.yaml deleted file mode 100644 index edca168bacf6e6123676f11aee6860955b6dfc09..0000000000000000000000000000000000000000 --- a/CICD/heat/gc_HOT.yaml +++ /dev/null @@ -1,324 +0,0 @@ ---- -heat_template_version: 2013-05-23 -description: "A simple template to boot a cluster of desktops (LoginNode, ManagementNodes and Desktop Nodes)" -# avz parameters disabled. they are working but I want just more options than monash-02. I would like to have a parameter that says "I don't care" -#This requires gc_secgroups to be called beforehand -parameters: - ubuntu_2004_image_id: - type: string - label: Image ID - description: Ubuntu Image - default: 8faa45cc-2c97-40db-a12d-648c303cd567 - centos_7_image_id: - type: string - label: Image ID - description: Centos Image - default: c47c3acb-9657-4243-9e14-e6c676157e3b #with NetworkManager - rhel_77_image_id: - type: string - label: Image ID - description: Rhel Image - default: 19993115-ad60-4979-bdfb-67ae7a77e40c - ssh_key: - type: string - default: gc_key - avz: - type: string - default: monash-02 - project_name: - type: string - NetID: - type: string - default: Classic Provider - Flavour: - type: string - default: m3.xsmall - SlurmSecGroupID: - type: string - label: Resource ID - default: 6e7a09b0-981c-424f-a9b7-9fd4f4d8f416 - NFSSecGroupID: - type: string - label: Resource ID - default: b07a75a3-830c-4778-96c6-8a3732ec7d6c - MySQLSecGroupID: - type: string - label: Resource ID - default: 4478f245-de5c-4177-bcbd-6fa661032cbe - SSHMonashSecGroupID: - type: string - label: Resource ID - default: c15081f4-c756-4c57-b8cf-388dd7fdbcd4 - HTTPsSecGroupID: - type: string - label: Resource ID - default: 2d4510c3-ae73-44ea-9700-b6f0a00bf7aa - PublicSSHSecGroupID: - type: string - label: Resource ID - default: 8a029c04-08ce-40f1-a705-d45a2077e27d - LDAPSecGroupID: - type: string - label: Resource ID - default: 070a32e2-858b-462a-b2b5-b3a92eec2669 - SYSLOGSecGroupID: - type: string - label: Resource ID - default: 1de45b93-e5f6-4838-94f7-fc307752d6cb - -resources: - - SQLNode0: - type: "OS::Nova::Server" - properties: - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'sql0' ]] - availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: ubuntu_2004_image_id } - key_name: { get_param: ssh_key } - security_groups: [ { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: MySQLSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ SQLNodes, NFSNodes, LDAPServer, CentosNodes, LogNodes ] - ansible_ssh_user: ubuntu - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - NFSVolume: - type: OS::Cinder::Volume - properties: - availability_zone: { get_param: avz } - size: 1 - name: nfsvol - NFSVolumeAttachment: - type: "OS::Cinder::VolumeAttachment" - properties: - volume_id: { get_resource: NFSVolume } - instance_uuid: { get_resource: SQLNode0 } - - SLURMSTATEVolume: - type: OS::Cinder::Volume - properties: - availability_zone: { get_param: avz } - size: 1 - name: slurmstate - SLURMSTATEVolumeAttachment: - type: "OS::Cinder::VolumeAttachment" - properties: - volume_id: { get_resource: SLURMSTATEVolume } - instance_uuid: { get_resource: SQLNode0 } - - DBVolume: - type: OS::Cinder::Volume - properties: - availability_zone: { get_param: avz } - size: 10 - name: dbvol - DBVolumeAttachment: - type: "OS::Cinder::VolumeAttachment" - properties: - volume_id: { get_resource: DBVolume } - instance_uuid: { get_resource: SQLNode0 } - - MgmtNodesCentos7: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: My::Server::MgmtNode - properties: - #avz: { get_param: avz } - image: { get_param: centos_7_image_id } - ansible_ssh_user: ec2-user - ansible_host_groups: [ ManagementNodes, CentosNodes ] - mynodename: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'mgmt%index%' ]] - ssh_key: { get_param: ssh_key } - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: MySQLSecGroupID }, { get_param: SYSLOGSecGroupID } ] - project_name: { get_param: project_name } - - MgmtNodesU: - type: "OS::Heat::ResourceGroup" - properties: - count: 2 - resource_def: - type: My::Server::MgmtNode - properties: - #avz: { get_param: avz } - image: { get_param: ubuntu_2004_image_id } - ansible_ssh_user: ubuntu - ansible_host_groups: [ ManagementNodes, UbuntuNodes ] - mynodename: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'mgmtU%index%' ]] - ssh_key: { get_param: ssh_key } - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: MySQLSecGroupID }, { get_param: SYSLOGSecGroupID } ] - project_name: { get_param: project_name } - - LoginNodesC: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'login%index%' ]] - security_groups: [ default, { get_param: PublicSSHSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ LoginNodes, CentosNodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - LoginNodesU: - type: "OS::Heat::ResourceGroup" - properties: - count: 1 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: ubuntu_2004_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'loginU%index%' ]] - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ LoginNodes, UbuntuNodes ] - ansible_ssh_user: ubuntu - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - DesktopNodes: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'desktopc%index%' ]] - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ DesktopNodes, VisNodes, ComputeNodes, CentosNodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - ComputeNodesU: - type: "OS::Heat::ResourceGroup" - properties: - count: 1 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: ubuntu_2004_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'computeU%index%' ]] - security_groups: [ default, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: SSHMonashSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ ComputeNodes, UbuntuNodes ] - ansible_ssh_user: ubuntu - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - ComputeNodesCentos7: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'computec7%index%' ]] - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ ComputeNodes, CentosNodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - UbuntuDesktopNodes: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: mon.c10r35.gpu-k2 - image: { get_param: ubuntu_2004_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'gpudesktopu%index%' ]] - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ DesktopNodes, GPU, ComputeNodes, VisNodes, UbuntuNodes ] - ansible_ssh_user: ubuntu - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - CentosDesktopNodes: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: mon.c10r35.gpu-k2 - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'gpudesktopc%index%' ]] - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ DesktopNodes, GPU, ComputeNodes, K1, VisNodes, CentosNodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - ComputeNodeRHEL: - type: "OS::Heat::ResourceGroup" - properties: - count: 0 - resource_def: - type: "OS::Nova::Server" - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: rhel_77_image_id } - key_name: { get_param: ssh_key } - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'computerhel%index%' ]] - security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ] - metadata: - ansible_host_groups: [ DGXRHELNodes, RedhatNodes ] - ansible_ssh_user: cloud-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } diff --git a/CICD/heat/gc_secgroups.hot b/CICD/heat/gc_secgroups.hot deleted file mode 100644 index 499f05a7ed099447a1ae72e8f5e5d448e54531ac..0000000000000000000000000000000000000000 --- a/CICD/heat/gc_secgroups.hot +++ /dev/null @@ -1,205 +0,0 @@ ---- -heat_template_version: 2013-05-23 -description: # call with openstack stack [update || create ] --wait --template gc_secgroups.hot SecurityGroupStack - -resources: - - SlurmSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "heatslurmsecgroup" - rules: [ { protocol: tcp, - port_range_min: 12000, - port_range_max: 12999, - remote_mode: "remote_group_id"}, - { protocol: tcp, - port_range_min: 6817, - port_range_max: 6819, - remote_mode: "remote_group_id"}, - { protocol: tcp, - port_range_min: 1019, - port_range_max: 1019, - remote_mode: "remote_group_id"}] - NFSSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "heatnfssecgroup" - rules: [ { protocol: tcp, - port_range_min: 2049, - port_range_max: 2049, - remote_mode: "remote_group_id"}, - { protocol: tcp, - port_range_min: 111, - port_range_max: 111, - remote_mode: "remote_group_id"}, - { protocol: udp, - port_range_min: 2049, - port_range_max: 2049, - remote_mode: "remote_group_id"}, - { protocol: udp, - port_range_min: 111, - port_range_max: 111, - remote_mode: "remote_group_id"} ] - LDAPSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "heatldapsecgroup" - rules: [ { protocol: tcp, - port_range_min: 389, - port_range_max: 389, - remote_mode: "remote_group_id"} ] - MySQLSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "heatmysqlsecgroup" - rules: [ { protocol: tcp, - port_range_min: 3306, - port_range_max: 3306, - remote_mode: "remote_group_id"} ] - PublicSSHSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "SSHSecGroup" - rules: [ { protocol: tcp, - port_range_min: 22, - port_range_max: 22} ] - SSHMonashSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "SSHMonashSecGroup" - rules: [ { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 59.191.208.0/20 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 114.30.64.0/21 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 118.138.0.0/16 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 118.139.0.0/17 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 130.194.0.0/16 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 203.0.141.0/24 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 203.6.141.0/24 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 203.23.136.0/24 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 59.191.192.0/20 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 202.158.212.32/27 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 130.194.13.96/27 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 49.127.0.0/16 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 202.58.246.0/24 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 202.94.69.0/24 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 103.35.228.0/22 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 43.246.232.0/22 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 103.35.228.0/22 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 59.191.208.0/20 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 49.127.0.0/16 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 59.191.220.0/22 - }, - { protocol: tcp, - port_range_min: 22, - port_range_max: 22, - direction: ingress, - remote_ip_prefix: 43.246.232.0/22 - } ] - HTTPsSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "HTTPsSecGroup" - rules: [ { protocol: tcp, - port_range_min: 80, - port_range_max: 80}, - { protocol: tcp, - port_range_min: 443, - port_range_max: 443} ] diff --git a/CICD/heat/heatcicdwrapper.sh b/CICD/heat/heatcicdwrapper.sh deleted file mode 100644 index ff8aa04e3307ebccad82258f487cab01e03e3f7b..0000000000000000000000000000000000000000 --- a/CICD/heat/heatcicdwrapper.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash - -# This script does not check available ressources on nectar! - - -function usage { - echo $"Usage: $0 {create|update|show|create_or_update,delete_if_exists} STACKNAME" - exit 1 -} - -STACKNAME=$2 - -if [[ "$STACKNAME" == "CICD"* ]]; then - echo "CICD found in stackname. doing nothing" -else - STACKNAME="CICD"$STACKNAME -fi - - - -echo "[heatcicdwrapper] Prefixing Stackname with CICD. This is a safety feature because this script can also delete stacks" $STACKNAME - -function check_stack_exists { - if openstack stack list | grep -w $STACKNAME; - then - echo "stack found"; - else - echo "stack not found"; - return 1 - fi -} - - -function func_delete_if_exists { - if ! check_stack_exists - then - exit 0 - fi - openstack stack delete -y --wait $STACKNAME - ret=$? - if [ $ret -ne "0" ] - then - sleep 15 - openstack stack delete -y --wait $STACKNAME - ret=$? - fi - exit $ret -} - -function create_stack { - - if check_stack_exists - then - echo "I will NOT create existing stack maybe use update" - exit -44 - fi - openstack stack create --wait --template ./heat/gc_HOT.yaml --parameter "project_name=$STACKNAME" -e ./heat/resource_registry.yaml $STACKNAME - createreturn=$? - if [ $createreturn -ne "0" ] - then - openstack stack delete -y --wait $STACKNAME - echo "creation failed. trying to delete" - exit -47 - fi - exit $createreturn -} - - -case "$1" in - create) - create_stack - ;; - - update) - if ! check_stack_exists - then - echo "I cannot update a stack which does not exist" - exit -45 - fi - openstack stack check --wait $STACKNAME - sleep 2 - openstack stack update --wait --template ./heat/gc_HOT.yaml --parameter "project_name=$STACKNAME" -e ./heat/resource_registry.yaml $STACKNAME - ret=$? - exit $ret - ;; - create_or_update) - if check_stack_exists - then - openstack stack check --wait $STACKNAME - sleep 2 - openstack stack update --wait --template ./heat/gc_HOT.yaml --parameter "project_name=$STACKNAME" -e ./heat/resource_registry.yaml $STACKNAME - ret=$? - exit $ret - fi - create_stack - - ;; - delete_if_exists) - func_delete_if_exists - - ;; - - - show) - check_stack_exists - echo $? - OUTPUT=$(openstack stack show $STACKNAME| grep -w stack_status) - echo $OUTPUT - ;; - - *) - usage - -esac diff --git a/CICD/heat/lustre_HOT.yaml b/CICD/heat/lustre_HOT.yaml deleted file mode 100644 index 025111a989446d912263a4e6ec21e3a40736fba2..0000000000000000000000000000000000000000 --- a/CICD/heat/lustre_HOT.yaml +++ /dev/null @@ -1,124 +0,0 @@ ---- -heat_template_version: 2013-05-23 -description: "A simple template to boot a cluster of desktops (LoginNode, ManagementNodes and Desktop Nodes)" -# avz parameters disabled. they are working but I want just more options than monash-02. I would like to have a parameter that says "I don't care" - -parameters: - ubuntu_1804_image_id: - type: string - label: Image ID - description: Ubuntu Image - default: 99d9449a-084f-4901-8bd8-c04aebd589ca - centos_7_image_id: - type: string - label: Image ID - description: Centos Image - default: c47c3acb-9657-4243-9e14-e6c676157e3b #with NetworkManager - ssh_key: - type: string - default: gc_key - avz: - type: string - default: monash-02 - project_name: - type: string - NetID: - type: string - default: Classic Provider - Flavour: - type: string - default: m3.xsmall - ManualSSHSecGroup: - type: string - default: 5ec1cecd-efd1-4d0f-8c4a-afe7ababb092 - - -resources: - - - LustreSecGroup: - type: "OS::Neutron::SecurityGroup" - properties: - name: "LustreSecGroup" - rules: [ { protocol: tcp, - port_range_min: 988, - port_range_max: 988}, - { protocol: udp, - port_range_min: 123, - port_range_max: 123}] - - MDS_MGS_MDT: - type: "OS::Nova::Server" - properties: - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'LustreFSM' ]] - availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - security_groups: [ { get_resource: LustreSecGroup }, { get_param: ManualSSHSecGroup } ] - metadata: - ansible_host_groups: [ LustreMNodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - MDTVolume: - type: OS::Cinder::Volume - properties: - availability_zone: { get_param: avz } - size: 10 - name: mdtvol - MDTVolumeAttachment: - type: "OS::Cinder::VolumeAttachment" - properties: - volume_id: { get_resource: MDTVolume } - instance_uuid: { get_resource: MDS_MGS_MDT } - - OSS_OST: - type: "OS::Nova::Server" - properties: - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'LustreFSO' ]] - availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - security_groups: [ { get_resource: LustreSecGroup }, { get_param: ManualSSHSecGroup } ] - metadata: - ansible_host_groups: [ LustreONodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } - - OSTVolume: - type: OS::Cinder::Volume - properties: - availability_zone: { get_param: avz } - size: 100 - name: ostvol - OSTVolumeAttachment: - type: "OS::Cinder::VolumeAttachment" - properties: - volume_id: { get_resource: OSTVolume } - instance_uuid: { get_resource: OSS_OST } - - - LustreClient: - type: "OS::Nova::Server" - properties: - name: - list_join: [ '-', [ { get_param: "OS::stack_name" }, 'LustreClient' ]] - availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: centos_7_image_id } - key_name: { get_param: ssh_key } - security_groups: [ { get_resource: LustreSecGroup }, { get_param: ManualSSHSecGroup } ] - metadata: - ansible_host_groups: [ LoginNodes ] - ansible_ssh_user: ec2-user - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } diff --git a/CICD/heat/mgmtnode_HOT.yaml b/CICD/heat/mgmtnode_HOT.yaml deleted file mode 100644 index 85bceab9f6b2db7373a40e85038f4e681691def0..0000000000000000000000000000000000000000 --- a/CICD/heat/mgmtnode_HOT.yaml +++ /dev/null @@ -1,40 +0,0 @@ -heat_template_version: 2013-05-23 -parameters: - mynodename: - type: string - ssh_key: - type: string - image: - type: string - #avz: - # type: string - project_name: - type: string - ansible_ssh_user: - type: string - security_groups: - type: json - NetID: - type: string - default: Classic Provider - ansible_host_groups: - type: comma_delimited_list - default: [ ManagementNodes ] - -resources: - - instance: - type: OS::Nova::Server - properties: - #availability_zone: { get_param: avz } - flavor: m3.xsmall - image: { get_param: image } - key_name: { get_param: ssh_key } - security_groups: { get_param: security_groups } - name: { get_param: mynodename } - metadata: - ansible_host_groups: { get_param: ansible_host_groups } - ansible_ssh_user: { get_param: ansible_ssh_user } - project_name: { get_param: project_name } - networks: - - network: { get_param: NetID } diff --git a/CICD/heat/resource_registry.yaml b/CICD/heat/resource_registry.yaml deleted file mode 100644 index 421a309d5ce769fdaa0cfcf590fc927a4104eab1..0000000000000000000000000000000000000000 --- a/CICD/heat/resource_registry.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resource_registry: - My::Server::MgmtNode: ./mgmtnode_HOT.yaml diff --git a/CICD/heat/server_rebuild.sh b/CICD/heat/server_rebuild.sh deleted file mode 100755 index 004206023c61b779a9fef1b0968a09d40a94e72b..0000000000000000000000000000000000000000 --- a/CICD/heat/server_rebuild.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -REBOOT_TIME=90 - -NODETYPES=${@} - -# make sure you define variable STACKNAME in current environment -if [[ -z $STACKNAME ]]; then - echo "please define STACKNAME variable" - exit 1 -fi - -# prepend CICD to stack name -if [[ "$STACKNAME" == "CICD"* ]]; then - echo "CICD found in stackname. doing nothing" -else - STACKNAME="CICD"$STACKNAME -fi - -function check_stack_exists { - if openstack stack list | grep -w $STACKNAME; - then - echo "stack found"; - else - echo "stack not found"; - return 1 - fi -} - -if ! check_stack_exists -then - exit 0 -fi - -# return and dictionary in json format, which map server name to ansible_host_groups. There will be IndexError if the servers, which names are prefixed by STACKNAME, don't have ansible_host_groups property -host_group_mapping=$(openstack server list --long -f json | python3 -c "import json,sys,re;ivt=json.load(sys.stdin);json.dump({i['Name']: re.search('ansible_host_groups\=\'\[(.+)\]\'', i['Properties']).groups()[0].replace('\"', '').split() for i in ivt if re.match('$STACKNAME',i['Name'])}, fp=sys.stdout)") - -# all available ansible_host_groups -available_groups=$(echo $host_group_mapping | python3 -c "import json,sys;mapping=json.load(sys.stdin);output=[];[output.extend(v) for v in mapping.values()];print(output)" | tr -d "[',]") - -echo "available groups are $available_groups" -# if the first input parameter is all then rebuild all groups -if [[ "$1" == "all" ]]; then - NODETYPES=$available_groups -fi -echo "going to update group $NODETYPES" -server_list=$(echo $host_group_mapping | python3 -c "import json,sys;mapping=json.load(sys.stdin);node_types='$NODETYPES'.split();output=[k for k in mapping.keys() if len(set(mapping[k]).intersection(set(node_types))) > 0];print(output)" | tr -d "[,]'" | xargs -n1 | sort -u) - -echo "server list is $server_list" -rebuild_func(){ - echo "rebuilding server $1" - openstack server rebuild --wait $1 -} - -# for eaech line in data -for server in $server_list -do -rebuild_func $server & # run parallel in background -done -wait # wait for all servers to be rebuild -# add an extra time for reboot -echo "waiting for reboot" -sleep $REBOOT_TIME -echo "All done" - diff --git a/CICD/infra/make_inventory.py b/CICD/infra/make_inventory.py new file mode 100644 index 0000000000000000000000000000000000000000..fa70d05241db81481afad3a91e2f7b9bed2f34ba --- /dev/null +++ b/CICD/infra/make_inventory.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python +import sys, os, string, socket, re +import shlex, multiprocessing, time, shutil, json +from novaclient import client as nvclient +from cinderclient import client as cdclient +import novaclient.exceptions as nvexceptions +from keystoneclient import client as ksclient +from joblib import Parallel, delayed +from multiprocessing import Process, Manager, Pool +import yaml + +def gatherInfo(md_key,md_value,authDict,project_id,inventory): + ## Fetch the Nova Object + from keystoneclient import client as ksclient + from keystoneauth1.identity import v3 + from keystoneauth1 import session + auth = v3.Password(project_id=project_id,**authDict) + sess = session.Session(auth=auth) + nc = nvclient.Client('2.0',session=sess) + cc = cdclient.Client('3.0',session=sess) + + for server in nc.servers.list(): + if server.metadata and \ + 'ansible_host_groups' in server.metadata and \ + md_key in server.metadata: + if server.metadata[md_key].strip() != md_value.strip(): continue + unwantedChars = """][")(""" + rgx = re.compile('[%s]' % unwantedChars) + ansible_groups = rgx.sub('', server.metadata['ansible_host_groups']).split(',') + hostname = server.name + novaVolumes = cc.volumes.list(server.id) + # Set Ansible Host Group + for group in ansible_groups: + groupName = group.strip() + if groupName not in inventory: inventory[groupName] = [] + inventory[groupName].append(hostname) + # Add other metadata + if not hostname in inventory['_meta']['hostvars']: + inventory['_meta']['hostvars'][hostname] = {} + for md in server.metadata.items(): + if md[0] not in (md_key,'ansible_host_groups'): + inventory['_meta']['hostvars'][hostname].update({ md[0]:md[1] }) + if novaVolumes: + volDict = {} + for volume in novaVolumes: + try: + if volume.attachments[0]['server_id'] == server.id: + volDict[volume.name] = {'dev':'/dev/disk/by-id/virtio-' + volume.id[:20],'uuid':volume.id} + except IndexError: + continue + if volDict: inventory['_meta']['hostvars'][hostname]['ansible_host_volumes'] = volDict + network_name=None + if len(list(server.networks.keys())) > 1: + for nn in server.networks.keys(): + if 'internal' in nn: + network_name = nn + else: + inventory['_meta']['hostvars'][hostname]['public_host'] = server.networks[nn][0] + for network in server.addresses.items(): + for a in network[1]: + if a['OS-EXT-IPS:type'] == 'floating': + inventory['_meta']['hostvars'][hostname]['ext_ip'] = a['addr'] + if network_name == None: + try: + network_name = list(server.networks.keys())[0] + except: + print("An error occured while processing ",server) + try: + inventory['_meta']['hostvars'][hostname]['ansible_host'] = server.networks[network_name][0] + except: + print("An error occured while processing ",server) + + else: + continue + return inventory + +def merge(i,j): + for k in i.keys(): + v=i[k] + if k in j: + if isinstance(v,list): + j[k].extend(v) + if isinstance(v,dict): + merge(i[k],j[k]) + else: + j[k]=i[k] + + +if __name__ == "__main__": + inventory = {} + inventory['_meta'] = { 'hostvars': {} } + authDict={} + try: + authDict['auth_url'] = os.environ['OS_AUTH_URL'] + authDict['username'] = os.environ['OS_USERNAME'] + authDict['password'] = os.environ['OS_PASSWORD'] + authDict['user_domain_name'] = os.environ['OS_USER_DOMAIN_NAME'] + except KeyError: + print("Env Variables not set, Please run: source <openstack rc file>") + sys.exit() + md_key="project_name" + md_value=sys.argv[1] + from keystoneclient import client as ksclient + import keystoneclient + from keystoneauth1.identity import v3 + from keystoneauth1 import session +# auth = v3.Password(username=userName, password=passwd, auth_url=authUrl,user_domain_name=domainName) + auth = v3.Password(unscoped=True,**authDict) + sess = session.Session(auth=auth) + kc = ksclient.Client(session=sess) + kc.include_metadata = False + authmgr = keystoneclient.v3.auth.AuthManager(kc) + projects = authmgr.projects() + enabled_projects = [ x for x in projects if x.enabled ] + + inventory_list = Parallel(n_jobs=len(projects))(delayed(gatherInfo) (md_key,md_value, authDict, proj.id, inventory) for proj in enabled_projects) + + inventory={} + + for i in inventory_list: + merge(i,inventory) + #for k, v in inventory.items(): + # sorted_inventory={k:sorted(v)} + for key in inventory: + if key=='_meta': + pass + else: + inventory[key].sort() + yamlinventory = {} + yamlinventory['all']={} + yamlinventory['all']['children'] = {} + yamlinventory['all']['children']['hostvars'] = {} + yamlinventory['all']['children']['hostvars']['hosts'] = inventory['_meta']['hostvars'] + yamlinventory['all']['children']['hostvars']['vars'] = {'ansible_python_interpreter': '/usr/bin/python3'} + for g in inventory.keys(): + if g != '_meta': + hostdict = {} + for h in inventory[g]: + hostdict[h]={} + yamlinventory['all']['children'][g] = {} + yamlinventory['all']['children'][g]['hosts'] = hostdict + print(yaml.dump(yamlinventory)) diff --git a/CICD/infra/os_create.yml b/CICD/infra/os_create.yml new file mode 100644 index 0000000000000000000000000000000000000000..faf9441cbd8b94217c39389405b5286453323f9a --- /dev/null +++ b/CICD/infra/os_create.yml @@ -0,0 +1,188 @@ +--- +- name: load vars + hosts: localhost + tasks: + - include_vars: os_vars.yml + tags: allways + +- name: create network + hosts: localhost + tasks: + - name: network + openstack.cloud.network: + state: present + name: "{{ project_name }}-network" + register: network + - name: debug network + debug: + var: network + + - openstack.cloud.subnet: + state: present + name: "{{ project_name }}-subnet" + network_name: "{{ network.network.name }}" + ip_version: 4 + cidr: 192.168.0.0/24 + dns_nameservers: + - 8.8.8.7 + - 8.8.8.8 + register: subnet + + - openstack.cloud.router: + state: present + name: "{{ project_name }}-router" + network: "{{ ext_network }}" + interfaces: + - "{{ project_name }}-subnet" + + - openstack.cloud.security_group: + state: present + name: "{{ project_name }}-secgroup" + register: secgroup + - name: debug secgroup + debug: + var: secgroup + + - openstack.cloud.security_group_rule: + security_group: "{{ project_name}}-secgroup" + remote_group: "{{ project_name}}-secgroup" + protocol: "tcp" + - openstack.cloud.security_group_rule: + security_group: "{{ project_name}}-secgroup" + remote_group: "{{ project_name}}-secgroup" + protocol: "icmp" + + - name: debug subnet + debug: + var: subnet + +- name: create bastion node + hosts: localhost + tasks: + - name: bastionnodes + openstack.cloud.server: + state: present + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + - "{{ project_name}}-secgroup" + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "BastionNodes" ]' + nics: + - net-id: "{{ network.network.id }}" + userdata: "{{ os_userdata }}" + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name}}-bastion0", flavor: t3.xsmall } + +- name: create login nodes + hosts: localhost + tasks: + - name: Loginnodes + openstack.cloud.server: + state: present + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + - "{{ project_name}}-secgroup" + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "LoginNodes", "ManagementNodes", "LdapNodes" ]' + nics: + - net-id: "{{ network.network.id }}" + userdata: "{{ os_userdata }}" + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name }}-login0", flavor: t3.medium } + - { vmname: "{{ project_name }}-login1", flavor: t3.medium } + +- name: create volumes for slurmstate and homedir + hosts: localhost + tasks: + - name: slurm volume + openstack.cloud.volume: + state: present + availability_zone: "{{ availability_zone }}" + size: 2 + display_name: "{{project_name}}_slurm_state" + register: slurm_state_volume + + - name: slurm volume + openstack.cloud.volume: + state: present + availability_zone: "{{ availability_zone }}" + size: 10 + display_name: "{{ project_name }}_userdata" + register: user_volume + - name: debug slurm_state + debug: + var: slurm_state_volume + +- name: create sql node + hosts: localhost + tasks: + - name: SQLnodes + openstack.cloud.server: + state: present + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + - "{{ project_name}}-secgroup" + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "SQLNodes", "NFSNodes" ]' + nics: + - net-id: "{{ network.network.id }}" + userdata: "{{ os_userdata }}" + name: "{{ item.vmname }}" + volumes: [ "{{ slurm_state_volume.volume.id }}", "{{ user_volume.volume.id }}"] + loop: + - { vmname: "{{ project_name }}-sql0", flavor: t3.medium } + + + - name: create compute nodes + openstack.cloud.server: + + state: present + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + - "{{ project_name}}-secgroup" + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "ComputeNodes" ]' + nics: + - net-id: "{{ network.network.id }}" + userdata: "{{ os_userdata }}" + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name }}-node00", flavor: t3.medium } + - { vmname: "{{ project_name }}-node01", flavor: t3.medium } + + - name: attach floating ip + openstack.cloud.floating_ip: + state: present + server: "{{ project_name }}-bastion0" + network: "{{ ext_network }}" + reuse: true diff --git a/CICD/infra/os_delete.yml b/CICD/infra/os_delete.yml new file mode 100644 index 0000000000000000000000000000000000000000..9a0c4ae1b9ce0147c5c120cc94783a0b20eeeb71 --- /dev/null +++ b/CICD/infra/os_delete.yml @@ -0,0 +1,138 @@ +--- + +- name: load vars + hosts: localhost + tasks: + - include_vars: os_vars.yml + tags: allways + +- name: create bastion node + hosts: localhost + tasks: + - name: bastionnodes + openstack.cloud.server: + state: absent + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "BastionNodes" ]' + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name}}-bastion0", flavor: t3.xsmall } + +- name: create login nodes + hosts: localhost + tasks: + - name: Loginnodes + openstack.cloud.server: + state: absent + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "LoginNodes", "ManagementNodes", "LdapNodes" ]' + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name }}-login0", flavor: t3.medium } + - { vmname: "{{ project_name }}-login1", flavor: t3.medium } + + +- name: create sql node + hosts: localhost + tasks: + - name: SQLnodes + openstack.cloud.server: + state: absent + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "SQLNodes", "NFSNodes" ]' + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name }}-sql0", flavor: t3.medium } + +- name: create volumes for slurmstate and homedir + hosts: localhost + tasks: + - name: slurm volume + openstack.cloud.volume: + state: absent + availability_zone: "{{ availability_zone }}" + size: 2 + display_name: "{{project_name}}_slurm_state" + + - name: slurm volume + openstack.cloud.volume: + state: absent + availability_zone: "{{ availability_zone }}" + size: 10 + display_name: "{{project_name}}_userdata" + register: user_volume + + - name: create compute nodes + openstack.cloud.server: + + state: absent + timeout: 600 + availability_zone: "{{ availability_zone }}" + image: "{{ image }}" + flavor: "{{ item.flavor }}" + auto_ip: false + security_groups: + - default + meta: + project_name: "{{ project_name }}" + ansible_user: ubuntu + ansible_host_groups: '[ "ComputeNodes" ]' + name: "{{ item.vmname }}" + loop: + - { vmname: "{{ project_name }}-node00", flavor: t3.medium } + - { vmname: "{{ project_name }}-node01", flavor: t3.medium } + + - openstack.cloud.router: + state: absent + name: "{{ project_name }}-router" + - openstack.cloud.subnet: + state: absent + name: "{{ project_name }}-subnet" + + - openstack.cloud.security_group: + state: absent + name: "{{ project_name }}-secgroup" + + +- name: create network + hosts: localhost + tasks: + - name: network + openstack.cloud.network: + state: absent + name: "{{ project_name }}-network" + register: network + - name: debug network + debug: + var: network + + + + diff --git a/CICD/infra/os_vars.yml b/CICD/infra/os_vars.yml new file mode 100644 index 0000000000000000000000000000000000000000..6cbb7dcb7c41c4573af6ddef25f269434e93123b --- /dev/null +++ b/CICD/infra/os_vars.yml @@ -0,0 +1,16 @@ +--- +#variables to configure the vms +clustername: "HPCasCode-ci-mlaas" +project_name: "HPCasCode-ci-mlaas" +domain: "HPCasCode-ci-mlaas.org.au" +# variabls for openstack +image: 356ff1ed-5960-4ac2-96a1-0c0198e6a999 +availability_zone: QRIScloud +ext_network: QRIScloud +# The bit that says #cloud-config is not a COMMENT, its part of a multiline string sent to openstack +os_userdata: | + #cloud-config + users: + - default + - name: ubuntu + ssh_authorized_keys: 'cert-authority ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfHlWGrnpirvqvUTySnoQK6ze5oIXz7cYIT+XCBeBCahlK05O38g0erBGrNWFozZwbIXnysVCibaUJqtH0JrYqmcr2NnYA0PoiTeranvaJI7pQsga1gBxfK/D4UItw5yI6V7w9efMT0zpIP8WEubQz6GFtkyiNVgFCHj3+VhLs3RslvYzb35SFcLXEDsGVQM5NdWBUgRaNRqpTPvuMcxTyPvy32wW72kwaYRQioDJFcE2WJ240M2oSsx+dhTWvI8sW1sEUI1qIDfyBPsOgsLofuSpt4ZNgJqBUTp/hW85wVpNzud6A4YJWHpZXSDMtUMYE9QL+x2fw/b26yck9ZPE/ hines@tun' diff --git a/CICD/infra/os_vars.yml.j2 b/CICD/infra/os_vars.yml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..f6cbba08bcf12472fe3720d32c35df560405f9d9 --- /dev/null +++ b/CICD/infra/os_vars.yml.j2 @@ -0,0 +1,17 @@ +--- +#variables to configure the vms +clustername: "{{ clustername }}" +project_name: "{{ clustername }}" +domain: "{{ clustername }}.org.au" +# variabls for openstack +image: 356ff1ed-5960-4ac2-96a1-0c0198e6a999 +availability_zone: QRIScloud +ext_network: QRIScloud +# The bit that says #cloud-config is not a COMMENT, its part of a multiline string sent to openstack +os_userdata: | + #cloud-config + users: + - default + - name: ubuntu + ssh_authorized_keys: '{{ ssh_ca }}' + diff --git a/CICD/infra/template.py b/CICD/infra/template.py new file mode 100644 index 0000000000000000000000000000000000000000..9e03b1f4fc04e354470fa83f64bd8e55ba5b73f8 --- /dev/null +++ b/CICD/infra/template.py @@ -0,0 +1,10 @@ +import os +import jinja2 +ref_name = os.environ.get('CI_COMMIT_REF_NAME') +git_name = os.environ.get('CI_PROJECT_NAME') +ssh_ca = os.environ.get('SSH_CA') +cluster_name = "{}-ci-{}".format(git_name,ref_name) +with open('os_vars.yml.j2','r') as f: + template = jinja2.Template(f.read()) +with open('os_vars.yml','w') as f: + f.write(template.render(clustername=cluster_name, ssh_ca=ssh_ca)) diff --git a/CICD/make_files.py b/CICD/make_files.py new file mode 100644 index 0000000000000000000000000000000000000000..c5faff0bb05f0a13edede0be364c8b6bd0292b66 --- /dev/null +++ b/CICD/make_files.py @@ -0,0 +1,211 @@ +import os +def init_ssh_keys(inventory): + import subprocess + # Run ssh-keygen to generate host keys for login and compute nodes + key_types = ['rsa','dsa','ecdsa','ed25519'] + #groups = list(filter(lambda x: x != 'hostvars', inventory['all']['children'].keys())) + groups = ['LoginNodes','ComputeNodes'] + for t in key_types: + for g in groups: + output = 'files/ssh_{}_{}_key'.format(g,t) + if os.path.exists(output): + continue + p = subprocess.call(['ssh-keygen','-N','','-f',output,'-t',t]) + +def init_passwords(): + import yaml + def gen_password(n=32): # Munge key needs a minimum 32 bytes + import string + import random + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for i in range(n)) + required_passwords = [ + "mungekey", + "slurmdb_passwd", + "default_user_password", + "influxdb_password", + ] + passwords = {} + for p in required_passwords: + passwords[p] = gen_password() + outputfile = 'vars/passwords.yml' + if os.path.exists(outputfile): + return + with open(outputfile,'w') as f: + f.write(yaml.dump(passwords)) + + +def make_hosts(inventory): + # create a file to template /etc/hosts with each nodes IP address + hostsdata = """ +127.0.0.1 localhost +::1 ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +""" + for h in inventory['all']['children']['hostvars']['hosts'].items(): + hostsdata = hostsdata + "{} {}\n".format(h[1]['ansible_host'],h[0]) + outputfile = 'files/etcHosts' + with open(outputfile,'w') as f: + f.write(hostsdata) + +def make_vars_filesystems(choices, inventory): + import jinja2 + data = {} + data['domain'] = choices['domain'] + data['project_name'] = choices['project_name'] + project_name = choices['project_name'] + # ATM we have only one NFS server, and its hostname ends in -sql because it does double duty as the SQL server for slurm accounting logs + nfsserver = "{}-sql0".format(choices['project_name']) + + for vol in ['userdata','slurm_state']: + data['{}_disk'.format(vol)] = inventory['all']['children']['hostvars']['hosts'][nfsserver]['ansible_host_volumes']["{}_{}".format(project_name,vol)]['dev'] + + with open('pre_templates/filesystems_yml.j2') as f: + template = jinja2.Template(f.read()) + + + with open('vars/filesystems.yml','w') as f: + f.write(template.render(**data)) + +def make_ssh_cfg(choices, inventory): + import jinja2 + data = choices | inventory + bastion_server = "{}-bastion0".format(choices['project_name']) + ansible_user = inventory['all']['children']['hostvars']['hosts'][bastion_server]['ansible_user'] + bastion_floating_ip = inventory['all']['children']['hostvars']['hosts'][bastion_server]['ext_ip'] + data['ansible_user'] = ansible_user + data['bastion_floating_ip'] = bastion_floating_ip + with open('pre_templates/ssh_cfg.j2') as f: + template = jinja2.Template(f.read()) + with open('ssh.cfg','w') as f: + f.write(template.render(**data)) + + +def make_nfs_exports(inventory): + # Generate an /etc/exports file for our NFS server to allow compute nodes to connect + import yaml + srvopts = "rw,no_root_squash" + with open('vars/filesystems.yml','r') as f: + fs = yaml.safe_load(f.read()) + for host in fs['nfsexports']: + with open('files/etcExports','w') as f: + for e in host['exportList']: + f.write('{} {}({})\n'.format(e['src'],'192.168.0.0/24',srvopts)) + +def groups_from_inventory(inventory): + groups = {} + for g in inventory['all']['children'].items(): + groups[g[0]] = g[1]['hosts'].keys() + return groups + +def make_slurm_config(choices, inventory): + # Generate a slurm.conf from template + # should include putting the compute nodes in the correct place + # and listing the mgmt nodes as slurm controlers + import jinja2 + import yaml + groups = groups_from_inventory(inventory) + mgmtnodes = list(inventory['all']['children']['ManagementNodes']['hosts'].keys()) + sqlnodes = list(inventory['all']['children']['SQLNodes']['hosts'].keys()) + mgmtnodes.sort() + choices['controller']=mgmtnodes[0] + choices['backup']=mgmtnodes[1] + choices['sqlnode']=sqlnodes[0] + with open('pre_templates/slurm_vars.j2') as f: + template = jinja2.Template(f.read()) + with open('vars/slurm.yml','w') as f: + f.write(template.render(**choices)) + + with open('vars/slurm.yml') as f: + slurmvars = yaml.safe_load(f.read()) + slurmvars['groups'] = groups + slurmvars = slurmvars | choices + with open('pre_templates/slurm.conf.j2') as f: + template = jinja2.Template(f.read()) + with open('files/slurm.conf','w') as f: + f.write(template.render(**slurmvars)) + with open('pre_templates/slurmdbd.conf.j2') as f: + template = jinja2.Template(f.read()) + with open('files/slurmdbd.conf','w') as f: + f.write(template.render(**slurmvars)) + +def make_nhc_config(inventory): + import jinja2 + with open('pre_templates/nhc.conf.j2') as f: + template = jinja2.Template(f.read()) + with open('files/nhc.conf') as f: + f.write(template.render()) + +def make_known_hosts(inventory): + with open('files/ssh_known_hosts','w') as f: + f.write('\n') +def make_gres_conf(inventory): + with open('files/gres.conf','w') as f: + f.write('\n') + +def make_vars_vars(choices, inventory): + import jinja2 + groups = groups_from_inventory(inventory) + mgmtnodes = list(inventory['all']['children']['ManagementNodes']['hosts'].keys()) + sqlnodes = list(inventory['all']['children']['SQLNodes']['hosts'].keys()) + mgmtnodes.sort() + choices['controller']=mgmtnodes[0] + choices['backup']=mgmtnodes[1] + choices['sqlnode']=sqlnodes[0] + with open('pre_templates/vars_yml.j2') as f: + template = jinja2.Template(f.read()) + with open('vars/vars.yml','w') as f: + f.write(template.render(**choices)) + with open('vars/vars_centos79.yml','w') as f: + f.write('# empty file for compatibility with HPCasCode\n') + + + +def init_cluster(inventory): + # + # These values should not change, but they are chosen at random, so only do it once + # + init_ssh_keys(inventory) + init_passwords() + +def derive_ansible_constants(choices, inventory): + # + # These values are deviced from the inventory and various choices make about the cluster + # No matter how many times you run this it won't change + # + make_hosts(inventory) + make_slurm_config(choices, inventory) + make_vars_filesystems(choices, inventory) + make_nfs_exports(inventory) + make_known_hosts(inventory) + make_gres_conf(inventory) + make_vars_vars(choices, inventory) + make_ssh_cfg(choices, inventory) + + +def main(): + import sys + import yaml + with open(sys.argv[1]) as f: + inventory = yaml.safe_load(f.read()) + with open(sys.argv[2]) as f: + choices = yaml.safe_load(f.read()) + with open(sys.argv[3]) as f: + versions = yaml.safe_load(f.read()) + + choices = choices | versions + + init_cluster(inventory) + + with open('vars/passwords.yml') as f: + passwords = yaml.safe_load(f.read()) + + choices = choices | passwords + + derive_ansible_constants(choices, inventory) + +if __name__ == "__main__": + main() diff --git a/CICD/pre_templates/filesystems_yml.j2 b/CICD/pre_templates/filesystems_yml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..a823cb021e1f53a0a099e06d50a97255d0b24d63 --- /dev/null +++ b/CICD/pre_templates/filesystems_yml.j2 @@ -0,0 +1,28 @@ +domain: {{ domain }} +volumes: + - host: {{ project_name}}-sql0 + dev: {{ slurm_state_disk }} + mnt: /mnt/slurm_state + - host: {{ project_name }}-sql0 + dev: {{ userdata_disk }} + mnt: /mnt/userdata +nfsexports: + - host: {{ project_name }}-sql0 + exportList: + - src: /mnt/userdata + - src: /mnt/slurm_state +nfsmounts: + - group: ComputeNodes + nfsMounts: + - name: /userdata + ipv4: {{ project_name }}-sql0 + src: /mnt/userdata + fstype: nfs4 + opts: "defaults,rw" + - group: ManagementNodes + nfsMounts: + - name: /slurm_state + ipv4: {{ project_name }}-sql0 + src: /mnt/slurm_state + fstype: nfs4 + opts: "defaults,rw" diff --git a/CICD/pre_templates/nhc.conf.j2 b/CICD/pre_templates/nhc.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..a5921218b83415835be2f8c168520bd9d7b05866 --- /dev/null +++ b/CICD/pre_templates/nhc.conf.j2 @@ -0,0 +1,29 @@ + + +####################################################################### +### +### Filesystem checks +### +# * || check_fs_mount_rw -t "fuse.glusterfs" -s "mgmt0:/gv" -f "/glusterVolume" + * || check_fs_used / 90% +# * || check_fs_used /glusterVolume 90% + * || check_fs_iused / 100% +# * || check_fs_iused /glusterVolume 100% + + +####################################################################### +### +### Hardware checks +### + * || check_hw_cpuinfo 1 1 1 +# * || check_hw_physmem 4048416kB 4048416kB 3% + * || check_hw_swap 0kB 0kB 3% + * || check_hw_eth eth0 + * || check_hw_eth lo + + +####################################################################### +### +### Process checks +### + * || check_ps_service -S -u root sshd diff --git a/CICD/pre_templates/slurm.conf.j2 b/CICD/pre_templates/slurm.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..6004fabdb4b230c8705dbb0be41206bbf6d0e78e --- /dev/null +++ b/CICD/pre_templates/slurm.conf.j2 @@ -0,0 +1,166 @@ +# +# Example slurm.conf file. Please run configurator.html +# (in doc/html) to build a configuration file customized +# for your environment. +# +# +# slurm.conf file generated by configurator.html. +# +# See the slurm.conf man page for more information. +# +ClusterName={{ clustername }} +ControlMachine={{ controller }} +BackupController={{ backup }} +#ControlAddr= +#BackupController= +#BackupAddr= +# +SlurmctldParameters=enable_configless +SlurmUser=slurm +SlurmdUser=root +SlurmctldPort=6817 +SlurmdPort=6818 +AuthType=auth/munge +#JobCredentialPrivateKey= +#JobCredentialPublicCertificate= +StateSaveLocation=/opt/slurm/var/state +SlurmdSpoolDir=/opt/slurm/var/spool +SwitchType=switch/none +MpiDefault=pmi2 +SlurmctldPidFile=/opt/slurm/var/run/slurmctld.pid +SlurmdPidFile=/opt/slurm/var/run/slurmd.pid +#ProctrackType=proctrack/linuxproc +ProctrackType=proctrack/cgroup +#PluginDir= +CacheGroups=0 +#FirstJobId= +ReturnToService=1 +RebootProgram=/sbin/reboot +#ResumeTimeout=300 +#MaxJobCount= +#PlugStackConfig= +#PropagatePrioProcess= +#PropagateResourceLimits= +#PropagateResourceLimitsExcept= +#Prolog= +#Epilog= +#SrunProlog= +#SrunEpilog= +#TaskProlog= +#TaskEpilog= +TaskPlugin=task/cgroup +#TaskPlugin=task/affinity +#TaskPlugin=task/affinity,task/cgroup +JobSubmitPlugins=lua +OverTimeLimit=1 +CompleteWait=10 + +#TrackWCKey=no +#TreeWidth=50 +#TmpFS= +#UsePAM= +# +# TIMERS +SlurmctldTimeout=3000 +#SlurmdTimeout=300 +#InactiveLimit=0 +#MinJobAge=300 +KillWait=10 +#Waittime=0 +# +# SCHEDULING +SchedulerType="sched/backfill" +#SchedulerAuth= +#SchedulerPort= +#SchedulerRootFilter= +SelectType="select/linear" +{% if slurmselecttype.find("cons_tres") > 0 %} +SelectTypeParameters=CR_Core_Memory +{% endif %} +PriorityType=priority/multifactor +#PriorityFlags=Ticket_Based +#PriorityCalcPeriod=5 +#PriorityDecayHalfLife=0 +#PriorityUsageResetPeriod=14-0 +PriorityWeightFairshare=10000 +PriorityWeightAge=10000 +PriorityWeightPartition=10000 +PriorityWeightJobSize=10000 +PriorityMaxAge=14-0 +# +# LOGGING +{% if slurmctlddebug %} +SlurmctldDebug={{ slurmctlddebug.level }} +SlurmctldLogFile={{ slurmctlddebug.log }} +{% else %} +#SlurmctldDebug= +#SlurmctldLogFile= +{% endif %} +{% if slurmddebug %} +SlurmdDebug={{ slurmddebug.level }} +SlurmdLogFile={{ slurmddebug.log }} +{% else %} +#SlurmdDebug= +#SlurmdLogFile= +{% endif %} +{% if slurmschedlog %} +SlurmSchedlogLevel={{ slurmschedlog.level }} +SlurmSchedLogFile={{ slurmschedlog.log }} +{% else %} +#SlurmSchedlogLevel= +#SlurmSchedLogFile= +{% endif %} +JobCompType=jobcomp/none +#JobCompLoc= +# +{% if slurmjob is defined %} +Prolog={{ slurmjob.prolog }} +Epilog={{ slurmjob.epilog }} +{% else %} +Prolog=/opt/slurm/etc/slurm.prolog +Epilog=/opt/slurm/etc/slurm.epilog +{% endif %} +# +# ACCOUNTING +JobAcctGatherType=jobacct_gather/linux +JobAcctGatherFrequency=30 +# +AccountingStorageType=accounting_storage/slurmdbd +AccountingStorageHost={{ controller }} +{% if slurmdbdbackup is defined %} +AccountingStorageBackupHost={{ backup }} +{% endif %} +AccountingStorageEnforce=limits,safe +#AccountingStorageLoc= +#AccountingStoragePass= +#AccountingStorageUser= +# +#GRES +GresTypes=gpu +# + +HealthCheckInterval=300 +HealthCheckProgram={{ nhc_dir }}/sbin/nhc + +DisableRootJobs=YES +MpiParams=ports=12000-12999 +# COMPUTE NODES +{% set nodelist = [] %} +{% for queue in slurmqueues %} +{% for node in groups[queue.group] %} +{% if nodelist.append(node) %} +{% endif %} +{% endfor %} +{% endfor %} +{% for node in nodelist|unique %} +NodeName={{ node }} Procs=1 RealMemory=1024 Sockets=1 CoresPerSocket=1 ThreadsPerCore=1 Gres=gpu:0 Weight=1 State=UNKNOWN +{% endfor %} + +{% for queue in slurmqueues %} +{% set nodenames = [] %} +{% for node in groups[queue.group] %} +{% if nodenames.append(node) %} +{% endif %} +{% endfor %} +PartitionName={{ queue.name }} {% if queue.default %}Default=yes{% endif %} Nodes={{ nodenames|join(',') }} {% if queue.DefaultTime is defined %} DefaultTime={{ queue.DefaultTime }} {% endif %} {% if queue.DefMemPerCPU is defined %} DefMemPerCPU={{ queue.DefMemPerCPU }} {% endif %} {% if queue.MaxTime is defined %} MaxTime={{ queue.MaxTime}} {% endif %} State=UP +{% endfor %} diff --git a/CICD/pre_templates/slurm_vars.j2 b/CICD/pre_templates/slurm_vars.j2 new file mode 100644 index 0000000000000000000000000000000000000000..8c798cd7778157ccd2659e725604e49ec56b9c8d --- /dev/null +++ b/CICD/pre_templates/slurm_vars.j2 @@ -0,0 +1,58 @@ +--- +desktopNodeList: + - { name : 'DesktopNodes', interface : 'eth0' } +slurmqueues: + - {name: batch, group: ComputeNodes, default: yes} + + +slurmsharedstatedir: /slurm_state +slurm_version: {{ slurm_version }} +munge_version: {{ munge_version }} +nhc_version: {{ nhc_version }} +ucx_version: {{ ucx_version }} +clustername: "{{ project_name }}" + + +nhc_src_url: {{ nhc_src_url }} +nhc_src_checksum: {{ nhc_src_checksum }} +nhc_src_dir: {{ nhc_src_dir }} +nhc_dir: {{ nhc_dir }} +slurm_src_url: {{ slurm_src_url }} +slurm_src_checksum: {{ slurm_src_checksum }} +slurm_src_dir: {{ slurm_src_dir }} +slurm_dir: {{ slurm_dir }} +ucx_src_url: {{ ucx_src_url }} +ucx_src_checksum: {{ ucx_src_checksum }} +ucx_src_dir: {{ ucx_src_dir }} +ucx_dir: {{ ucx_dir }} +munge_src_url: {{ munge_src_url }} +munge_src_checksum: {{ munge_src_checksum }} +munge_src_dir: {{ munge_src_dir }} +munge_dir: {{ munge_dir }} + +nhc_config_file: nhc.conf +nhc_log_level: 0 +nhc_emails: nobody@nowhere.nowhere +nhc_email_subject: "Node Health Check" +mysql_host: "{{ sqlnode }}" +slurmctrl: "{{ controller }}" +slurmctrlbackup: "{{ backup }}" +slurmdbd: "{{ controller }}" +slurmdbdpiddir: "/opt/slurm/var/run" +slurmdbdbackup: "{{ backup }}" +slurm_lua: true +slurmlogin: "{{ controller }}" +slurmlogdir: "/var/log" +slurmctlddebug: {level: 5, log: '/mnt/slurm-logs/slurmctld.log'} +slurmddebug: {level: 5, log: '/var/log/slurmd.log'} +slurmschedlog: {level: 5, log: '/mnt/slurm-logs/slurmsched.log'} +slurmdbdlog: {level: 5, log: '/mnt/slurm-logs/slurmdbd.log'} +slurmfairshare: {def: false, val: 10000} +slurmdatadir: "/opt/slurm/var/spool" +slurmstatedir: "/opt/slurm/var/state" +slurmpiddir: "/opt/slurm/var/run" +slurmselecttype: "select/linear" +slurmfastschedule: "1" +slurmschedulertype: "sched/backfill" +restartServerList: + - slurm diff --git a/CICD/pre_templates/slurmdbd.conf.j2 b/CICD/pre_templates/slurmdbd.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..9888bbdee386c3de163f4f6ba26f2156d0d09c87 --- /dev/null +++ b/CICD/pre_templates/slurmdbd.conf.j2 @@ -0,0 +1,40 @@ +# +# Example slurmdbd.conf file. +# +# See the slurmdbd.conf man page for more information. +# +# Archive info +#ArchiveJobs=yes +#ArchiveDir="/tmp" +#ArchiveSteps=yes +#ArchiveScript= +#JobPurge=12 +#StepPurge=1 +# +# Authentication info +AuthType=auth/munge +#AuthInfo=/var/run/munge/munge.socket.2 +# +# slurmDBD info +#DbdAddr= +DbdHost={{ controller }} +DbdBackupHost={{ backup }} +#DbdPort=7031 +SlurmUser=slurm +#MessageTimeout=300 +#DefaultQOS=normal,standby +#DebugLevel= +#LogFile= +PidFile=/opt/slurm/var/run/slurmdbd.pid +#PluginDir=/usr/lib/slurm +#PrivateData=accounts,users,usage,jobs +#TrackWCKey=yes +# +# Database info +StorageType=accounting_storage/mysql +StorageHost={{ sqlnode }} +#StoragePort=1234 +StoragePass={{ slurmdb_passwd }} +StorageUser=slurmdb +StorageLoc=slurm_acct_db + diff --git a/CICD/pre_templates/ssh_cfg.j2 b/CICD/pre_templates/ssh_cfg.j2 new file mode 100644 index 0000000000000000000000000000000000000000..79b8019a6007b9be0dafc397a514ab5d4e51e5c6 --- /dev/null +++ b/CICD/pre_templates/ssh_cfg.j2 @@ -0,0 +1,6 @@ +Host 192.168.* + ProxyJump={{ ansible_user }}@{{ bastion_floating_ip }} + StrictHostKeyChecking=no + ServerAliveInterval 60 + ControlMaster auto + ControlPath ~/.ssh/%r@%h:%p diff --git a/CICD/pre_templates/ssh_cfg.j2~ b/CICD/pre_templates/ssh_cfg.j2~ new file mode 100644 index 0000000000000000000000000000000000000000..79b8019a6007b9be0dafc397a514ab5d4e51e5c6 --- /dev/null +++ b/CICD/pre_templates/ssh_cfg.j2~ @@ -0,0 +1,6 @@ +Host 192.168.* + ProxyJump={{ ansible_user }}@{{ bastion_floating_ip }} + StrictHostKeyChecking=no + ServerAliveInterval 60 + ControlMaster auto + ControlPath ~/.ssh/%r@%h:%p diff --git a/CICD/pre_templates/vars_yml.j2 b/CICD/pre_templates/vars_yml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..8390c468bfc4316c40d38374095404cb6fb84881 --- /dev/null +++ b/CICD/pre_templates/vars_yml.j2 @@ -0,0 +1,6 @@ +--- +sudo_group: systems +nagios_home: "/var/lib/nagios" +nvidia_version: "450.51.06" +syslog_server: "{{ sqlnode }}" + diff --git a/CICD/vars/c7packages.yml b/CICD/vars/c7packages.yml deleted file mode 100644 index eb58fc7a905c2b10a04d5dce9d029be7c47862e9..0000000000000000000000000000000000000000 --- a/CICD/vars/c7packages.yml +++ /dev/null @@ -1,1742 +0,0 @@ ---- - -#this file contains three variables: -# - extra_packages_epel -# - exptra_packages -# - excludes -# please try to give hints on why packets have been added to this list. - -extra_packages_epel: - - python-progressbar - - python-requestbuilder - - python-ecdsa - # packages for mate desktop - - mate-notification-daemon - - pkcs11-helper - - pluma - - caja-sendto - - mate-applets - - djvulibre-libs - - mathjax-winchrome-fonts - - mate-system-monitor - - mathjax-ams-fonts - - mate-icon-theme - - mate-dictionary - - mate-desktop - - mate-terminal - - mate-calc - - lightdm-gobject - - xl2tpd - - mate-control-center-filesystem - - mathjax - - mathjax-size2-fonts - - mathjax-main-fonts - - libmateweather-data - - wxBase - - wxGTK - - atril-caja - - web-assets-filesystem - - pyxdg - - fortune-mod - - atril - - p7zip-plugins - - filezilla - - openconnect - - mate-user-guide - - mate-settings-daemon - - transmission-gtk - - polkit-gnome - - mate-menus-libs - - simple-scan - - libmatemixer - - mate-screenshot - - libmateweather - - p7zip - - mate-disk-usage-analyzer - - mate-menus-preferences-category-menu - - lightdm - - marco - - mathjax-script-fonts - - caja-extensions-common - - atril-libs - - gparted - - gtk2-engines - - libmatekbd - - lightdm-gtk-common - - wxGTK - - mate-session-manager - - NetworkManager-openvpn - - mathjax-sansserif-fonts - - mate-desktop-libs - - lz4 - - NetworkManager-vpnc-gnome - - openvpn - - yumex - - libnatpmp - - mate-system-log - - mathjax-caligraphic-fonts - - unique - - mate-control-center - - vpnc - - mate-panel - - mate-themes - - NetworkManager-l2tp - - NetworkManager-openconnect - - mate-utils-common - - mathjax-size1-fonts - - pygtksourceview - - vpnc-script - - caja - - webkitgtk - - stoken-libs - - mate-panel-libs - - engrampa - - mathjax-size4-fonts - - caja-extensions - - pluma-data - - caja-open-terminal - - mathjax-size3-fonts - - mozo - - mate-polkit - - mathjax-math-fonts - - transmission-common - - gtksourceview2 - - NetworkManager-vpnc - - lightdm-gtk - - mate-media - - eom - - mate-backgrounds - - mate-menus - - caja-schemas - - mathjax-fraktur-fonts - - mathjax-winie6-fonts - - mate-screensaver - - mathjax-typewriter-fonts - - libwnck - - caja-image-converter - - gtk-murrine-engine - - NetworkManager-pptp - - mate-search-tool - - mate-power-manager - -extra_packages: - - '@Development tools' - - abattis-cantarell-fonts - - abrt - - abrt-addon-ccpp - - abrt-addon-kerneloops - - abrt-addon-pstoreoops - - abrt-addon-python - - abrt-addon-vmcore - - abrt-addon-xorg - - abrt-cli - - abrt-console-notification - - abrt-dbus - - abrt-desktop - - abrt-gui - - abrt-gui-libs - - abrt-java-connector - - abrt-libs - - abrt-python - - abrt-retrace-client - - abrt-tui - - accountsservice - - accountsservice-libs - - acpid - - adcli - - adwaita-cursor-theme - - adwaita-gtk2-theme - - adwaita-icon-theme - - aic94xx-firmware - - akonadi - - akonadi-mysql - - alsa-firmware - - alsa-lib - - alsa-plugins-pulseaudio - - alsa-tools-firmware - - alsa-utils - - anaconda-core - - anaconda-gui - - anaconda-tui - - anaconda-widgets - - appstream-data - - apr - - apr-util - - ark - - ark-libs - - at - - atk - - atkmm - - atlas - - atop - - at-spi2-atk - - at-spi2-core - - attica - - attr - - audit-libs - - augeas-libs - - autoconf - - autocorr-en - - autofs - - automake - - avahi - - avahi-autoipd - - avahi-glib - - avahi-gobject - - avahi-libs - - avahi-ui-gtk3 - - baobab - - basesystem - - bash-completion - - bc - - bind-libs-lite - - bind-license - - binutils - - binutils-devel - - bison - - blas - - blas-devel - - blktrace - - bluedevil - - bluez - - bluez-libs - - boost - - boost-atomic - - boost-chrono - - boost-context - - boost-date-time - - boost-filesystem - - boost-graph - - boost-iostreams - - boost-locale - - boost-math - - boost-program-options - - boost-python - - boost-random - - boost-regex - - boost-serialization - - boost-signals - - boost-system - - boost-test - - boost-thread - - boost-timer - - boost-wave - - brasero - - brasero-libs - - bridge-utils - - brlapi - - brltty - - byacc - - bzip2-devel - - ca-certificates - - cairo - - cairo-devel - - cairo-gobject - - cairo-tools - - cairomm - - c-ares - - caribou - - caribou-gtk2-module - - caribou-gtk3-module - - cdparanoia - - cdparanoia-libs - - cdrdao - - celt051 - - centos-indexhtml - - centos-logos - - certmonger - - cgdcbxd - - check - - cheese - - cheese-libs - - chrony - - cifs-utils - - cjkuni-uming-fonts - - cloud-utils - - cloud-utils-growpart - - clucene-contribs-lib - - clucene-core - - clutter - - clutter-gst2 - - clutter-gtk - - cogl - - colord - - colord-gtk - - colord-kde - - colord-libs - - color-filesystem - - compat-libcogl12 - - compat-libcogl-pango12 - - compat-libcolord1 - - compat-poppler022 - - compat-poppler022-qt - - control-center - - control-center-filesystem - - cpio - - cpp - - cracklib-dicts - - crash - - crda - - createrepo - - cronie-anacron - - crontabs - - cryptsetup - - cryptsetup-python - - cscope - - ctags - - cups - - cups-client - - cups-filesystem - - cups-filters - - cups-filters-libs - - cups-libs - - cups-pk-helper - - cyrus-sasl - - cyrus-sasl-gssapi - - cyrus-sasl-md5 - - cyrus-sasl-plain - - cyrus-sasl-scram - - dbus-glib - - dbusmenu-qt - - dbus-x11 - - dconf - - dconf-editor - - dejagnu - - dejavu-fonts-common - - dejavu-sans-fonts - - dejavu-sans-mono-fonts - - dejavu-serif-fonts - - deltarpm - - desktop-file-utils - - device-mapper-event - - device-mapper-event-libs - - device-mapper-multipath - - device-mapper-multipath-libs - - device-mapper-persistent-data - - dhcp-common - - diffstat - - dleyna-connector-dbus - - dleyna-core - - dleyna-server - - dmraid - - dmraid-events - - dnsmasq - - docbook-dtds - - docbook-style-xsl - - dosfstools - - dotconf - - doxygen - - dracut-config-rescue - - dvd+rw-tools - - dwz - - dyninst - - e2fsprogs-libs - - ebtables - - elfutils - - elfutils-libs - - emacs-filesystem - - emacs - - emacs-common - - empathy - - enchant - - enscript - - environment-modules - - eog - - espeak - - euca2ools - - evince - - evince-libs - - evince-nautilus - - evolution-data-server - - exempi - - exiv2-libs - - expat-devel - - expect - - fail2ban-sendmail - - fail2ban-server - - farstream - - farstream02 - - fcoe-utils - - festival - - festival-freebsoft-utils - - festival-lib - - festival-speechtools-libs - - festvox-slt-arctic-hts - - file-libs - - file-roller - - file-roller-nautilus - - findutils - - fipscheck-lib - - firefox - - firewall-config - - firstboot - - flac-libs - - flex - - flite - - fltk - - fltk-devel - - fltk-fluid - - folks - - fontawesome-fonts - - fontawesome-fonts-web - - fontconfig - - fontconfig-devel - - fontpackages-filesystem - - fprintd - - fprintd-pam - - freeglut - - freeglut-devel - - freerdp-libs - - freetype-devel - - frei0r-plugins - - fros - - fuse - - fuse-libs - - fxload - - gamin - - gavl - - gcc - - gcc-c++ - - gcc-gfortran - - GConf2 - - gcr - - gd - - gd-devel - - gdb - - gdbm-devel - - gdisk - - gdk-pixbuf2 - - gdm - - gedit - - genisoimage - - geoclue2 - - geocode-glib - - gettext-common-devel - - gettext-devel - - ghostscript - - ghostscript-cups - - ghostscript-fonts - - giflib - - git - - gjs - - gl2ps - - glade-libs - - glibc - - glibc-devel - - glibc-headers - - glibmm24 - - glib-networking - - gl-manpages - - glx-utils - - gnome-abrt - - gnome-backgrounds - - gnome-bluetooth - - gnome-bluetooth-libs - - gnome-boxes - - gnome-calculator - - gnome-classic-session - - gnome-clocks - - gnome-color-manager - - gnome-contacts - - gnome-desktop3 - - gnome-dictionary - - gnome-disk-utility - - gnome-documents - - gnome-font-viewer - - gnome-getting-started-docs - - gnome-icon-theme - - gnome-icon-theme-extras - - gnome-icon-theme-legacy - - gnome-icon-theme-symbolic - - gnome-initial-setup - - gnome-keyring - - gnome-keyring-pam - - gnome-menus - - gnome-online-accounts - - gnome-online-miners - - gnome-packagekit - - gnome-packagekit-updater - - gnome-python2 - - gnome-python2-canvas - - gnome-screenshot - - gnome-session - - gnome-session-xsession - - gnome-settings-daemon - - gnome-shell - - gnome-shell-extension-alternate-tab - - gnome-shell-extension-apps-menu - - gnome-shell-extension-common - - gnome-shell-extension-launch-new-instance - - gnome-shell-extension-places-menu - - gnome-shell-extension-window-list - - gnome-software - - gnome-system-log - - gnome-system-monitor - - gnome-terminal - - gnome-themes-standard - - gnome-tweak-tool - - gnome-user-docs - - gnome-video-effects - - gnome-weather - - gnote - - gnu-free-fonts-common - - gnu-free-mono-fonts - - gnu-free-sans-fonts - - gnu-free-serif-fonts - - gnutls - - gnutls-dane - - gnutls-utils - - gom - - google-crosextra-caladea-fonts - - google-crosextra-carlito-fonts - - gperftools-libs - - gpm-libs - - graphite2 - - grilo - - grilo-plugins - - grub2 - - grubby - - gsettings-desktop-schemas - - gsl - - gsm - - gssdp - - gssproxy - - gstreamer - - gstreamer1 - - gstreamer1-plugins-bad-free - - gstreamer1-plugins-base - - gstreamer1-plugins-good - - gstreamer-plugins-bad-free - - gstreamer-plugins-base - - gstreamer-plugins-good - - gstreamer-tools - - gtk2 - - gtk2-devel - - gtk2-immodule-xim - - gtk3 - - gtk3-immodule-xim - - gtkmm24 - - gtkmm30 - - gtksourceview3 - - gtkspell3 - - gtk-vnc2 - - gucharmap - - gupnp - - gupnp-av - - gupnp-dlna - - gupnp-igd - - gutenprint - - gutenprint-cups - - gvfs - - gvfs-afc - - gvfs-afp - - gvfs-archive - - gvfs-fuse - - gvfs-goa - - gvfs-gphoto2 - - gvfs-mtp - - gvfs-smb - - gvnc - - gwenview - - gwenview-libs - - h5py - - harfbuzz - - harfbuzz-icu - - hdf - - hdf5 - - heat-cfntools - - hesiod - - hicolor-icon-theme - - hpijs - - hplip-common - - hplip-libs - - htop - - hunspell - - hunspell-en - - hunspell-en-GB - - hunspell-en-US - - hwloc - - hwloc-devel - - hwloc-libs - - hyperv-daemons - - hyperv-daemons-license - - hypervfcopyd - - hypervkvpd - - hypervvssd - - hyphen - - hyphen-en - - ibus - - ibus-chewing - - ibus-gtk2 - - ibus-gtk3 - - ibus-hangul - - ibus-kkc - - ibus-libpinyin - - ibus-libs - - ibus-m17n - - ibus-rawcode - - ibus-sayura - - ibus-setup - - ibus-table - - ibus-table-chinese - - icedax - - icedtea-web - - icoutils - - ilmbase - - ImageMagick - - imake - - imsettings - - imsettings-gsettings - - imsettings-libs - - indent - - initial-setup - - initial-setup-gui - - intltool - - iotop - - iprutils - - ipset-libs - - iptraf-ng - - ipxe-roms-qemu - - iscsi-initiator-utils - - iscsi-initiator-utils-iscsiuio - - iso-codes - - isomd5sum - - ivtv-firmware - - iw - - iwl1000-firmware - - iwl100-firmware - - iwl105-firmware - - iwl135-firmware - - iwl2000-firmware - - iwl2030-firmware - - iwl3160-firmware - - iwl3945-firmware - - iwl4965-firmware - - iwl5000-firmware - - iwl5150-firmware - - iwl6000-firmware - - iwl6000g2a-firmware - - iwl6000g2b-firmware - - iwl6050-firmware - - iwl7260-firmware - - iwl7265-firmware - - jasper-libs - - java-1.7.0-openjdk-devel - - java-1.8.0-openjdk-devel - - javapackages-tools - - jbigkit-libs - - jline - - jomolhari-fonts - - js-highlight - - js-highlight-styles - - js-marked - - json-glib - - jsoncpp - - kaccessible - - kaccessible-libs - - kactivities - - kamera - - kate-part - - kbd-legacy - - kbd-misc - - kcalc - - kcharselect - - kcm_colors - - kcm-gtk - - kcm_touchpad - - kcolorchooser - - kdeaccessibility - - kdeadmin - - kde-baseapps - - kde-baseapps-libs - - kde-base-artwork - - kde-filesystem - - kdegraphics-strigi-analyzer - - kdegraphics-thumbnailers - - kdelibs - - kdelibs-common - - kdelibs-ktexteditor - - kdenetwork-common - - kdenetwork-kdnssd - - kdenetwork-kget - - kdenetwork-kget-libs - - kdenetwork-krfb - - kdenetwork-krfb-libs - - kdepim - - kdepimlibs - - kdepim-libs - - kdepimlibs-akonadi - - kdepimlibs-kxmlrpcclient - - kdepim-runtime - - kdepim-runtime-libs - - kdeplasma-addons - - kdeplasma-addons-libs - - kde-plasma-networkmanagement - - kde-plasma-networkmanagement-libs - - kde-print-manager - - kde-runtime - - kde-runtime-drkonqi - - kde-runtime-libs - - kde-settings - - kde-settings-ksplash - - kde-settings-plasma - - kde-settings-pulseaudio - - kde-style-oxygen - - kdeutils-minimal - - kde-wallpapers - - kde-workspace - - kde-workspace-libs - - kdf - - kernel-devel - - kernel-headers - - kernel-tools-libs - - keybinder3 - - keyutils - - keyutils-libs-devel - - kgpg - - kgreeter-plugins - - khmeros-base-fonts - - khmeros-fonts-common - - khotkeys - - khotkeys-libs - - kinfocenter - - kmag - - kmenuedit - - kmix - - kmod-libs - - konsole - - konsole-part - - kpatch - - krb5-devel - - krb5-workstation - - kruler - - ksaneplugin - - kscreen - - ksnapshot - - ksshaskpass - - ksysguard - - ksysguardd - - ksysguard-libs - - ktimer - - kwallet - - kwin - - kwin-libs - - kwrite - - langtable - - langtable-data - - langtable-python - - lapack - - lapack-devel - - lcms2 - - ldns - - ledmon - - lftp - - libabw - - libaio - - libao - - libappstream-glib - - libarchive - - libart_lgpl - - libasyncns - - libatasmart - - libavc1394 - - libbasicobjects - - libbluedevil - - libbluray - - libburn - - libcacard - - libcanberra - - libcanberra-gtk2 - - libcanberra-gtk3 - - libcap-ng - - libcdio - - libcdio-paranoia - - libcdr - - libcgroup-tools - - libchamplain - - libchamplain-gtk - - libchewing - - libcmis - - libcollection - - libcom_err-devel - - libconfig - - libcurl - - libcurl-devel - - libdb - - libdb-devel - - libdhash - - libdmapsharing - - libdmx - - libdnet - - libdrm - - libdrm-devel - - libdv - - libdvdnav - - libdvdread - - libdwarf - - libepoxy - - liberation-fonts-common - - liberation-mono-fonts - - liberation-sans-fonts - - liberation-serif-fonts - - libetonyek - - libevdev - - libevent - - libevent-devel - - libexif - - libexttextcat - - libfontenc - - libfprint - - libfreehand - - libgcrypt - - libgdata - - libgdither - - libgee - - libgee06 - - libgfortran - - libglade2 - - libGLEW - - libgnomecanvas - - libgnomekbd - - libgnome-keyring - - libgovirt - - libgphoto2 - - libgsf - - libgtop2 - - libgudev1 - - libgusb - - libgweather - - libgxps - - libhangul - - libhbaapi - - libhbalinux - - libibverbs - - libical - - libICE - - libICE-devel - - libicu - - libiec61883 - - libieee1284 - - libimobiledevice - - libini_config - - libiodbc - - libipa_hbac - - libiptcdata - - libiscsi - - libisofs - - libjpeg-turbo - - libjpeg-turbo-devel - - libkdcraw - - libkexiv2 - - libkipi - - libkkc - - libkkc-common - - libkkc-data - - libksane - - libkscreen - - libkworkspace - - liblangtag - - libldb - - liblouis - - liblouis-python - - liblzf - - libmbim - - libmediaart - - libmng - - libmodman - - libmpc - - libmpcdec - - libmspack - - libmspub - - libmtp - - libmusicbrainz5 - - libmwaw - - libmx - - libnetfilter_conntrack - - libnfsidmap - - libnice - - libnl - - libnl3-cli - - libnm-gtk - - libnotify - - libntlm - - liboauth - - libodfgen - - libofa - - libogg - - liborcus - - libosinfo - - libpath_utils - - libpcap - - libpciaccess - - libpciaccess-devel - - libpeas - - libpinyin - - libpinyin-data - - libplist - - libpng12 - - libpng-devel - - libproxy-mozjs - - libpurple - - libqmi - - libquadmath - - libquadmath-devel - - librados2 - - libraw1394 - - librbd1 - - librdmacm - - libref_array - - libreoffice-calc - - libreoffice-core - - libreoffice-draw - - libreoffice-graphicfilter - - libreoffice-impress - - libreoffice-opensymbol-fonts - - libreoffice-pdfimport - - libreoffice-pyuno - - libreoffice-ure - - libreoffice-writer - - libreport - - libreport-anaconda - - libreport-centos - - libreport-cli - - libreport-filesystem - - libreport-gtk - - libreport-plugin-bugzilla - - libreport-plugin-mailx - - libreport-plugin-mantisbt - - libreport-plugin-reportuploader - - libreport-plugin-rhtsupport - - libreport-plugin-ureport - - libreport-python - - libreport-rhel-anaconda-bugzilla - - libreport-web - - libreswan - - librevenge - - librsvg2 - - libsamplerate - - libsane-hpaio - - libsecret - - libselinux-devel - - libselinux-utils - - libsemanage-python - - libsepol-devel - - libsexy - - libshout - - libsigc++20 - - libSM - - libsmbclient - - libSM-devel - - libsndfile - - libsoup - - libspectre - - libsrtp - - libssh2 - - libsss_idmap - - libsss_nss_idmap - - libstdc++-devel - - libstoragemgmt - - libstoragemgmt-python - - libtalloc - - libtar - - libtdb - - libtevent - - libthai - - libtheora - - libtiff - - libtiff-devel - - libtimezonemap - - libtirpc - - libtomcrypt - - libtommath - - libtool - - libtool-ltdl - - libudisks2 - - libunwind - - libusal - - libusb - - libusbx - - libuser-python - - libuuid - - libuv - - libv4l - - libverto-devel - - libverto-tevent - - libvirt-client - - libvirt-daemon - - libvirt-daemon-config-network - - libvirt-daemon-driver-interface - - libvirt-daemon-driver-network - - libvirt-daemon-driver-nodedev - - libvirt-daemon-driver-nwfilter - - libvirt-daemon-driver-qemu - - libvirt-daemon-driver-secret - - libvirt-daemon-driver-storage - - libvirt-daemon-kvm - - libvirt-gconfig - - libvirt-glib - - libvirt-gobject - - libvisio - - libvisual - - libvncserver - - libvorbis - - libvpx - - libwacom - - libwacom-data - - libwbclient - - libwebp - - libwmf-lite - - libwnck3 - - libwpd - - libwpg - - libwps - - libwvstreams - - libX11 - - libX11-common - - libX11-devel - - libXau - - libXau-devel - - libXaw - - libxcb - - libxcb-devel - - libXcomposite - - libXcursor - - libXdamage - - libXdamage-devel - - libXdmcp - - libXevie - - libXext - - libXext-devel - - libXfixes - - libXfixes-devel - - libXfont - - libXft - - libXft-devel - - libXi - - libXi-devel - - libXinerama - - libxkbfile - - libxklavier - - libxml2-devel - - libXmu - - libXmu-devel - - libXpm - - libXp - - libXrandr - - libXrender - - libXrender-devel - - libXres - - libXScrnSaver - - libxshmfence - - libxshmfence-devel - - libxslt - - libXt - - libXt-devel - - libXtst - - libXv - - libXv-devel - - libXvMC - - libXxf86dga - - libXxf86misc - - libXxf86vm - - libXxf86vm-devel - - libzapojit - - linux-firmware - - lklug-fonts - - lksctp-tools - - lldpad - - lm_sensors-libs - - lockdev - - lohit-assamese-fonts - - lohit-bengali-fonts - - lohit-devanagari-fonts - - lohit-gujarati-fonts - - lohit-kannada-fonts - - lohit-malayalam-fonts - - lohit-marathi-fonts - - lohit-nepali-fonts - - lohit-oriya-fonts - - lohit-punjabi-fonts - - lohit-tamil-fonts - - lohit-telugu-fonts - - lpsolve - - lrzsz - - lsof - - lynx - - lua-bitop - - lua-devel - - lua-filesystem - - lua-posix - - lvm2 - - lvm2-libs - - lzo-minilzo - - lzop - - m17n-contrib - - m17n-db - - m17n-lib - - m4 - - madan-fonts - - mailcap - - make - - man-pages - - man-pages-overrides - - mariadb - - mariadb-devel - - mariadb-server - - marisa - - mathjax - - mathjax-ams-fonts - - mathjax-caligraphic-fonts - - mathjax-fraktur-fonts - - mathjax-main-fonts - - mathjax-math-fonts - - mathjax-sansserif-fonts - - mathjax-script-fonts - - mathjax-size1-fonts - - mathjax-size2-fonts - - mathjax-size3-fonts - - mathjax-size4-fonts - - mathjax-typewriter-fonts - - mathjax-winchrome-fonts - - mathjax-winie6-fonts - - mdadm - - meanwhile - - media-player-info - - mesa-dri-drivers - - mesa-filesystem - - mesa-libEGL - - mesa-libgbm - - mesa-libGL - - mesa-libglapi - - mesa-libGL-devel - - mesa-libGLU - - mesa-libGLU-devel - - mesa-libxatracker - - mesa-private-llvm - - metacity - - mlocate - - mobile-broadband-provider-info - - ModemManager - - ModemManager-glib - - mokutil - - moreutils - - mousetweaks - - mozilla-filesystem - - mozjs24 - - mpfr - - mtdev - - mtools - - mtr - - muParser - - mutter - - mxml - - mythes - - nasm - - nautilus - - nautilus-extensions - - nautilus-sendto - - ncdu - - ncompress - - ncurses-base - - ncurses-devel - - neon - - nepomuk-core - - nepomuk-core-libs - - nepomuk-widgets - - netcf-libs - - net-snmp-libs - - net-tools - - NetworkManager-adsl - - network-manager-applet - - NetworkManager-bluetooth - - NetworkManager-glib - - NetworkManager-libreswan - - NetworkManager-libreswan-gnome - - NetworkManager-team - - NetworkManager-wifi - - NetworkManager-wwan - - newt-python - - nfs4-acl-tools - - nfs-utils - - nhn-nanum-fonts-common - - nhn-nanum-gothic-fonts - - nmap - - nmap-ncat - - nm-connection-editor - - nodejs - - nodejs-requirejs - - nodejs-underscore - - npm - - nss - - nss-softokn-freebl - - nss-tools - - ntp - - ntsysv - - numad - - numpy - - numpy-f2py - - OCE-draw - - OCE-foundation - - OCE-modeling - - OCE-ocaf - - OCE-visualization - - oddjob - - oddjob-mkhomedir - - okular - - okular-libs - - okular-part - - opencc - - opencv - - opencv-devel - - opencv-python - - OpenEXR-libs - - openjpeg-libs - - openldap-clients - - openpgm - - open-sans-fonts - - openssh-askpass - - openssh-server - - openssl-devel - - open-vm-tools - - open-vm-tools-desktop - - opus - - orc - - orca - - overpass-fonts - - oxygen-gtk - - oxygen-gtk2 - - oxygen-gtk3 - - oxygen-icon-theme - - papi - - p11-kit-trust - - PackageKit - - PackageKit-command-not-found - - PackageKit-glib - - PackageKit-gstreamer-plugin - - PackageKit-gtk3-module - - PackageKit-yum - - paktype-naskh-basic-fonts - - pam-devel - - pam_krb5 - - pango - - pango-devel - - pangomm - - paps - - paps-libs - - paratype-pt-sans-fonts - - passwd - - patch - - patchutils - - pciutils-libs - - pcre-devel - - pcsc-lite-libs - - perl - - perl-Business-ISBN - - perl-Business-ISBN-Data - - perl-Carp - - perl-Compress-Raw-Bzip2 - - perl-Compress-Raw-Zlib - - perl-constant - - perl-Data-Dumper - - perl-DBD-MySQL - - perl-DBI - - perl-devel - - perl-Digest - - perl-Digest-MD5 - - perl-Encode - - perl-Encode-Locale - - perl-Env - - perl-Error - - perl-Exporter - - perl-ExtUtils-Install - - perl-ExtUtils-MakeMaker - - perl-ExtUtils-Manifest - - perl-ExtUtils-ParseXS - - perl-File-Listing - - perl-File-Path - - perl-File-Temp - - perl-Filter - - perl-Getopt-Long - - perl-Git - - perl-HTML-Parser - - perl-HTML-Tagset - - perl-HTTP-Cookies - - perl-HTTP-Daemon - - perl-HTTP-Date - - perl-HTTP-Message - - perl-HTTP-Negotiate - - perl-HTTP-Tiny - - perl-IO-Compress - - perl-IO-HTML - - perl-IO-Socket-IP - - perl-IO-Socket-SSL - - perl-libs - - perl-libwww-perl - - perl-LWP-MediaTypes - - perl-macros - - perl-Net-Daemon - - perl-Net-HTTP - - perl-Net-LibIDN - - perl-Net-SSLeay - - perl-parent - - perl-PathTools - - perl-PlRPC - - perl-Pod-Escapes - - perl-podlators - - perl-Pod-Perldoc - - perl-Pod-Simple - - perl-Pod-Usage - - perl-Scalar-List-Utils - - perl-Socket - - perl-srpm-macros - - perl-Storable - - perl-TermReadKey - - perl-Test-Harness - - perl-Text-ParseWords - - perl-Thread-Queue - - perl-threads - - perl-threads-shared - - perl-TimeDate - - perl-Time-HiRes - - perl-Time-Local - - perl-URI - - perl-WWW-RobotRules - - perl-XML-Parser - - pexpect - - phonon - - phonon-backend-gstreamer - - pinentry-gtk - - pinentry-qt - - pinfo - - pixman - - plasma-scriptengine-python - - plymouth - - plymouth-core-libs - - plymouth-graphics-libs - - plymouth-plugin-label - - plymouth-plugin-two-step - - plymouth-scripts - - plymouth-system-theme - - plymouth-theme-charge - - pm-utils - - pnm2ppa - - poco-crypto - - poco-data - - poco-foundation - - poco-json - - poco-mysql - - poco-net - - poco-netssl - - poco-odbc - - poco-sqlite - - poco-util - - poco-xml - - poco-zip - - policycoreutils-python - - polkit-kde - - polkit-qt - - poppler - - poppler-data - - poppler-glib - - poppler-utils - - postfix - - postgresql-libs - - ppp - - pptp - - psacct - - psmisc - - pulseaudio - - pulseaudio-gdm-hooks - - pulseaudio-libs - - pulseaudio-libs-glib2 - - pulseaudio-module-bluetooth - - pulseaudio-module-x11 - - pulseaudio-utils - - pyatspi - - pycairo - - pygobject2 - - pygobject3 - - pygobject3-base - - pygtk2 - - pygtk2-libglade - - pykde4 - - pykickstart - - pyOpenSSL - - pyparsing - - pyparted - - PyQt4 - - pytalloc - - python2-boto - - python2-crypto - - python-pip - - python2-pyasn1 - - python2-rsa - - python-augeas - - python-babel - - python-backports-ssl_match_hostname - - python-beaker - - python-blivet - - python-brlapi - - python-caribou - - python-cffi - - python-chardet - - python-cheetah - - python-configobj - - python-configshell - - python-coverage - - python-cryptography - - python-cups - - python-dateutil - - python-decorator - - python-deltarpm - - python-devel - - python-di - - python-dmidecode - - python-dns - - python-enum34 - - python-ethtool - - python-iniparse - - python-inotify - - python-IPy - - python-javapackages - - python-jinja2 - - python-jsonpatch - - python-jsonpointer - - python-jsonschema - - python-kerberos - - python-kitchen - - python-kmod - - python-krbV - - python-ldap - - python-libipa_hbac - - python-lxml - - python-mako - - python-markdown - - python-markupsafe - - python-meh - - python-meh-gui - - python-mistune - - python-netaddr - - python-nose - - python-nss - - python-ntplib - - python-paste - - python-path - - python-pillow - - python-ply - - python-prettytable - - python-psutil - - python-pwquality - - python-pyblock - - python-pycparser - - python-pygments - - python-pyudev - - python-qrcode-core - - python-requests - - python-rtslib - - python-setuptools - - python-simplegeneric - - python-six - - python-slip - - python-slip-dbus - - python-smbc - - python-sssdconfig - - python-sss-murmur - - python-tempita - - python-urlgrabber - - python-urllib3 - - python-urwid - - python-yubico - - python-zmq - - pytz - - pyusb - - PyYAML - - qca2 - - qemu-img - - qemu-kvm - - qemu-kvm-common - - qhull - - qimageblitz - - qjson - - qpdf-libs - - qscintilla - - qt - - qt3 - - qt-mysql - - qt-settings - - qt-x11 - - qt-devel - - qtwebkit - - quota - - quota-nls - - radvd - - raptor2 - - rarian - - rarian-compat - - rasqal - - rcs - - rdate - - readline-devel - - realmd - - recode - - redhat-menus - - redhat-rpm-config - - redland - - redland-virtuoso - - rest - - rfkill - - rhino - - rhythmbox - - rng-tools - - rootfiles - - rpcbind - - rpm-build - - rpm-libs - - rpm-sign - - rsyslog - - rsyslog-mmjsonparse - - rtkit - - ruby - - rubygem-bigdecimal - - rubygem-io-console - - rubygem-json - - rubygem-psych - - rubygem-rdoc - - rubygems - - ruby-irb - - ruby-libs - - samba-client - - samba-client-libs - - samba-common - - samba-common-libs - - samba-common-tools - - samba-libs - - sane-backends - - sane-backends-drivers-scanners - - sane-backends-libs - - satyr - - sbc - - scipy - - scl-utils - - screen - - SDL - - seabios-bin - - seahorse - - seavgabios-bin - - selinux-policy - - selinux-policy-targeted - - setroubleshoot - - setroubleshoot-plugins - - setroubleshoot-server - - setserial - - setup - - setuptool - - sgabios-bin - - sgml-common - - sgpio - - shared-desktop-ontologies - - sil-abyssinica-fonts - - sil-nuosu-fonts - - sil-padauk-fonts - - sip - - skkdic - - smartmontools - - smc-fonts-common - - smc-meera-fonts - - soprano - - sos - - sound-theme-freedesktop - - soundtouch - - sox - - speech-dispatcher - - speech-dispatcher-python - - speex - - spice-glib - - spice-gtk3 - - spice-server - - spice-vdagent - - sqlite-devel - - sssd - - sssd-ad - - sssd-client - - sssd-common - - sssd-common-pac - - sssd-ipa - - sssd-krb5 - - sssd-krb5-common - - sssd-ldap - - sssd-proxy - - startup-notification - - stix-fonts - - strace - - strigi-libs - - subversion - - subversion-libs - - suitesparse - - sushi - - sweeper - - swig - - sysstat - - system-config-date - - system-config-date-docs - - system-config-language - - system-config-printer - - system-config-printer-libs - - system-config-printer-udev - - system-config-users - - system-config-users-docs - - systemd-libs - - systemd-sysv - - systemtap - - systemtap-client - - systemtap-devel - - systemtap-runtime - - systemtap-sdt-devel - - t1lib - - taglib - - tagsoup - - targetcli - - tcl - - tcl-devel - - tcpdump - - tcp_wrappers - - tcsh - - telepathy-farstream - - telepathy-filesystem - - telepathy-gabble - - telepathy-glib - - telepathy-haze - - telepathy-logger - - telepathy-mission-control - - telepathy-salut - - texinfo - - texlive - - texlive-base - - texlive-dvipng - - texlive-dvipng-bin - - texlive-kpathsea - - texlive-kpathsea-bin - - texlive-kpathsea-lib - - texlive-pdftex - - texlive-kpathsea-lib - - thai-scalable-fonts-common - - thai-scalable-waree-fonts - - tigervnc-license - - tigervnc-server - - tigervnc-server-minimal - - time - - tix - - tk - - tk-devel - - tkinter - - tmux - - totem - - totem-nautilus - - totem-pl-parser - - traceroute - - tracker - - tree - - ttmkfdir - - tuned - - tzdata - - tzdata-java - - ucs-miscfixed-fonts - - udisks2 - - unbound-libs - - unoconv - - unzip - - upower - - urw-fonts - - usb_modeswitch - - usb_modeswitch-data - - usbredir - - usbutils - - usermode - - usermode-gtk - - util-linux - - vim-common - - vim-enhanced - - vim-filesystem - - vinagre - - vino - - virtuoso-opensource - - vlgothic-fonts - - vorbis-tools - - vte291 - - vte-profile - - wavpack - - web-assets-filesystem - - webkitgtk3 - - webrtc-audio-processing - - which - - wodim - - words - - wqy-microhei-fonts - - wqy-zenhei-fonts - - wvdial - - xcb-util - - xcb-util-image - - xcb-util-keysyms - - xchat - - xdg-user-dirs - - xdg-user-dirs-gtk - - xdg-utils - - xfsdump - - xkeyboard-config - - xml-common - - xmlrpc-c - - xmlrpc-c-client - - xorg-x11-apps - - xorg-x11-drivers - - xorg-x11-drv-ati - - xorg-x11-drv-dummy - - xorg-x11-drv-evdev - - xorg-x11-drv-fbdev - - xorg-x11-drv-intel - - xorg-x11-drv-nouveau - - xorg-x11-drv-qxl - - xorg-x11-drv-synaptics - - xorg-x11-drv-v4l - - xorg-x11-drv-vesa - - xorg-x11-drv-vmmouse - - xorg-x11-drv-vmware - - xorg-x11-drv-void - - xorg-x11-drv-wacom - - xorg-x11-fonts-misc - - xorg-x11-fonts-Type1 - - xorg-x11-font-utils - - xorg-x11-proto-devel - - xorg-x11-server-common - - xorg-x11-server-utils - - xorg-x11-server-Xorg - - xorg-x11-util-macros - - xorg-x11-utils - - xorg-x11-xauth - - xorg-x11-xinit - - xorg-x11-xkb-utils - - xsettings-kde - - xterm - - xvattr - - xz-devel - - yajl - - yelp - - yelp-libs - - yelp-xsl - - yum - - yum-langpacks - - yum-plugin-fastestmirror - - yum-utils - - zenity - - zeromq3 - - zip - - zlib-devel - - zsh - - wxPython - - hdf5-devel - - motif - - xz-compat-libs - - gstreamer1-devel - - gstreamer1-plugins-base-devel - -excludes: - - thispackagedoesntexistbutansibledoesntlikeemptylists diff --git a/CICD/vars/filesystems.yml b/CICD/vars/filesystems.yml deleted file mode 100644 index 268b6f1099838a03ffe404941397f9e8a0ccade3..0000000000000000000000000000000000000000 --- a/CICD/vars/filesystems.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -computeNfsMounts: - - { name: '/home', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/home", 'opts': 'defaults,nofail', 'fstype':'nfs4' } - - { name: '/usr/local', ipv4: "118.138.235.55", src: "/usr_local", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } - - { name: '/projects', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/projects", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } - - { name: '/scratch', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/scratch", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } -mgmtNfsMounts: - - { name: '/mnt/home', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/home", 'opts': 'defaults,nofail', 'fstype':'nfs4' } - - { name: '/slurmstate', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/slurmstate", 'opts': 'defaults,nofail', 'fstype':'nfs4' } -dbvolumes: - - { fstype: 'ext4', name: 'dbvol', mntpt: '/dbvol', linkto: '/var/lib/mysql' } -nfsvolumes: - - { fstype: 'ext4', name: 'nfsvol', mntpt: '/nfsvol' } - - { fstype: 'ext4', name: 'slurmstate', mntpt: '/slurmstate' } -exportList: - - { name: '/home', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/home", 'opts': 'defaults,nofail', 'fstype':'nfs4' } - - { name: '/usr/local', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/usr_local_centos7", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } - - { name: '/projects', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/projects", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } - - { name: '/scratch', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/nfsvol/scratch", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } - - { name: '/slurmstate', ipv4: "{{ groups['NFSNodes'][0] }}", src: "/slurmstate", 'opts': 'defaults,rw,nofail', 'fstype':'nfs4' } - diff --git a/CICD/vars/ldapConfig.yml b/CICD/vars/ldapConfig.yml deleted file mode 100644 index 1e691c69912f28fceaad701203b88a002d2f4ade..0000000000000000000000000000000000000000 --- a/CICD/vars/ldapConfig.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -#ldapServerHostIpLine: "118.138.235.140 hpcldaptest.example.com" -ldapServerHostName: hpcldaptest.example.com -#ldapCaCertFile: /etc/ssl/certs/cacert.crt -#ldapDomain: "cicd.test.au" -#ldapDomain: "dc=cicd,dc=hpccicd,dc=cloud,dc=au" -#ldapBase: "dc=cicd,dc=test,dc=au" -#ldapURI: "ldaps://hpcldap0.erc.monash.edu.au:636" -#ldapROURI: "ldaps://hpcldap1.erc.monash.edu.au:636" -#ldapBindDN: "cn=ldapuser,ou=People,dc=erc,dc=monash,dc=edu,dc=au" -#ldapBindDNPassword: "thisisafakepassword" -#ldapManagerDN: "cn=Manager,dc=erc,dc=monash,dc=edu,dc=au" -#ldapBase: "dc=erc,dc=monash,dc=edu,dc=au" -#ldapGroupBase: "ou=Groups,dc=erc,dc=monash,dc=edu,dc=au" -#ldapRfc2307Pam: "" -#ldap_access_filter: "(&(objectClass=posixAccount)(memberOf=cn=m3,ou=aclgroups,dc=erc,dc=monash,dc=edu,dc=au))" - -# variables for the server role -#ou=aclgroups,dc=erc,dc=monash,dc=edu,dc=au -#ldapAclGroupBase: "ou=aclgroups,{{ ldapDomain }}" -#ldapUserBase: "ou=People,{{ ldapDomain }}" -#ldapManager: "cn=Manager,{{ ldapDomain }}" -#ldapBindDN: "cn=ldapuser,ou=People,{{ ldapDomain }}" -#ldapGroupBase: "ou=Groups,{{ ldapDomain }}" -#ldapAccountBase: "ou=Accounts,{{ ldapDomain }}" - -#ldapDomain: "dc=example,dc=com" -ldapDomain: "example.com" -#ldapBase: "dc=cicd,dc=test,dc=au" -ldapURI: "ldap://hpcldaptest.example.com" -ldapBindDN: "cn=read-only-admin,dc=example,dc=com" -#ldap_access_filter: "(&(objectClass=posixAccount)(memberOf=ou=People,ou=People,dc=example,dc=com))" -ldap_access_filter: "(&(objectClass=posixAccount))" -useTLS: False \ No newline at end of file diff --git a/CICD/vars/names.yml b/CICD/vars/names.yml deleted file mode 100644 index f3142ad8e778d6b6426f53c8af66cbd0f6fb2094..0000000000000000000000000000000000000000 --- a/CICD/vars/names.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -domain: cicd.test.au -smtp_smarthost: smtp.monash.edu.au diff --git a/CICD/vars/passwords.yml b/CICD/vars/passwords.yml deleted file mode 100644 index a522c96015c86f9d71e43aedfe38d69cda8a0b80..0000000000000000000000000000000000000000 --- a/CICD/vars/passwords.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -mungekey: EXAMPLEMUNGEKEYwithpaddingfill32 -slurmdb_passwd: EXAMPLESLURMDBPASSWORD -sqlrootPasswd: EXAMPLESQLROOTPASSWORD -sudo_group: systems -default_user_password_clear: EXAMPLEDEFAULTUSERPASSWORDCLEAR -default_user_password: EXAMPLEDEFAULTUSERPASSWORD -# the redhat passwords are also example passwords -ldapManagerDNPassword: redhat -ldapManagerPassword: redhat -ldapBindDNPassword: redhat diff --git a/CICD/vars/slurm.yml b/CICD/vars/slurm.yml deleted file mode 100644 index 40304d6184a4432de80afe140f25d1a8005b25d8..0000000000000000000000000000000000000000 --- a/CICD/vars/slurm.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- -desktopNodeList: - - { name : 'DesktopNodes', interface : 'eth0' } -clustername: "cicd" -projectname: "cicd" -slurm_version: 20.02.7 -munge_version: 0.5.13 -nhc_version: 1.4.2 -munge_dir: /opt/munge-{{ munge_version }} -slurm_dir: /opt/slurm-{{ slurm_version }} -nhc_dir: /opt/nhc-{{ nhc_version }} -nhc_config_file: nhc.conf -nhc_log_level: 0 -nhc_emails: nobody@nowhere.nowhere -nhc_email_subject: "Node Health Check" -openmpi_version: 1.8.3 -mysql_host: "{{ groups['SQLNodes'][0] }}" -slurmctrl: "{{ groups['ManagementNodes'][0] }}" -slurmctrlbackup: "{{ groups['ManagementNodes'][1] }}" -slurmdbd: "{{ groups['ManagementNodes'][0] }}" -slurmdbdpiddir: "/opt/slurm/var/run" -slurmdbdbackup: "{{ groups['ManagementNodes'][1] }}" -slurm_use_vpn: false -slurm_lua: true -slurmqueues: - - {name: batch, group: ComputeNodes, default: yes} -# - {name: vis, group: DesktopNodes, default: no} -slurmlogin: "{{ groups['LoginNodes'][0] }}" -slurmlogdir: "/var/log" -slurmctlddebug: {level: 5, log: '/mnt/slurm-logs/slurmctld.log'} -slurmddebug: {level: 5, log: '/var/log/slurmd.log'} -slurmschedlog: {level: 5, log: '/mnt/slurm-logs/slurmsched.log'} -slurmdbdlog: {level: 5, log: '/mnt/slurm-logs/slurmdbd.log'} -slurmfairshare: {def: false, val: 10000} -slurmdatadir: "/opt/slurm/var/spool" -slurmstatedir: "/opt/slurm/var/state" -slurmsharedstatedir: "/slurmstate" -slurmpiddir: "/opt/slurm/var/run" -slurmaccount_create_user: "/usr/local/sbin/slurmuseraccount.sh" -slurm_provision: "/cinderVolume/local/sbin/slurm_provision.sh" -slurmselecttype: "select/cons_tres" -slurmfastschedule: "1" -slurmschedulertype: "sched/backfill" -restartServerList: - - slurm diff --git a/CICD/vars/u18packages.yml b/CICD/vars/u18packages.yml deleted file mode 100644 index 613f792baa135d72557fbb322c62d8a3fa79ea37..0000000000000000000000000000000000000000 --- a/CICD/vars/u18packages.yml +++ /dev/null @@ -1,518 +0,0 @@ -extra_packages: - - mate-notification-daemon - - pluma - - caja-sendto - - mate-applets - - mate-system-monitor - - mate-icon-theme - - mate-desktop - - mate-terminal - - mate-calc - - xl2tpd - - fortune-mod - - atril - - filezilla - - openconnect - - mate-user-guide - - mate-settings-daemon - - transmission-gtk - - simple-scan - - p7zip - - lightdm - - marco - - caja-extensions-common - - gparted - - gtk2-engines - - libmatekbd - - mate-session-manager - - liblz4-1 - - liblz4-dev - - mate-control-center - - vpnc - - mate-panel - - mate-themes - - mate-utils-common - - caja - - engrampa - - caja-open-terminal - - mozo - - mate-polkit - - transmission-common - - mate-media - - eom - - mate-backgrounds - - mate-menus - - mate-screensaver - - caja-image-converter - - mate-power-manager - - accountsservice - - acl - - acpid - - adcli - - adwaita-icon-theme - - alsa-utils - - ark - - at - - atop - - at-spi2-core - - attr - - autoconf - - autofs - - automake - - avahi-autoipd - - baobab - - bash - - bash-completion - - bc - - binutils - - bison - - blktrace - - bluedevil - - bluez - - brasero - - bridge-utils - - btrfs-progs - - byacc - - bzip2 - - ca-certificates - - caribou - - cdparanoia - - cdrdao - - certmonger - - check - - checkpolicy - - cheese - - chrony - - cifs-utils - - cloud-init - - cloud-utils - - colord - - colord-kde - - coreutils - - cpio - - cpp - - crash - - crda - - cryptsetup - - cscope - - ctags - - cups - - cups-client - - cups-filters - - cups-pk-helper - - curl - - dbus - - dbus-x11 - - dconf-editor - - dejagnu - - desktop-file-utils - - diffstat - - diffutils - - dleyna-server - - dmidecode -# - dmraid - - dnsmasq - - dosfstools - - doxygen - - dracut - - dracut-config-rescue - - dracut-network - - dwz - - e2fsprogs - - ebtables - - ed - - elfutils - - emacs - - emacs25-common - - empathy - - enchant - - enscript - - environment-modules - - eog - - espeak - - ethtool - - evince - - evolution-data-server - - exempi - - expat - - expect - - fcoe-utils - - festival - - festival-freebsoft-utils - - file - - file-roller - - findutils - - finger - - firefox - - flex - - flite - - fontconfig - - fprintd - - frei0r-plugins - - fuse - - fxload - - gamin - - gawk - - gcc - - gconf2 - - gcr - - gdb - - gdisk - - gedit - - genisoimage - - gettext - - ghostscript - - ghostscript-cups - - git - - gjs - - glib-networking - - gnome-backgrounds - - gnome-bluetooth - - gnome-boxes - - gnome-calculator - - gnome-clocks - - gnome-color-manager - - gnome-contacts - - gnome-dictionary - - gnome-disk-utility - - gnome-documents - - gnome-font-viewer - - gnome-getting-started-docs - - gnome-icon-theme - - gnome-icon-theme-symbolic - - gnome-initial-setup - - gnome-keyring - - gnome-menus - - gnome-online-accounts - - gnome-online-miners - - gnome-packagekit - - gnome-screenshot - - gnome-session - - gnome-settings-daemon - - gnome-shell - - gnome-software - - gnome-system-log - - gnome-system-monitor - - gnome-terminal - - gnome-themes-standard - - gnome-tweak-tool - - gnome-user-docs - - gnome-video-effects - - gnome-weather - - gnote - - gnupg2 - - gobject-introspection - - gom - - grep - - groff-base - - grub2 - - gsettings-desktop-schemas - - gssproxy - - gucharmap - - gvfs - - gvfs-fuse - - gwenview - - gzip - - hardlink - - heat-cfntools - - hesiod - - hicolor-icon-theme - - hostname - - htop - - hunspell - - hunspell-en-gb - - hunspell-en-us - - hwdata - - hwloc - - ibus - - ibus-chewing - - ibus-gtk3 - - ibus-hangul - - ibus-kkc - - ibus-libpinyin - - ibus-m17n - - ibus-table - - icedax - - icoutils - - imagemagick - - indent - - info - - intltool - - iotop - - ipset - - iptables - - iptraf-ng - - irqbalance - - iso-codes - - isomd5sum - - iw - - kamera - - kbd - - kcalc - - kcharselect - - kcolorchooser - - kdeaccessibility - - kdeadmin - - kde-baseapps - - kdegraphics-thumbnailers - - kdepim - - kdepim-runtime - - kdf - - kexec-tools - - keyutils - - kgpg - - khotkeys - - kinfocenter - - kmag - - kmenuedit - - kmix - - kmod - - konsole - - kpartx - - kpatch - - kruler - - kscreen - - ksshaskpass - - ksysguard - - ksysguardd - - ktimer - - kwin - - kwrite - - ledmon - - less - - lftp - - libchewing - - libdnet - - libiptcdata - - libkkc-common - - libkkc-data - - libpinyin - - libpinyin-data - - librados2 - - librbd1 - - libreoffice-calc - - libreoffice-core - - libreoffice-draw - - libreoffice-impress - - libreoffice-pdfimport - - libreoffice-writer - - libreswan - - libsane-hpaio - - libsmbclient - - libtar - - libtool - - libuser - - libvirt-daemon -# - libvirt-daemon-driver-qemu - - libxml2 - - linux-firmware - - lksctp-tools - - lldpad - - logrotate - - lrzsz - - lsof - - lsscsi - - lynx - - lvm2 - - lzop - - m17n-db - - m4 -# - mailx - - make - - man-db - - mariadb-server - - marisa - - mdadm - - media-player-info - - metacity - - mlocate - - mokutil - - moreutils - - mousetweaks - - mtools - - mtr - - mutter - - nano - - nasm - - nautilus - - nautilus-sendto - - ncdu - - ncompress - - ncurses-base - - net-tools - - nfs4-acl-tools - - nmap - - nodejs - - ntp - - ntpdate - - numad - - oce-draw - - oddjob - - oddjob-mkhomedir - - okular - - opencc - - openssh-server - - openssl - - open-vm-tools - - open-vm-tools-desktop - - orca - - os-prober - - oxygen-icon-theme - - p11-kit - - packagekit - - packagekit-command-not-found - - packagekit-gtk3-module - - paps - - parted - - passwd - - patch - - patchutils - - pciutils - - perl - - pinentry-qt - - pinfo - - plymouth - - pm-utils - - policycoreutils - - poppler-data - - poppler-utils - - postfix - - ppp - - psmisc - - pulseaudio - - pulseaudio-module-bluetooth - - pulseaudio-utils - - python - - python-babel - - python-cffi - - python-chardet - - python-cheetah - - python-coverage - - python-cryptography - - python-dateutil - - python-decorator - - python-enum34 - - python-jinja2 - - python-lxml - - python-mako - - python-markdown - - python-markupsafe - - python-netaddr - - python-nose - - python-pillow - - python-ply - - python-psutil - - python-pycparser - - python-pycurl - - python-pygments - - python-setuptools - - python-six - - qemu-guest-agent - - qemu-kvm - - quota - - radvd - - rcs - - rdate - - realmd - - recode - - rfkill - - rhino - - rhythmbox - - rng-tools - - rpcbind - - rpm - - rsync - - rsyslog - - rtkit - - ruby - - rubygems -# - ruby-irb - - samba-client - - samba-common - - samba-libs - - screen - - seahorse - - sed - - setserial - - shared-mime-info - - skkdic - - smartmontools - - sound-theme-freedesktop - - sox - - speech-dispatcher - - speex - - spice-vdagent - - sqlite - - sssd - - sssd-ad - - sssd-common - - sssd-ipa - - sssd-krb5 - - sssd-krb5-common - - sssd-ldap - - sssd-proxy - - strace - - subversion - - sudo - - sweeper - - swig - - sysstat - - system-config-printer - - system-config-printer-udev - - systemd - - systemd-sysv - - systemtap - - systemtap-client - - systemtap-runtime - - tar - - tcl - - tcpdump - - tcsh - - teamd - - telepathy-gabble - - telepathy-logger - - telnet - - texinfo - - texlive - - texlive-base - - time - - tix - - tk - - tmux - - totem - - traceroute - - tracker - - tree - - trousers - - tuned - - tzdata - - udisks2 - - unoconv - - unzip - - upower - - usbutils - - usermode - - util-linux - - vim-common - - vinagre - - vino - - virtuoso-opensource - - virt-what - - vorbis-tools - - wavpack - - wget - - wodim - - wvdial - - xchat - - xdg-user-dirs - - xdg-user-dirs-gtk - - xdg-utils - - xfsdump - - xfsprogs - - xterm - - xvattr - - yelp - - yelp-xsl - - zenity - - zip - - zsh diff --git a/CICD/vars/u20packages.yml b/CICD/vars/u20packages.yml deleted file mode 100644 index 8f4fbc2ecf27bd811903975ad0edb3edaf80f59c..0000000000000000000000000000000000000000 --- a/CICD/vars/u20packages.yml +++ /dev/null @@ -1,517 +0,0 @@ -extra_packages: - - mate-notification-daemon - - pluma - - caja-sendto - - mate-applets - - mate-system-monitor - - mate-icon-theme - - mate-desktop - - mate-terminal - - mate-calc - - xl2tpd - - fortune-mod - - atril - - filezilla - - openconnect - - mate-user-guide - - mate-settings-daemon - - transmission-gtk - - simple-scan - - p7zip - - lightdm - - marco - - caja-extensions-common - - gparted - - gtk2-engines - - libmatekbd - - mate-session-manager - - liblz4-1 - - liblz4-dev - - mate-control-center - - vpnc - - mate-panel - - mate-themes - - mate-utils-common - - caja - - engrampa - - caja-open-terminal - - mozo - - mate-polkit - - transmission-common - - mate-media - - eom - - mate-backgrounds - - mate-menus - - mate-screensaver - - caja-image-converter - - mate-power-manager - - accountsservice - - acl - - acpid - - adcli - - adwaita-icon-theme - - alsa-utils - - ark - - at - - atop - - at-spi2-core - - attr - - autoconf - - autofs - - automake - - avahi-autoipd - - baobab - - bash - - bash-completion - - bc - - binutils - - bison - - blktrace - - bluedevil - - bluez - - brasero - - bridge-utils - - btrfs-progs - - byacc - - bzip2 - - ca-certificates - - caribou - - cdparanoia - - cdrdao - - certmonger - - check - - checkpolicy - - cheese - - cifs-utils - - cloud-init - - cloud-utils - - colord - - colord-kde - - coreutils - - cpio - - cpp - - crash - - crda - - cryptsetup - - cscope - - ctags - - cups - - cups-client - - cups-filters - - cups-pk-helper - - curl - - dbus - - dbus-x11 - - dconf-editor - - dejagnu - - desktop-file-utils - - diffstat - - diffutils - - dleyna-server - - dmidecode -# - dmraid - - dnsmasq - - dosfstools - - doxygen - - dracut - - dracut-config-rescue - - dracut-network - - dwz - - e2fsprogs - - ebtables - - ed - - elfutils - - emacs - - emacs-common - - empathy - - enchant - - enscript - - eog - - espeak - - ethtool - - evince - - evolution-data-server - - exempi - - expat - - expect - - fcoe-utils - - festival - - festival-freebsoft-utils - - file - - file-roller - - findutils - - finger - - firefox - - flex - - flite - - fontconfig - - fprintd - - frei0r-plugins - - fuse - - fxload - - gamin - - gawk - - gcc - - gconf2 - - gcr - - gdb - - gdisk - - gedit - - genisoimage - - gettext - - ghostscript - - ghostscript-cups - - git - - gjs - - glib-networking - - gnome-backgrounds - - gnome-bluetooth - - gnome-boxes - - gnome-calculator - - gnome-clocks - - gnome-color-manager - - gnome-contacts - - gnome-dictionary - - gnome-disk-utility - - gnome-documents - - gnome-font-viewer - - gnome-getting-started-docs - - gnome-icon-theme - - gnome-icon-theme-symbolic - - gnome-initial-setup - - gnome-keyring - - gnome-menus - - gnome-online-accounts - - gnome-online-miners - - gnome-packagekit - - gnome-screenshot - - gnome-session - - gnome-settings-daemon - - gnome-shell - - gnome-software - - gnome-system-log - - gnome-system-monitor - - gnome-terminal - - gnome-themes-standard - - gnome-tweak-tool - - gnome-user-docs - - gnome-video-effects - - gnome-weather - - gnote - - gnupg2 - - gobject-introspection - - gom - - grep - - groff-base - - grub2 - - gsettings-desktop-schemas - - gssproxy - - gucharmap - - gvfs - - gvfs-fuse - - gwenview - - gzip - - hardlink - - heat-cfntools - - hesiod - - hicolor-icon-theme - - hostname - - htop - - hunspell - - hunspell-en-gb - - hunspell-en-us - - hwdata - - hwloc - - ibus - - ibus-chewing - - ibus-gtk3 - - ibus-hangul - - ibus-kkc - - ibus-libpinyin - - ibus-m17n - - ibus-table - - icedax - - icoutils - - imagemagick - - indent - - info - - intltool - - iotop - - ipset - - iptables - - iptraf-ng - - irqbalance - - iso-codes - - isomd5sum - - iw - - kamera - - kbd - - kcalc - - kcharselect - - kcolorchooser - - kdeaccessibility - - kdeadmin - - kde-baseapps - - kdegraphics-thumbnailers - - kdepim - - kdepim-runtime - - kdf - - kexec-tools - - keyutils - - kgpg - - khotkeys - - kinfocenter - - kmag - - kmenuedit - - kmix - - kmod - - konsole - - kpartx - - kpatch - - kruler - - kscreen - - ksshaskpass - - ksysguard - - ksysguardd - - ktimer - - kwin - - kwrite - - ledmon - - less - - lftp - - libchewing - - libdnet - - libiptcdata - - liblapack3 - - libkkc-common - - libkkc-data - - libpinyin - - libpinyin-data - - librados2 - - librbd1 - - libreoffice-calc - - libreoffice-core - - libreoffice-draw - - libreoffice-impress - - libreoffice-pdfimport - - libreoffice-writer - - libreswan - - libsane-hpaio - - libsmbclient - - libtar - - libtool - - libuser - - libvirt-daemon -# - libvirt-daemon-driver-qemu - - libxml2 - - linux-firmware - - lksctp-tools - - lldpad - - logrotate - - lrzsz - - lsof - - lsscsi - - lynx - - lvm2 - - lzop - - m17n-db - - m4 -# - mailx - - make - - man-db - - mariadb-server - - marisa - - mdadm - - media-player-info - - metacity - - mlocate - - mokutil - - moreutils - - mousetweaks - - mtools - - mtr - - mutter - - nano - - nasm - - nautilus - - nautilus-sendto - - ncdu - - ncompress - - ncurses-base - - net-tools - - nfs4-acl-tools - - nmap - - nodejs - - ntpdate - - numad - - oce-draw - - oddjob - - oddjob-mkhomedir - - okular - - opencc - - openssh-server - - openssl - - open-vm-tools - - open-vm-tools-desktop - - orca - - os-prober - - oxygen-icon-theme - - p11-kit - - packagekit - - packagekit-command-not-found - - packagekit-gtk3-module - - paps - - parted - - passwd - - patch - - patchutils - - pciutils - - perl - - pinentry-qt - - pinfo - - plymouth - - pm-utils - - policycoreutils - - poppler-data - - poppler-utils - - postfix - - ppp - - psmisc - - pulseaudio - - pulseaudio-module-bluetooth - - pulseaudio-utils - - python - - python-apt #allows ansible to check packages in check mode - - python-babel - - python-cffi - - python-chardet - - python-cheetah - - python-coverage - - python-cryptography - - python-dateutil - - python-decorator - - python-enum34 - - python-jinja2 - - python-lxml - - python-mako - - python-markdown - - python-markupsafe - - python-netaddr - - python-nose - - python-pillow - - python-ply - - python-psutil - - python-pycparser - - python-pycurl - - python-pygments - - python-setuptools - - python-six - - qemu-guest-agent - - qemu-kvm - - quota - - radvd - - rcs - - rdate - - realmd - - recode - - rfkill - - rhino - - rhythmbox - - rng-tools - - rpcbind - - rpm - - rsync - - rsyslog - - rtkit - - ruby - - rubygems -# - ruby-irb - - samba-client - - samba-common - - samba-libs - - screen - - seahorse - - sed - - setserial - - shared-mime-info - - skkdic - - smartmontools - - sound-theme-freedesktop - - sox - - speech-dispatcher - - speex - - spice-vdagent - - sqlite - - sssd - - sssd-ad - - sssd-common - - sssd-ipa - - sssd-krb5 - - sssd-krb5-common - - sssd-ldap - - sssd-proxy - - strace - - subversion - - sudo - - sweeper - - swig - - sysstat - - system-config-printer - - system-config-printer-udev - - systemd - - systemd-sysv - - systemtap - - systemtap-client - - systemtap-runtime - - tar - - tcl - - tcpdump - - tcsh - - teamd - - telepathy-gabble - - telepathy-logger - - telnet - - texinfo - - texlive - - texlive-base - - time - - tix - - tk - - tmux - - totem - - traceroute - - tracker - - tree - - trousers - - tuned - - tzdata - - udisks2 - - unoconv - - unzip - - upower - - usbutils - - usermode - - util-linux - - vim-common - - vinagre - - vino - - virtuoso-opensource - - virt-what - - vorbis-tools - - wavpack - - wget - - wodim - - wvdial - - xchat - - xdg-user-dirs - - xdg-user-dirs-gtk - - xdg-utils - - xfsdump - - xfsprogs - - xterm - - xvattr - - yelp - - yelp-xsl - - zenity - - zip - - zsh diff --git a/CICD/vars/vars.yml b/CICD/vars/vars.yml deleted file mode 100644 index 6efa44c5fdf447bccf1bdc04468b4cd5a378b812..0000000000000000000000000000000000000000 --- a/CICD/vars/vars.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -sudo_group: systems -nagios_home: "/var/lib/nagios" -nvidia_version: "470.57.02" -syslog_server: "{{ groups['SQLNodes'][0] }}" - -gpumap: - 'K1': 'K1' - 'K2': 'K2' - 'K80': 'K80' - 'P100-PCIE-16GB': 'P100' - 'V100-PCIE-16GB': 'V100' diff --git a/CICD/vars/vars_centos78.yml b/CICD/vars/vars_centos78.yml deleted file mode 100644 index ce6cc64e8e4992cd2fa8b16ba5c7c573ff93882b..0000000000000000000000000000000000000000 --- a/CICD/vars/vars_centos78.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -CENTOS_VERSION: 7-8.2003.0.el7.centos.x86_64 -KERNEL_VERSION: 3.10.0-1127.18.2.el7.x86_64 -LUSTRE_VERSION: 2.13.55-1.el7 -MELLANOX_DRIVER_SRC: MLNX_OFED_LINUX-4.9-0.1.7.0-rhel7.8-ext -repopath: 7.8.2003 - -yumdisablerepo: - - 'monashhpc_k1gpusupport' - -yumenablerepo: - - 'base' - - 'updates' - - 'extras' - - 'monashhpc_lustreversions' - - 'monashhpc_base' - - 'monashhpc_updates' - - 'monashhpc_extras' - - 'monashhpc_centosplus' - - 'monashhpc_otherstuff' diff --git a/CICD/vars/vars_centos79.yml b/CICD/vars/vars_centos79.yml deleted file mode 100644 index 1fc9828c16c6c5f02451c5e5f8ff9e7bebd88115..0000000000000000000000000000000000000000 --- a/CICD/vars/vars_centos79.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -CENTOS_VERSION: 7-9.2009.1.el7.centos.x86_64 -RHEL_VERSION: 7.9 -KERNEL_VERSION: 3.10.0-1160.31.1.el7.x86_64 -LUSTRE_VERSION: 2.12.7-1.el7 -MELLANOX_DRIVER_SRC: MLNX_OFED_LINUX-4.9-3.1.5.0-rhel7.9-ext -repopath: 7.9.2009 - -yumdisablerepo: - - 'monashhpc_k1gpusupport' - -yumenablerepo: - - 'monashhpc_lustreversions' - - 'monashhpc_base' - - 'monashhpc_updates' - - 'monashhpc_extras' - - 'monashhpc_centosplus' - - 'monashhpc_otherstuff' - - 'base' - - 'updates' - - 'extras' - - 'centos-ansible-29' - diff --git a/CICD/vars/vars_ubuntu18.yml b/CICD/vars/vars_ubuntu18.yml deleted file mode 100644 index 52fb07e13556408445d1930cfeb6be369d25bfab..0000000000000000000000000000000000000000 --- a/CICD/vars/vars_ubuntu18.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -KERNEL_VERSION: 4.15.0-118-generic # this is just the output of uname -ar -LUSTRE_VERSION: v2_12_6 -MELLANOX_DRIVER_SRC: MLNX_OFED_LINUX-4.9-2.2.4.0-ubuntu18.04-x86_64 -#repopath: 7.8.2003 - diff --git a/CICD/vars/vars_ubuntu20.yml b/CICD/vars/vars_ubuntu20.yml deleted file mode 100644 index 4bca02fc08d91927c67ec805d750ecb1331bbd84..0000000000000000000000000000000000000000 --- a/CICD/vars/vars_ubuntu20.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -#KERNEL_VERSION: 5.4.0-67-generic # this is just the output of uname -ar -KERNEL_VERSION: 5.4.0-70-generic -LUSTRE_VERSION: v2_14_50 -MELLANOX_DRIVER_SRC: MLNX_OFED_LINUX-4.9-2.2.4.0-ubuntu20.04-x86_64 -#repopath: 7.8.2003 -