diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml new file mode 100644 index 00000000..075adc55 --- /dev/null +++ b/.github/workflows/molecule.yml @@ -0,0 +1,33 @@ +name: "Run molecule tests" + +on: + push: + paths: + - 'ansible/**' + pull_request: + paths: + - 'ansible/**' + +jobs: + molecule: + runs-on: ubuntu-latest + strategy: + matrix: + role: ["initial_setup", "m_base"] + steps: + - uses: actions/checkout@v2 + with: + path: "${{ github.repository }}" + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.11.x" + - name: Install dependencies + run: | + pip install "ansible>11,<12" molecule=="25.1.0" molecule-plugins=="23.7.0" molecule-docker pytest pytest-testinfra + - name: Run molecule tests + working-directory: "${{ github.repository }}/ansible/roles/${{ matrix.role }}" + run: | + molecule test + env: + PY_COLORS: 1 diff --git a/.github/workflows/rebuild-container-images.yml b/.github/workflows/rebuild-container-images.yml index 83d048c1..ea6b8b93 100644 --- a/.github/workflows/rebuild-container-images.yml +++ b/.github/workflows/rebuild-container-images.yml @@ -6,7 +6,7 @@ on: - '.github/workflows/rebuild-container-images.yml' - '.github/workflows/Containerfile.*' - 'ansible/roles/initial_setup/**' - - 'ansible/roles/m-base/**' + - 'ansible/roles/m_base/**' - 'ansible/vars/ci-base-image.yml' - 'ansible/playbook.yml' - 'ansible/requirements.yml' @@ -17,7 +17,7 @@ on: - '.github/workflows/rebuild-container-images.yml' - '.github/workflows/Containerfile.*' - 'ansible/roles/initial_setup/**' - - 'ansible/roles/m-base/**' + - 'ansible/roles/m_base/**' - 'ansible/vars/ci-base-image.yml' - 'ansible/playbook.yml' - 'ansible/requirements.yml' diff --git a/.github/workflows/test-roles-areadetector.yml.autosave b/.github/workflows/test-roles-areadetector.yml.autosave index 55363ac8..ccffaee1 100644 --- a/.github/workflows/test-roles-areadetector.yml.autosave +++ b/.github/workflows/test-roles-areadetector.yml.autosave @@ -14,7 +14,7 @@ on: - '!ansible/roles/initial_setup/**' - '!ansible/roles/catrust/**' - '!ansible/roles/common/**' - - '!ansible/roles/m-base/**' + - '!ansible/roles/m_base/**' - '!ansible/roles/epics-module/**' pull_request: paths: @@ -26,7 +26,7 @@ on: - '!ansible/roles/initial_setup/**' - '!ansible/roles/catrust/**' - '!ansible/roles/common/**' - - '!ansible/roles/m-base/**' + - '!ansible/roles/m_base/**' - '!ansible/roles/epics-module/**' workflow_run: workflows: ["Rebuild Container Images"] @@ -59,7 +59,7 @@ jobs: conf: - name: "areaDetector" id: "ci-areadetector" - - name: "oac-tree" + - name: "oac_tree" id: "ci-oac-tree" - name: "Phoebus & Archiver" id: "ci-phoebus-aa" diff --git a/.github/workflows/test-roles-modules.yml b/.github/workflows/test-roles-modules.yml index f2ee9ee1..bd626ebe 100644 --- a/.github/workflows/test-roles-modules.yml +++ b/.github/workflows/test-roles-modules.yml @@ -7,16 +7,16 @@ on: - 'ansible/vars/ci-*.yml' - 'ansible/playbook.yml' - 'ansible/requirements.yml' - - 'ansible/roles/m-*/**' - - '!ansible/roles/m-base/**' + - 'ansible/roles/m_*/**' + - '!ansible/roles/m_base/**' pull_request: paths: - '.github/workflows/test-roles-modules.yml' - 'ansible/vars/ci-*.yml' - 'ansible/playbook.yml' - 'ansible/requirements.yml' - - 'ansible/roles/m-*/**' - - '!ansible/roles/m-base/**' + - 'ansible/roles/m_*/**' + - '!ansible/roles/m_base/**' workflow_run: workflows: ["Rebuild Container Images"] types: diff --git a/.github/workflows/test-roles-oac-tree.yml b/.github/workflows/test-roles-oac-tree.yml index b07b79a6..b6308205 100644 --- a/.github/workflows/test-roles-oac-tree.yml +++ b/.github/workflows/test-roles-oac-tree.yml @@ -7,14 +7,14 @@ on: - 'ansible/vars/ci-*.yml' - 'ansible/playbook.yml' - 'ansible/requirements.yml' - - 'ansible/roles/oac-tree/**' + - 'ansible/roles/oac_tree/**' pull_request: paths: - '.github/workflows/test-roles-oac-tree.yml' - 'ansible/vars/ci-*.yml' - 'ansible/playbook.yml' - 'ansible/requirements.yml' - - 'ansible/roles/oac-tree/**' + - 'ansible/roles/oac_tree/**' workflow_run: workflows: ["Rebuild Container Images"] types: diff --git a/.github/workflows/test-roles-phoebus-aa.yml b/.github/workflows/test-roles-phoebus-aa.yml index 2d43e5b4..1340a9d2 100644 --- a/.github/workflows/test-roles-phoebus-aa.yml +++ b/.github/workflows/test-roles-phoebus-aa.yml @@ -9,7 +9,7 @@ on: - 'ansible/requirements.yml' - 'ansible/roles/phoebus/**' - 'ansible/roles/java/**' - - 'ansible/roles/archiver-appliance/**' + - 'ansible/roles/archiver_appliance/**' pull_request: paths: - '.github/workflows/test-roles-phoebus-aa.yml' @@ -18,7 +18,7 @@ on: - 'ansible/requirements.yml' - 'ansible/roles/phoebus/**' - 'ansible/roles/java/**' - - 'ansible/roles/archiver-appliance/**' + - 'ansible/roles/archiver_appliance/**' workflow_run: workflows: ["Rebuild Container Images"] types: diff --git a/.gitignore b/.gitignore index bd43ffcd..7a992baf 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ ansible/group_vars/local.yml venv **/.vagrant /vagrant/corporate_root_ca.crt +__pycache__ +*.pyc \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..878ec9e6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "ansible.python.interpreterPath": "/usr/local/bin/python3" +} \ No newline at end of file diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 543786a7..38b0f388 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -35,75 +35,75 @@ - name: EPICS Base include_role: - name: m-base + name: m_base when: m_base is defined and m_base | bool - tags: m-base + tags: m_base - name: ASYN include_role: - name: m-asyn + name: m_asyn when: m_asyn is defined and m_asyn | bool - tags: m-asyn + tags: m_asyn - name: Autosave include_role: - name: m-autosave + name: m_autosave when: m_autosave is defined and m_autosave | bool - tags: m-autosave + tags: m_autosave - name: SScan include_role: - name: m-sscan + name: m_sscan when: m_sscan is defined and m_sscan | bool - tags: m-sscan + tags: m_sscan - name: Calc include_role: - name: m-calc + name: m_calc when: m_calc is defined and m_calc | bool - tags: m-calc + tags: m_calc - name: Busy include_role: - name: m-busy + name: m_busy when: m_busy is defined and m_busy | bool - tags: m-busy + tags: m_busy - name: AreaDetector include_role: - name: m-areadetector + name: m_areadetector when: m_areadetector is defined and m_areadetector | bool - tags: m-areadetector + tags: m_areadetector - name: OPC UA include_role: - name: m-opcua + name: m_opcua when: m_opcua is defined and m_opcua | bool - tags: m-opcua + tags: m_opcua - name: P4P include_role: - name: m-p4p + name: m_p4p when: m_p4p is defined and m_p4p | bool - tags: m-p4p + tags: m_p4p - name: pvaPy include_role: - name: m-pvaPy + name: m_pvaPy when: m_pvaPy is defined and m_pvaPy | bool - tags: m-pvaPy + tags: m_pvaPy - name: Sequencer include_role: - name: m-seq + name: m_seq when: m_seq is defined and m_seq | bool - tags: m-seq + tags: m_seq - name: StreamDevice include_role: - name: m-stream + name: m_stream when: m_stream is defined and m_stream | bool - tags: m-stream + tags: m_stream - name: Docker include_role: @@ -129,13 +129,13 @@ - name: OAC Tree include_role: - name: oac-tree + name: oac_tree when: oac_tree is defined and oac_tree | bool tags: oac_tree - name: Archiver Appliance include_role: - name: archiver-appliance + name: archiver_appliance when: archiver_appliance is defined and archiver_appliance | bool tags: archiver_appliance diff --git a/ansible/roles/README.md b/ansible/roles/README.md index b109c840..58c2bb29 100644 --- a/ansible/roles/README.md +++ b/ansible/roles/README.md @@ -2,27 +2,27 @@ ## EPICS Modules -### m-areadetector +### m_areadetector The AreaDetector image processing framework (modules Core, SimDetector and PVADriver) and their dependency Busy. -### m-base +### m_base EPICS Base C++ and PVXS. -### m-opcua +### m_opcua OPC UA Device Support and the open62541 low-level driver. -### m-p4p +### m_p4p Python wrapper for PVAccess (PVXS-based) and PVA Gateway. -### m-pvaPy +### m_pvaPy Python wrapper for PVAccess (based on the classical PVA stack). -### m-seq +### m_seq State Notation language compiler and Sequencer. -### m-stream +### m_stream StreamDevice Device Support. ## Phoebus and Services @@ -30,12 +30,12 @@ StreamDevice Device Support. ### phoebus Control System Studio / Phoebus. -### archiver-appliance +### archiver_appliance Minimal install of the EPICS Archiver Appliance. ## Other Clients -### oac-tree +### oac_tree High-level sequencer for automation, operation and control. ## Bluesky Modules @@ -52,16 +52,16 @@ Enterprise CA certificate install ## Internal Modules Low-level stuff and dependencies of the above. -### m-asyn +### m_asyn The ASYN Driver framework. -### m-autosave +### m_autosave The AutoSaveRestore (EPICS Process Database persistence) module. -### m-calc +### m_calc The CALC (array and string calculation) module. -### m-sscan +### m_sscan The SSCAN (multi-dimensional scan record) module. ### docker @@ -75,7 +75,7 @@ Java SDK needed for Phoebus and Services. # Adding EPICS modules -m-base provides a task file to install one or more EPICS modules. +m_base provides a task file to install one or more EPICS modules. ## Parameters @@ -102,7 +102,7 @@ Each dictionary in `epics_modules_to_build` should have the following keys: ## Usage Example -In a high-level role `m-example`: +In a high-level role `m_example`: `vars/main.yml`: ```yaml @@ -114,7 +114,7 @@ m_example_modules: url: "https://example.com/example-{{ example_version }}.tar.gz" release_var: "EXAMPLE" release_sortkey: "10" - pre_hook: "{{ playbook_dir }}/roles/m-example/tasks/example_prep.yml" + pre_hook: "{{ playbook_dir }}/roles/m_example/tasks/example_prep.yml" ``` `tasks/main.yml`: diff --git a/ansible/roles/archiver-appliance/defaults/main.yml b/ansible/roles/archiver_appliance/defaults/main.yml similarity index 100% rename from ansible/roles/archiver-appliance/defaults/main.yml rename to ansible/roles/archiver_appliance/defaults/main.yml diff --git a/ansible/roles/archiver-appliance/files/appliances.xml b/ansible/roles/archiver_appliance/files/appliances.xml similarity index 100% rename from ansible/roles/archiver-appliance/files/appliances.xml rename to ansible/roles/archiver_appliance/files/appliances.xml diff --git a/ansible/roles/archiver-appliance/files/context.xml b/ansible/roles/archiver_appliance/files/context.xml similarity index 100% rename from ansible/roles/archiver-appliance/files/context.xml rename to ansible/roles/archiver_appliance/files/context.xml diff --git a/ansible/roles/archiver-appliance/files/log4j2.xml b/ansible/roles/archiver_appliance/files/log4j2.xml similarity index 100% rename from ansible/roles/archiver-appliance/files/log4j2.xml rename to ansible/roles/archiver_appliance/files/log4j2.xml diff --git a/ansible/roles/archiver-appliance/files/policies.py b/ansible/roles/archiver_appliance/files/policies.py similarity index 100% rename from ansible/roles/archiver-appliance/files/policies.py rename to ansible/roles/archiver_appliance/files/policies.py diff --git a/ansible/roles/archiver-appliance/files/server.xml b/ansible/roles/archiver_appliance/files/server.xml similarity index 100% rename from ansible/roles/archiver-appliance/files/server.xml rename to ansible/roles/archiver_appliance/files/server.xml diff --git a/ansible/roles/archiver-appliance/handlers/main.yml b/ansible/roles/archiver_appliance/handlers/main.yml similarity index 100% rename from ansible/roles/archiver-appliance/handlers/main.yml rename to ansible/roles/archiver_appliance/handlers/main.yml diff --git a/ansible/roles/archiver-appliance/meta/main.yml b/ansible/roles/archiver_appliance/meta/main.yml similarity index 100% rename from ansible/roles/archiver-appliance/meta/main.yml rename to ansible/roles/archiver_appliance/meta/main.yml diff --git a/ansible/roles/archiver-appliance/tasks/add_firefox_bookmark.yml b/ansible/roles/archiver_appliance/tasks/add_firefox_bookmark.yml similarity index 100% rename from ansible/roles/archiver-appliance/tasks/add_firefox_bookmark.yml rename to ansible/roles/archiver_appliance/tasks/add_firefox_bookmark.yml diff --git a/ansible/roles/archiver-appliance/tasks/install_appliance.yml b/ansible/roles/archiver_appliance/tasks/install_appliance.yml similarity index 100% rename from ansible/roles/archiver-appliance/tasks/install_appliance.yml rename to ansible/roles/archiver_appliance/tasks/install_appliance.yml diff --git a/ansible/roles/archiver-appliance/tasks/install_mariadb.yml b/ansible/roles/archiver_appliance/tasks/install_mariadb.yml similarity index 100% rename from ansible/roles/archiver-appliance/tasks/install_mariadb.yml rename to ansible/roles/archiver_appliance/tasks/install_mariadb.yml diff --git a/ansible/roles/archiver-appliance/tasks/install_tomcat.yml b/ansible/roles/archiver_appliance/tasks/install_tomcat.yml similarity index 100% rename from ansible/roles/archiver-appliance/tasks/install_tomcat.yml rename to ansible/roles/archiver_appliance/tasks/install_tomcat.yml diff --git a/ansible/roles/archiver-appliance/tasks/main.yml b/ansible/roles/archiver_appliance/tasks/main.yml similarity index 100% rename from ansible/roles/archiver-appliance/tasks/main.yml rename to ansible/roles/archiver_appliance/tasks/main.yml diff --git a/ansible/roles/archiver-appliance/templates/archappl.properties.j2 b/ansible/roles/archiver_appliance/templates/archappl.properties.j2 similarity index 100% rename from ansible/roles/archiver-appliance/templates/archappl.properties.j2 rename to ansible/roles/archiver_appliance/templates/archappl.properties.j2 diff --git a/ansible/roles/archiver-appliance/templates/archiver_appliance.service.j2 b/ansible/roles/archiver_appliance/templates/archiver_appliance.service.j2 similarity index 100% rename from ansible/roles/archiver-appliance/templates/archiver_appliance.service.j2 rename to ansible/roles/archiver_appliance/templates/archiver_appliance.service.j2 diff --git a/ansible/roles/archiver-appliance/templates/context.xml.j2 b/ansible/roles/archiver_appliance/templates/context.xml.j2 similarity index 100% rename from ansible/roles/archiver-appliance/templates/context.xml.j2 rename to ansible/roles/archiver_appliance/templates/context.xml.j2 diff --git a/ansible/roles/archiver-appliance/templates/setenv.sh.j2 b/ansible/roles/archiver_appliance/templates/setenv.sh.j2 similarity index 100% rename from ansible/roles/archiver-appliance/templates/setenv.sh.j2 rename to ansible/roles/archiver_appliance/templates/setenv.sh.j2 diff --git a/ansible/roles/initial_setup/defaults/main.yml b/ansible/roles/initial_setup/defaults/main.yml new file mode 100644 index 00000000..939f8661 --- /dev/null +++ b/ansible/roles/initial_setup/defaults/main.yml @@ -0,0 +1,2 @@ +--- +dev_user: "epics-dev" \ No newline at end of file diff --git a/ansible/roles/initial_setup/molecule/default/molecule.yml b/ansible/roles/initial_setup/molecule/default/molecule.yml new file mode 100644 index 00000000..9560aacb --- /dev/null +++ b/ansible/roles/initial_setup/molecule/default/molecule.yml @@ -0,0 +1,30 @@ +--- +dependency: + name: galaxy +lint: | + set -e + yamllint . + ansible-lint + flake8 +provisioner: + name: ansible + playbooks: + converge: ../resources/converge.yml + inventory: + host_vars: + initial_setup-docker: + in_container: true + docker: true + group_vars: + all: + +scenario: + name: default +verifier: + name: testinfra + directory: ../resources/tests/ +driver: + name: docker +platforms: + - name: initial_setup-docker + image: ubuntu:22.04 diff --git a/ansible/roles/initial_setup/molecule/resources/converge.yml b/ansible/roles/initial_setup/molecule/resources/converge.yml new file mode 100644 index 00000000..6bdb59bf --- /dev/null +++ b/ansible/roles/initial_setup/molecule/resources/converge.yml @@ -0,0 +1,6 @@ +--- +- name: Converge + hosts: all # dunno + become: true + roles: + - role: initial_setup diff --git a/ansible/roles/initial_setup/molecule/resources/tests/test_initial_setup.py b/ansible/roles/initial_setup/molecule/resources/tests/test_initial_setup.py new file mode 100644 index 00000000..9c81fae1 --- /dev/null +++ b/ansible/roles/initial_setup/molecule/resources/tests/test_initial_setup.py @@ -0,0 +1,19 @@ +EPICS_DEV_USER = "epics-dev" + + +def test_development_user_exists(host): + assert host.user(EPICS_DEV_USER).exists + + +def test_development_user_has_sudo_permissions(host): + assert host.file("/etc/sudoers").contains( + f"%{EPICS_DEV_USER} ALL=(ALL) NOPASSWD: ALL" + ) + + +def test_python_is_python3(host): + cmd = host.run("python --version") + assert cmd.succeeded + + # Output is "Python " + assert cmd.stdout.split()[-1].startswith("3.") diff --git a/ansible/roles/initial_setup/tasks/grow_disk.yml b/ansible/roles/initial_setup/tasks/grow_disk.yml index 6193eb8b..e835f9f1 100644 --- a/ansible/roles/initial_setup/tasks/grow_disk.yml +++ b/ansible/roles/initial_setup/tasks/grow_disk.yml @@ -7,7 +7,6 @@ msg: | rootdisk:{{ root_disk }}, root_part:{{ root_partition }} fs_type:{{ root_fs_type }}, all_partitions:{{ partitions }}, no:{{ last_partition_no }} DISTRO:{{ ansible_facts['distribution'] }} (family: {{ ansible_facts['os_family'] }}) - is_redhat:{{ is_redhat }}, is_debian:{{ is_debian }} - name: APT Install growpart ansible.builtin.apt: @@ -15,13 +14,13 @@ state: latest update_cache: true become: true - when: is_debian + when: ansible_facts['os_family'] == 'Debian' - name: DNF Install growpart dnf: name: cloud-utils-growpart become: true - when: is_redhat + when: ansible_facts['os_family'] == 'RedHat' - name: growpart the root partition to fill all available space ansible.builtin.shell: diff --git a/ansible/roles/initial_setup/tasks/main.yml b/ansible/roles/initial_setup/tasks/main.yml index 5c408d6c..3d17200c 100644 --- a/ansible/roles/initial_setup/tasks/main.yml +++ b/ansible/roles/initial_setup/tasks/main.yml @@ -1,4 +1,11 @@ --- +- name: Load distribution variables + ansible.builtin.include_vars: "{{ item }}" + with_first_found: + - files: + - "{{ ansible_facts['distribution'] }}.yml" + - "{{ ansible_facts['os_family'] }}.yml" + - name: Print all available facts for debugging # 'cd ansible; ansible localhost -m ansible.builtin.setup' will show this info ansible.builtin.debug: @@ -35,7 +42,7 @@ - rocky-addons.repo - name: APT Upgrade all packages; install Dev Tools and Gnome - when: is_debian + when: ansible_facts['os_family'] == 'Debian' become: true block: - name: Upgrade all packages @@ -53,10 +60,10 @@ - curl - sudo - openssl - - "{{ distro.gnome_group }}" + - "{{ initial_setup_gnome_group }}" - name: RPM Upgrade all packages; install Dev Tools and Gnome - when: is_redhat + when: ansible_facts['os_family'] == 'RedHat' become: true block: - name: Upgrade all packages @@ -67,12 +74,12 @@ - name: Install Dev Tools and Gnome ansible.builtin.dnf: name: - - "@{{ distro.devel_group }}" + - "@{{ initial_setup_devel_group }}" - gcc-c++ - vim - sudo - openssl - - "@{{ distro.gnome_group }}" + - "@{{ initial_setup_gnome_group }}" allowerasing: true # fix version conflicts for curl and coreutils on Rocky - name: Change default target to graphical.target @@ -85,7 +92,7 @@ - name: Make XOrg the default display manager ansible.builtin.lineinfile: - path: "{{ distro.gdm_config }}" + path: "{{ initial_setup_gdm_config }}" search_string: "WaylandEnable" line: "WaylandEnable=false" become: true diff --git a/ansible/roles/initial_setup/vars/Debian.yml b/ansible/roles/initial_setup/vars/Debian.yml new file mode 100644 index 00000000..00d22e9e --- /dev/null +++ b/ansible/roles/initial_setup/vars/Debian.yml @@ -0,0 +1,3 @@ +--- +initial_setup_gnome_group: "gnome-core" +initial_setup_gdm_config: "/etc/gdm3/daemon.conf" diff --git a/ansible/roles/initial_setup/vars/Fedora.yml b/ansible/roles/initial_setup/vars/Fedora.yml new file mode 100644 index 00000000..18ea69e4 --- /dev/null +++ b/ansible/roles/initial_setup/vars/Fedora.yml @@ -0,0 +1,4 @@ +--- +initial_setup_gnome_group: "gnome-desktop" +initial_setup_devel_group: "development-tools" +initial_setup_gdm_config: "/etc/gdm/custom.conf" diff --git a/ansible/roles/initial_setup/vars/RedHat.yml b/ansible/roles/initial_setup/vars/RedHat.yml new file mode 100644 index 00000000..aa9ab35d --- /dev/null +++ b/ansible/roles/initial_setup/vars/RedHat.yml @@ -0,0 +1,4 @@ +--- +initial_setup_gnome_group: "Workstation" +initial_setup_devel_group: "Development Tools" +initial_setup_gdm_config: "/etc/gdm/custom.conf" diff --git a/ansible/roles/initial_setup/vars/Ubuntu.yml b/ansible/roles/initial_setup/vars/Ubuntu.yml new file mode 100644 index 00000000..3d5cc4e9 --- /dev/null +++ b/ansible/roles/initial_setup/vars/Ubuntu.yml @@ -0,0 +1,3 @@ +--- +initial_setup_gnome_group: "gnome-core" +initial_setup_gdm_config: "/etc/gdm3/custom.conf" diff --git a/ansible/roles/m-areadetector/meta/main.yml b/ansible/roles/m-areadetector/meta/main.yml deleted file mode 100644 index ddfaa4ce..00000000 --- a/ansible/roles/m-areadetector/meta/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -dependencies: - - role: m-base - - role: m-asyn - - role: m-autosave - - role: m-pvaPy diff --git a/ansible/roles/m-base/meta/main.yml b/ansible/roles/m-base/meta/main.yml deleted file mode 100644 index 61d3ffe4..00000000 --- a/ansible/roles/m-base/meta/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -allow_duplicates: true diff --git a/ansible/roles/m-calc/meta/main.yml b/ansible/roles/m-calc/meta/main.yml deleted file mode 100644 index 738239b5..00000000 --- a/ansible/roles/m-calc/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dependencies: - - role: m-base - - role: m-sscan diff --git a/ansible/roles/m-pvaPy/meta/main.yml b/ansible/roles/m-pvaPy/meta/main.yml deleted file mode 100644 index 290e964c..00000000 --- a/ansible/roles/m-pvaPy/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - role: m-base diff --git a/ansible/roles/m-seq/meta/main.yml b/ansible/roles/m-seq/meta/main.yml deleted file mode 100644 index 290e964c..00000000 --- a/ansible/roles/m-seq/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - role: m-base diff --git a/ansible/roles/m-sscan/meta/main.yml b/ansible/roles/m-sscan/meta/main.yml deleted file mode 100644 index 290e964c..00000000 --- a/ansible/roles/m-sscan/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - role: m-base diff --git a/ansible/roles/m-stream/meta/main.yml b/ansible/roles/m-stream/meta/main.yml deleted file mode 100644 index 9fe6e242..00000000 --- a/ansible/roles/m-stream/meta/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -dependencies: - - role: m-base - - role: m-asyn - - role: m-calc diff --git a/ansible/roles/m_areadetector/meta/main.yml b/ansible/roles/m_areadetector/meta/main.yml new file mode 100644 index 00000000..baab2cb2 --- /dev/null +++ b/ansible/roles/m_areadetector/meta/main.yml @@ -0,0 +1,6 @@ +--- +dependencies: + - role: m_base + - role: m_asyn + - role: m_autosave + - role: m_pvaPy diff --git a/ansible/roles/m-areadetector/tasks/adcore_prep.yml b/ansible/roles/m_areadetector/tasks/adcore_prep.yml similarity index 92% rename from ansible/roles/m-areadetector/tasks/adcore_prep.yml rename to ansible/roles/m_areadetector/tasks/adcore_prep.yml index 5a8c9084..dfa7cbc3 100644 --- a/ansible/roles/m-areadetector/tasks/adcore_prep.yml +++ b/ansible/roles/m_areadetector/tasks/adcore_prep.yml @@ -32,12 +32,12 @@ - name: "{{ module.name }} pre-build hook | Add common plugins st.cmd snippet" ansible.builtin.template: - src: "{{ playbook_dir }}/roles/m-areadetector/templates/commonPlugins.cmd.j2" + src: "{{ playbook_dir }}/roles/m_areadetector/templates/commonPlugins.cmd.j2" dest: "{{ epics_install_path }}/{{ module.id }}-{{ module.version }}/iocBoot/commonPlugins.cmd" become: true - name: "{{ module.name }} pre-build hook | Add common plugins autoSaveRestore configuration" ansible.builtin.template: - src: "{{ playbook_dir }}/roles/m-areadetector/templates/commonPlugin_settings.req.j2" + src: "{{ playbook_dir }}/roles/m_areadetector/templates/commonPlugin_settings.req.j2" dest: "{{ epics_install_path }}/{{ module.id }}-{{ module.version }}/iocBoot/commonPlugin_settings.req" become: true diff --git a/ansible/roles/m-areadetector/tasks/adpvadriver_prep.yml b/ansible/roles/m_areadetector/tasks/adpvadriver_prep.yml similarity index 100% rename from ansible/roles/m-areadetector/tasks/adpvadriver_prep.yml rename to ansible/roles/m_areadetector/tasks/adpvadriver_prep.yml diff --git a/ansible/roles/m-areadetector/tasks/adsimdetector_prep.yml b/ansible/roles/m_areadetector/tasks/adsimdetector_prep.yml similarity index 100% rename from ansible/roles/m-areadetector/tasks/adsimdetector_prep.yml rename to ansible/roles/m_areadetector/tasks/adsimdetector_prep.yml diff --git a/ansible/roles/m-areadetector/tasks/main.yml b/ansible/roles/m_areadetector/tasks/main.yml similarity index 86% rename from ansible/roles/m-areadetector/tasks/main.yml rename to ansible/roles/m_areadetector/tasks/main.yml index 97816667..f99118e1 100644 --- a/ansible/roles/m-areadetector/tasks/main.yml +++ b/ansible/roles/m_areadetector/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_areadetector_modules }}" when: not (m_areadetector_installed | default(false)) -- name: Mark m-areadetector as installed +- name: Mark m_areadetector as installed set_fact: m_areadetector_installed: true diff --git a/ansible/roles/m-areadetector/templates/commonPlugin_settings.req.j2 b/ansible/roles/m_areadetector/templates/commonPlugin_settings.req.j2 similarity index 100% rename from ansible/roles/m-areadetector/templates/commonPlugin_settings.req.j2 rename to ansible/roles/m_areadetector/templates/commonPlugin_settings.req.j2 diff --git a/ansible/roles/m-areadetector/templates/commonPlugins.cmd.j2 b/ansible/roles/m_areadetector/templates/commonPlugins.cmd.j2 similarity index 100% rename from ansible/roles/m-areadetector/templates/commonPlugins.cmd.j2 rename to ansible/roles/m_areadetector/templates/commonPlugins.cmd.j2 diff --git a/ansible/roles/m-areadetector/vars/main.yml b/ansible/roles/m_areadetector/vars/main.yml similarity index 100% rename from ansible/roles/m-areadetector/vars/main.yml rename to ansible/roles/m_areadetector/vars/main.yml diff --git a/ansible/roles/m-autosave/meta/main.yml b/ansible/roles/m_asyn/meta/main.yml similarity index 51% rename from ansible/roles/m-autosave/meta/main.yml rename to ansible/roles/m_asyn/meta/main.yml index 290e964c..ff768b58 100644 --- a/ansible/roles/m-autosave/meta/main.yml +++ b/ansible/roles/m_asyn/meta/main.yml @@ -1,3 +1,3 @@ --- dependencies: - - role: m-base + - role: m_base diff --git a/ansible/roles/m-asyn/tasks/asyn_prep.yml b/ansible/roles/m_asyn/tasks/asyn_prep.yml similarity index 100% rename from ansible/roles/m-asyn/tasks/asyn_prep.yml rename to ansible/roles/m_asyn/tasks/asyn_prep.yml diff --git a/ansible/roles/m-asyn/tasks/main.yml b/ansible/roles/m_asyn/tasks/main.yml similarity index 87% rename from ansible/roles/m-asyn/tasks/main.yml rename to ansible/roles/m_asyn/tasks/main.yml index 8f3a908c..537d8c8d 100644 --- a/ansible/roles/m-asyn/tasks/main.yml +++ b/ansible/roles/m_asyn/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_asyn_modules }}" when: not (m_asyn_installed | default(false)) -- name: Mark m-asyn as installed +- name: Mark m_asyn as installed set_fact: m_asyn_installed: true diff --git a/ansible/roles/m-asyn/vars/main.yml b/ansible/roles/m_asyn/vars/main.yml similarity index 100% rename from ansible/roles/m-asyn/vars/main.yml rename to ansible/roles/m_asyn/vars/main.yml diff --git a/ansible/roles/m-opcua/meta/main.yml b/ansible/roles/m_autosave/meta/main.yml similarity index 51% rename from ansible/roles/m-opcua/meta/main.yml rename to ansible/roles/m_autosave/meta/main.yml index 290e964c..ff768b58 100644 --- a/ansible/roles/m-opcua/meta/main.yml +++ b/ansible/roles/m_autosave/meta/main.yml @@ -1,3 +1,3 @@ --- dependencies: - - role: m-base + - role: m_base diff --git a/ansible/roles/m-autosave/tasks/main.yml b/ansible/roles/m_autosave/tasks/main.yml similarity index 86% rename from ansible/roles/m-autosave/tasks/main.yml rename to ansible/roles/m_autosave/tasks/main.yml index 4308b360..bd29fbfa 100644 --- a/ansible/roles/m-autosave/tasks/main.yml +++ b/ansible/roles/m_autosave/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_autosave_modules }}" when: not (m_autosave_installed | default(false)) -- name: Mark m-autosave as installed +- name: Mark m_autosave as installed set_fact: m_autosave_installed: true diff --git a/ansible/roles/m-autosave/vars/main.yml b/ansible/roles/m_autosave/vars/main.yml similarity index 100% rename from ansible/roles/m-autosave/vars/main.yml rename to ansible/roles/m_autosave/vars/main.yml diff --git a/ansible/roles/m-base/defaults/main.yml b/ansible/roles/m_base/defaults/main.yml similarity index 100% rename from ansible/roles/m-base/defaults/main.yml rename to ansible/roles/m_base/defaults/main.yml diff --git a/ansible/roles/m_base/meta/main.yml b/ansible/roles/m_base/meta/main.yml new file mode 100644 index 00000000..8d1f5efa --- /dev/null +++ b/ansible/roles/m_base/meta/main.yml @@ -0,0 +1,9 @@ +--- +allow_duplicates: true +galaxy_info: + role_name: m_epics + namespace: epics + author: Ralph Lange + description: Ansible role to install EPICS base in a training VM + license: EPICS open license + min_ansible_version: "2.7" \ No newline at end of file diff --git a/ansible/roles/m_base/molecule/default/molecule.yml b/ansible/roles/m_base/molecule/default/molecule.yml new file mode 100644 index 00000000..d4ea4b27 --- /dev/null +++ b/ansible/roles/m_base/molecule/default/molecule.yml @@ -0,0 +1,31 @@ +--- +dependency: + name: galaxy +lint: | + set -e + yamllint . + ansible-lint + flake8 +provisioner: + name: ansible + playbooks: + converge: ../resources/converge.yml + inventory: + host_vars: + m-base-docker: + in_container: true + docker: true + install_gnome: false + group_vars: + all: + +scenario: + name: default +verifier: + name: testinfra + directory: ../resources/tests/ +driver: + name: docker +platforms: + - name: m-base-docker + image: ubuntu:22.04 diff --git a/ansible/roles/m_base/molecule/resources/converge.yml b/ansible/roles/m_base/molecule/resources/converge.yml new file mode 100644 index 00000000..366abf45 --- /dev/null +++ b/ansible/roles/m_base/molecule/resources/converge.yml @@ -0,0 +1,7 @@ +--- +- name: Converge + hosts: all # dunno + become: true + roles: + - role: initial_setup + - role: m_base diff --git a/ansible/roles/m_base/molecule/resources/tests/test_default.py b/ansible/roles/m_base/molecule/resources/tests/test_default.py new file mode 100644 index 00000000..bb4fcc9b --- /dev/null +++ b/ansible/roles/m_base/molecule/resources/tests/test_default.py @@ -0,0 +1,26 @@ +import pytest + +EPICS_DEV_USER = "epics-dev" +RELEASE_LOCAL_PATH = "/opt/epics/RELEASE.local" + + +@pytest.mark.parametrize("target", ["EPICS_BASE", "PVXS"]) +def test_release_dot_local_is_populated(host, target): + assert any( + line.startswith(f"{target}=") + for line in host.file(RELEASE_LOCAL_PATH).content_string.splitlines() + ) + + +@pytest.mark.parametrize("executable", ["softIoc", "softIocPVA", "softIocPVX"]) +def test_softIocXXX_is_on_path(host, executable): + with host.sudo(EPICS_DEV_USER): + cmd = host.run(f"echo exit | bash -lc '{executable}'") + assert cmd.succeeded + + +@pytest.mark.parametrize("tool", ["caget", "pvget", "pvxget"]) +def test_available_tools(host, tool): + with host.sudo(EPICS_DEV_USER): + cmd = host.run(f"bash -lc '{tool} -h'") + assert cmd.succeeded \ No newline at end of file diff --git a/ansible/roles/m-base/tasks/base_prep.yml b/ansible/roles/m_base/tasks/base_prep.yml similarity index 100% rename from ansible/roles/m-base/tasks/base_prep.yml rename to ansible/roles/m_base/tasks/base_prep.yml diff --git a/ansible/roles/m-base/tasks/build_module.yml b/ansible/roles/m_base/tasks/build_module.yml similarity index 91% rename from ansible/roles/m-base/tasks/build_module.yml rename to ansible/roles/m_base/tasks/build_module.yml index b64d5f26..40a69229 100644 --- a/ansible/roles/m-base/tasks/build_module.yml +++ b/ansible/roles/m_base/tasks/build_module.yml @@ -6,7 +6,7 @@ state: present update_cache: true become: true - when: is_debian and module.required_debs is defined + when: ansible_facts['os_family'] == 'Debian' and module.required_debs is defined - name: "{{ module.name }} | Install required RPM dependencies" dnf: @@ -15,7 +15,7 @@ install_weak_deps: false state: present become: true - when: is_redhat and module.required_rpms is defined + when: ansible_facts['os_family'] == 'RedHat' and module.required_rpms is defined - name: "{{ module.name }} | Check target directory" ansible.builtin.stat: @@ -135,7 +135,14 @@ dest: "/etc/profile.d/epics-tools.sh" become: true +- name: "{{ module.name }} | Determine .bob files to copy" + ansible.builtin.find: + path: "{{ epics_install_path }}/{{ module.id }}-{{ module.version }}" + patterns: "*.bob" + register: bob_files + - name: "{{ module.name }} | Copy .bob files to {{ opi_install_path }}" - ansible.builtin.shell: - cmd: "find {{ epics_install_path }}/{{ module.id }}-{{ module.version }} -name '*.bob' -exec cp {} {{ opi_install_path }}/ \\;" - become: true + ansible.builtin.copy: + src: "{{ item.path }}" + dest: "{{ opi_install_path }}" + loop: "{{ bob_files.files }}" diff --git a/ansible/roles/m-base/tasks/build_multi_modules.yml b/ansible/roles/m_base/tasks/build_multi_modules.yml similarity index 100% rename from ansible/roles/m-base/tasks/build_multi_modules.yml rename to ansible/roles/m_base/tasks/build_multi_modules.yml diff --git a/ansible/roles/m-base/tasks/main.yml b/ansible/roles/m_base/tasks/main.yml similarity index 94% rename from ansible/roles/m-base/tasks/main.yml rename to ansible/roles/m_base/tasks/main.yml index 75368497..31b4bb3a 100644 --- a/ansible/roles/m-base/tasks/main.yml +++ b/ansible/roles/m_base/tasks/main.yml @@ -18,6 +18,6 @@ epics_modules_to_build: "{{ m_base_modules }}" when: not (m_base_installed | default(false)) -- name: Mark m-base as installed +- name: Mark m_base as installed set_fact: m_base_installed: true diff --git a/ansible/roles/m-base/vars/main.yml b/ansible/roles/m_base/vars/main.yml similarity index 90% rename from ansible/roles/m-base/vars/main.yml rename to ansible/roles/m_base/vars/main.yml index 9d9f8f56..bd215108 100644 --- a/ansible/roles/m-base/vars/main.yml +++ b/ansible/roles/m_base/vars/main.yml @@ -2,8 +2,8 @@ epics_base_version: "7.0.10" pvxs_version: "1.5.1" -epics_build_module_task: "{{ role_path }}/../m-base/tasks/build_multi_modules.yml" -epics_build_single_module: "{{ role_path }}/../m-base/tasks/build_module.yml" +epics_build_module_task: "{{ role_path }}/../m_base/tasks/build_multi_modules.yml" +epics_build_single_module: "{{ role_path }}/../m_base/tasks/build_module.yml" m_base_modules: - id: base diff --git a/ansible/roles/m_calc/meta/main.yml b/ansible/roles/m_calc/meta/main.yml new file mode 100644 index 00000000..24e65cc5 --- /dev/null +++ b/ansible/roles/m_calc/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: m_base + - role: m_sscan diff --git a/ansible/roles/m-calc/tasks/main.yml b/ansible/roles/m_calc/tasks/main.yml similarity index 87% rename from ansible/roles/m-calc/tasks/main.yml rename to ansible/roles/m_calc/tasks/main.yml index 62e7a5ab..b9bc335c 100644 --- a/ansible/roles/m-calc/tasks/main.yml +++ b/ansible/roles/m_calc/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_calc_modules }}" when: not (m_calc_installed | default(false)) -- name: Mark m-calc as installed +- name: Mark m_calc as installed set_fact: m_calc_installed: true diff --git a/ansible/roles/m-calc/vars/main.yml b/ansible/roles/m_calc/vars/main.yml similarity index 100% rename from ansible/roles/m-calc/vars/main.yml rename to ansible/roles/m_calc/vars/main.yml diff --git a/ansible/roles/m-asyn/meta/main.yml b/ansible/roles/m_opcua/meta/main.yml similarity index 51% rename from ansible/roles/m-asyn/meta/main.yml rename to ansible/roles/m_opcua/meta/main.yml index 290e964c..ff768b58 100644 --- a/ansible/roles/m-asyn/meta/main.yml +++ b/ansible/roles/m_opcua/meta/main.yml @@ -1,3 +1,3 @@ --- dependencies: - - role: m-base + - role: m_base diff --git a/ansible/roles/m-opcua/tasks/install_xca.yml b/ansible/roles/m_opcua/tasks/install_xca.yml similarity index 100% rename from ansible/roles/m-opcua/tasks/install_xca.yml rename to ansible/roles/m_opcua/tasks/install_xca.yml diff --git a/ansible/roles/m-opcua/tasks/main.yml b/ansible/roles/m_opcua/tasks/main.yml similarity index 86% rename from ansible/roles/m-opcua/tasks/main.yml rename to ansible/roles/m_opcua/tasks/main.yml index b9a77194..f8ac0e71 100644 --- a/ansible/roles/m-opcua/tasks/main.yml +++ b/ansible/roles/m_opcua/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_opcua_modules }}" when: not (m_opcua_installed | default(false)) -- name: Mark m-opcua as installed +- name: Mark m_opcua as installed set_fact: m_opcua_installed: true diff --git a/ansible/roles/m-opcua/tasks/opcua_prep.yml b/ansible/roles/m_opcua/tasks/opcua_prep.yml similarity index 97% rename from ansible/roles/m-opcua/tasks/opcua_prep.yml rename to ansible/roles/m_opcua/tasks/opcua_prep.yml index 373c46ac..41328008 100644 --- a/ansible/roles/m-opcua/tasks/opcua_prep.yml +++ b/ansible/roles/m_opcua/tasks/opcua_prep.yml @@ -76,6 +76,6 @@ - name: "{{ module.name }} pre-build hook | CONFIG_SITE.local" ansible.builtin.template: - src: "{{ playbook_dir }}/roles/m-opcua/templates/opcua_CONFIG_SITE.local.j2" + src: "{{ playbook_dir }}/roles/m_opcua/templates/opcua_CONFIG_SITE.local.j2" dest: "{{ epics_install_path }}/{{ module.id }}-{{ module.version }}/configure/CONFIG_SITE.local" become: true diff --git a/ansible/roles/m-opcua/templates/opcua_CONFIG_SITE.local.j2 b/ansible/roles/m_opcua/templates/opcua_CONFIG_SITE.local.j2 similarity index 100% rename from ansible/roles/m-opcua/templates/opcua_CONFIG_SITE.local.j2 rename to ansible/roles/m_opcua/templates/opcua_CONFIG_SITE.local.j2 diff --git a/ansible/roles/m-opcua/vars/main.yml b/ansible/roles/m_opcua/vars/main.yml similarity index 100% rename from ansible/roles/m-opcua/vars/main.yml rename to ansible/roles/m_opcua/vars/main.yml diff --git a/ansible/roles/m-p4p/meta/main.yml b/ansible/roles/m_p4p/meta/main.yml similarity index 51% rename from ansible/roles/m-p4p/meta/main.yml rename to ansible/roles/m_p4p/meta/main.yml index 290e964c..ff768b58 100644 --- a/ansible/roles/m-p4p/meta/main.yml +++ b/ansible/roles/m_p4p/meta/main.yml @@ -1,3 +1,3 @@ --- dependencies: - - role: m-base + - role: m_base diff --git a/ansible/roles/m-p4p/tasks/main.yml b/ansible/roles/m_p4p/tasks/main.yml similarity index 87% rename from ansible/roles/m-p4p/tasks/main.yml rename to ansible/roles/m_p4p/tasks/main.yml index 481ae8e6..70a6f2de 100644 --- a/ansible/roles/m-p4p/tasks/main.yml +++ b/ansible/roles/m_p4p/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_p4p_modules }}" when: not (m_p4p_installed | default(false)) -- name: Mark m-p4p as installed +- name: Mark m_p4p as installed set_fact: m_p4p_installed: true diff --git a/ansible/roles/m-p4p/tasks/p4p_prep.yml b/ansible/roles/m_p4p/tasks/p4p_prep.yml similarity index 100% rename from ansible/roles/m-p4p/tasks/p4p_prep.yml rename to ansible/roles/m_p4p/tasks/p4p_prep.yml diff --git a/ansible/roles/m-p4p/vars/main.yml b/ansible/roles/m_p4p/vars/main.yml similarity index 100% rename from ansible/roles/m-p4p/vars/main.yml rename to ansible/roles/m_p4p/vars/main.yml diff --git a/ansible/roles/m_pvaPy/meta/main.yml b/ansible/roles/m_pvaPy/meta/main.yml new file mode 100644 index 00000000..ff768b58 --- /dev/null +++ b/ansible/roles/m_pvaPy/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: m_base diff --git a/ansible/roles/m-pvaPy/tasks/main.yml b/ansible/roles/m_pvaPy/tasks/main.yml similarity index 92% rename from ansible/roles/m-pvaPy/tasks/main.yml rename to ansible/roles/m_pvaPy/tasks/main.yml index 27689fad..c795c630 100644 --- a/ansible/roles/m-pvaPy/tasks/main.yml +++ b/ansible/roles/m_pvaPy/tasks/main.yml @@ -7,6 +7,6 @@ - not (m_pvapy_installed | default(false)) - (ansible_facts['distribution'] == 'Rocky' and ansible_facts.distribution_major_version == '8') or (ansible_facts['distribution'] == 'Ubuntu' and ansible_facts.distribution_release != 'noble') -- name: Mark m-pvaPy as installed +- name: Mark m_pvaPy as installed set_fact: m_pvapy_installed: true diff --git a/ansible/roles/m-pvaPy/tasks/pvapy_post.yml b/ansible/roles/m_pvaPy/tasks/pvapy_post.yml similarity index 100% rename from ansible/roles/m-pvaPy/tasks/pvapy_post.yml rename to ansible/roles/m_pvaPy/tasks/pvapy_post.yml diff --git a/ansible/roles/m-pvaPy/tasks/pvapy_prep.yml b/ansible/roles/m_pvaPy/tasks/pvapy_prep.yml similarity index 100% rename from ansible/roles/m-pvaPy/tasks/pvapy_prep.yml rename to ansible/roles/m_pvaPy/tasks/pvapy_prep.yml diff --git a/ansible/roles/m-pvaPy/vars/main.yml b/ansible/roles/m_pvaPy/vars/main.yml similarity index 100% rename from ansible/roles/m-pvaPy/vars/main.yml rename to ansible/roles/m_pvaPy/vars/main.yml diff --git a/ansible/roles/m_seq/meta/main.yml b/ansible/roles/m_seq/meta/main.yml new file mode 100644 index 00000000..ff768b58 --- /dev/null +++ b/ansible/roles/m_seq/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: m_base diff --git a/ansible/roles/m-seq/tasks/main.yml b/ansible/roles/m_seq/tasks/main.yml similarity index 87% rename from ansible/roles/m-seq/tasks/main.yml rename to ansible/roles/m_seq/tasks/main.yml index 749dede3..75e821ed 100644 --- a/ansible/roles/m-seq/tasks/main.yml +++ b/ansible/roles/m_seq/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_seq_modules }}" when: not (m_seq_installed | default(false)) -- name: Mark m-seq as installed +- name: Mark m_seq as installed set_fact: m_seq_installed: true diff --git a/ansible/roles/m-seq/vars/main.yml b/ansible/roles/m_seq/vars/main.yml similarity index 100% rename from ansible/roles/m-seq/vars/main.yml rename to ansible/roles/m_seq/vars/main.yml diff --git a/ansible/roles/m_sscan/meta/main.yml b/ansible/roles/m_sscan/meta/main.yml new file mode 100644 index 00000000..ff768b58 --- /dev/null +++ b/ansible/roles/m_sscan/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: m_base diff --git a/ansible/roles/m-sscan/tasks/main.yml b/ansible/roles/m_sscan/tasks/main.yml similarity index 86% rename from ansible/roles/m-sscan/tasks/main.yml rename to ansible/roles/m_sscan/tasks/main.yml index e09f7517..efe00430 100644 --- a/ansible/roles/m-sscan/tasks/main.yml +++ b/ansible/roles/m_sscan/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_sscan_modules }}" when: not (m_sscan_installed | default(false)) -- name: Mark m-sscan as installed +- name: Mark m_sscan as installed set_fact: m_sscan_installed: true diff --git a/ansible/roles/m-sscan/tasks/sscan_prep.yml b/ansible/roles/m_sscan/tasks/sscan_prep.yml similarity index 100% rename from ansible/roles/m-sscan/tasks/sscan_prep.yml rename to ansible/roles/m_sscan/tasks/sscan_prep.yml diff --git a/ansible/roles/m-sscan/vars/main.yml b/ansible/roles/m_sscan/vars/main.yml similarity index 100% rename from ansible/roles/m-sscan/vars/main.yml rename to ansible/roles/m_sscan/vars/main.yml diff --git a/ansible/roles/m_stream/meta/main.yml b/ansible/roles/m_stream/meta/main.yml new file mode 100644 index 00000000..c6e2d470 --- /dev/null +++ b/ansible/roles/m_stream/meta/main.yml @@ -0,0 +1,5 @@ +--- +dependencies: + - role: m_base + - role: m_asyn + - role: m_calc diff --git a/ansible/roles/m-stream/tasks/main.yml b/ansible/roles/m_stream/tasks/main.yml similarity index 87% rename from ansible/roles/m-stream/tasks/main.yml rename to ansible/roles/m_stream/tasks/main.yml index e43b26b4..1f2cc56d 100644 --- a/ansible/roles/m-stream/tasks/main.yml +++ b/ansible/roles/m_stream/tasks/main.yml @@ -5,6 +5,6 @@ epics_modules_to_build: "{{ m_stream_modules }}" when: not (m_stream_installed | default(false)) -- name: Mark m-stream as installed +- name: Mark m_stream as installed set_fact: m_stream_installed: true diff --git a/ansible/roles/m-stream/tasks/stream_prep.yml b/ansible/roles/m_stream/tasks/stream_prep.yml similarity index 95% rename from ansible/roles/m-stream/tasks/stream_prep.yml rename to ansible/roles/m_stream/tasks/stream_prep.yml index 20832c4a..14d0ed41 100644 --- a/ansible/roles/m-stream/tasks/stream_prep.yml +++ b/ansible/roles/m_stream/tasks/stream_prep.yml @@ -8,7 +8,7 @@ - name: "{{ module.name }} pre-build hook | Add CONFIG_SITE.local" ansible.builtin.template: - src: "{{ playbook_dir }}/roles/m-stream/templates/CONFIG_SITE.local.j2" + src: "{{ playbook_dir }}/roles/m_stream/templates/CONFIG_SITE.local.j2" dest: "{{ epics_install_path }}/{{ module.id }}-{{ module.version }}/configure/CONFIG_SITE.local" become: true diff --git a/ansible/roles/m-stream/templates/CONFIG_SITE.local.j2 b/ansible/roles/m_stream/templates/CONFIG_SITE.local.j2 similarity index 100% rename from ansible/roles/m-stream/templates/CONFIG_SITE.local.j2 rename to ansible/roles/m_stream/templates/CONFIG_SITE.local.j2 diff --git a/ansible/roles/m-stream/vars/main.yml b/ansible/roles/m_stream/vars/main.yml similarity index 100% rename from ansible/roles/m-stream/vars/main.yml rename to ansible/roles/m_stream/vars/main.yml diff --git a/ansible/roles/oac-tree/meta/main.yml b/ansible/roles/oac-tree/meta/main.yml deleted file mode 100644 index 290e964c..00000000 --- a/ansible/roles/oac-tree/meta/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -dependencies: - - role: m-base diff --git a/ansible/roles/oac_tree/meta/main.yml b/ansible/roles/oac_tree/meta/main.yml new file mode 100644 index 00000000..ff768b58 --- /dev/null +++ b/ansible/roles/oac_tree/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: m_base diff --git a/ansible/roles/oac-tree/tasks/main.yml b/ansible/roles/oac_tree/tasks/main.yml similarity index 99% rename from ansible/roles/oac-tree/tasks/main.yml rename to ansible/roles/oac_tree/tasks/main.yml index 73b93418..cdf2d97d 100644 --- a/ansible/roles/oac-tree/tasks/main.yml +++ b/ansible/roles/oac_tree/tasks/main.yml @@ -1,5 +1,5 @@ --- -# oac-tree role +# oac_tree role - name: "Create directories" ansible.builtin.file: diff --git a/ansible/roles/oac-tree/vars/main.yml b/ansible/roles/oac_tree/vars/main.yml similarity index 95% rename from ansible/roles/oac-tree/vars/main.yml rename to ansible/roles/oac_tree/vars/main.yml index e1775ed3..41049115 100644 --- a/ansible/roles/oac-tree/vars/main.yml +++ b/ansible/roles/oac_tree/vars/main.yml @@ -1,5 +1,5 @@ --- -# variables for oac-tree +# variables for oac_tree oactree_install_path: "/opt/oac-tree" diff --git a/ansible/vars/os/Debian.yml b/ansible/vars/os/Debian.yml index 85306fbc..62be6bef 100644 --- a/ansible/vars/os/Debian.yml +++ b/ansible/vars/os/Debian.yml @@ -1,7 +1,5 @@ --- distro: - gnome_group: "gnome-core" - gdm_config: "/etc/gdm3/daemon.conf" installer: "apt" openssl_config: "/etc/ssl/openssl.cnf" system_ca_trust_dir: "/usr/local/share/ca-certificates" diff --git a/ansible/vars/os/Fedora.yml b/ansible/vars/os/Fedora.yml index 0a22cd04..b06f41f5 100644 --- a/ansible/vars/os/Fedora.yml +++ b/ansible/vars/os/Fedora.yml @@ -1,8 +1,5 @@ --- distro: - gnome_group: "gnome-desktop" - devel_group: "development-tools" - gdm_config: "/etc/gdm/custom.conf" installer: "dnf" openssl_config: "/etc/crypto-policies/back-ends/opensslcnf.config" system_ca_trust_dir: "/etc/pki/ca-trust/source/anchors" diff --git a/ansible/vars/os/RedHat.yml b/ansible/vars/os/RedHat.yml index a57d061d..b06f41f5 100644 --- a/ansible/vars/os/RedHat.yml +++ b/ansible/vars/os/RedHat.yml @@ -1,8 +1,5 @@ --- distro: - gnome_group: "Workstation" - devel_group: "Development Tools" - gdm_config: "/etc/gdm/custom.conf" installer: "dnf" openssl_config: "/etc/crypto-policies/back-ends/opensslcnf.config" system_ca_trust_dir: "/etc/pki/ca-trust/source/anchors" diff --git a/ansible/vars/os/Ubuntu.yml b/ansible/vars/os/Ubuntu.yml index 21ab5d35..62be6bef 100644 --- a/ansible/vars/os/Ubuntu.yml +++ b/ansible/vars/os/Ubuntu.yml @@ -1,7 +1,5 @@ --- distro: - gnome_group: "gnome-core" - gdm_config: "/etc/gdm3/custom.conf" installer: "apt" openssl_config: "/etc/ssl/openssl.cnf" system_ca_trust_dir: "/usr/local/share/ca-certificates"