diff --git a/.ansible-lint b/.ansible-lint index 22a568c..1af045b 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,3 +1,7 @@ +--- profile: basic exclude_paths: - .github/ + - roles/phoebus_services_aa/templates/NSLS2logo.png +warn_list: + - var-naming[no-role-prefix] diff --git a/roles/phoebus_services_aa/tasks/dependencies.yml b/roles/phoebus_services_aa/tasks/dependencies.yml index addd8fa..d74c0d9 100644 --- a/roles/phoebus_services_aa/tasks/dependencies.yml +++ b/roles/phoebus_services_aa/tasks/dependencies.yml @@ -31,16 +31,16 @@ - tomcat-native state: present -- name: ensure aa_depndecies directory exists +- name: Ensure AA dependencies directory exists file: path: "{{ aa_dependencies_loc }}" state: directory owner: "{{ epics_services_account }}" group: "{{ epics_services_account }}" - + - name: Download mysql-connector get_url: url: https://cdn.mysql.com/archives/mysql-connector-java-5.1/mysql-connector-java-5.1.34.tar.gz dest: "{{ aa_dependencies_loc }}/mysql-connector-java-5.1.34.tar.gz" owner: "{{ epics_services_account }}" - group: "{{ epics_services_account }}" \ No newline at end of file + group: "{{ epics_services_account }}" diff --git a/roles/phoebus_services_aa/tasks/install_aa.yml b/roles/phoebus_services_aa/tasks/install_aa.yml index 6b5d229..c23eb9d 100644 --- a/roles/phoebus_services_aa/tasks/install_aa.yml +++ b/roles/phoebus_services_aa/tasks/install_aa.yml @@ -52,30 +52,30 @@ group: "{{ epics_services_account }}" # Setup the single installation script -- name: setup single installation script +- name: Setup single installation script become: true template: src: single_machine_install.sh dest: "{{ aa_install_location }}/install_scripts/" owner: "{{ epics_services_account }}" group: "{{ epics_services_account }}" - -- name: setup mysql config script + +- name: Setup MySQL config script become: true template: src: addMysqlConnPool.py dest: "{{ aa_install_location }}/install_scripts/" owner: "{{ epics_services_account }}" group: "{{ epics_services_account }}" - -- name: setup tomcat installation script + +- name: Setup Tomcat installation script template: src: deployMultipleTomcats.py dest: "{{ aa_install_location }}/install_scripts/" owner: "{{ epics_services_account }}" group: "{{ epics_services_account }}" -- name: setup conf files for installation +- name: Setup configuration files for installation become: true template: src: policies.py @@ -125,7 +125,7 @@ TRUSTED_PROXIES: "{{ aa_trusted_proxies | map('regex_replace', '\\.', '\\\\.') | join('|') }}" changed_when: true -- name: setup conf files for installation +- name: Setup configuration files for installation become: true template: src: facility_template_changes.html @@ -158,7 +158,7 @@ replace: "jdbc:mysql://{{ aa_mysql_server }}:3306" # Setup the startup/shutdown scripts for each instance -- name: "Setup startup script for {{ item.name }} instance" +- name: "Setup startup script for instance {{ item.name }}" template: src: instance_startup.sh.j2 dest: "{{ aa_deploy_location }}/{{ aa_script_prefix }}_{{ item.name }}_startup.sh" @@ -166,10 +166,10 @@ owner: "{{ epics_services_account }}" group: "{{ epics_services_account }}" loop: - - { name: 'mgmt', java_opts: '{{ aa_java_opts_mgmt }}' } - - { name: 'engine', java_opts: '{{ aa_java_opts_engine }}' } - - { name: 'etl', java_opts: '{{ aa_java_opts_etl }}' } - - { name: 'retrieval', java_opts: '{{ aa_java_opts_retrieval }}' } + - {name: 'mgmt', java_opts: '{{ aa_java_opts_mgmt }}'} + - {name: 'engine', java_opts: '{{ aa_java_opts_engine }}'} + - {name: 'etl', java_opts: '{{ aa_java_opts_etl }}'} + - {name: 'retrieval', java_opts: '{{ aa_java_opts_retrieval }}'} vars: aa_instance_name: "{{ item.name }}" aa_java_opts: "{{ item.java_opts }}" diff --git a/roles/phoebus_services_aa/tasks/main.yml b/roles/phoebus_services_aa/tasks/main.yml index 8a16cf3..203b886 100644 --- a/roles/phoebus_services_aa/tasks/main.yml +++ b/roles/phoebus_services_aa/tasks/main.yml @@ -2,16 +2,21 @@ # tasks file for phoebus_services_aa # download build and install dependencies -- ansible.builtin.include_tasks: dependencies.yml -- ansible.builtin.include_tasks: configure_mysql.yml +- name: Install dependencies + ansible.builtin.include_tasks: dependencies.yml +- name: Configure MySQL + ansible.builtin.include_tasks: configure_mysql.yml # configure SSL certificates if enabled -- ansible.builtin.include_tasks: configure_ssl.yml - when: aa_enable_ssl | bool +- name: Configure SSL certificates + ansible.builtin.include_tasks: configure_ssl.yml + when: aa_enable_ssl | bool # build aa # TODO: replace with the use of prebuilt binaries -- ansible.builtin.include_tasks: build_aa.yml +- name: Build Archiver Appliance + ansible.builtin.include_tasks: build_aa.yml # install and deploy aa -- ansible.builtin.include_tasks: install_aa.yml +- name: Install Archiver Appliance + ansible.builtin.include_tasks: install_aa.yml diff --git a/roles/phoebus_services_kafka/defaults/main.yml b/roles/phoebus_services_kafka/defaults/main.yml index a43795b..63cbac8 100644 --- a/roles/phoebus_services_kafka/defaults/main.yml +++ b/roles/phoebus_services_kafka/defaults/main.yml @@ -17,7 +17,7 @@ phoebus_services_kafka_controller_port: 9093 phoebus_services_kafka_node_id: 1 # Example: ["1@10.0.1.11:9093", "2@10.0.1.12:9093", "3@10.0.1.13:9093"] phoebus_services_kafka_controller_quorum_voters: - - "1@localhost:9093" + - "1@localhost:9093" phoebus_services_kafka_cluster_id: "" phoebus_services_kafka_logs_path: "{{ phoebus_services_kafka_logs_dir }}/kafka-logs" diff --git a/roles/phoebus_services_recceiver/defaults/main.yml b/roles/phoebus_services_recceiver/defaults/main.yml index d128eaf..8a1125a 100644 --- a/roles/phoebus_services_recceiver/defaults/main.yml +++ b/roles/phoebus_services_recceiver/defaults/main.yml @@ -1,22 +1,22 @@ ---- -phoebus_services_recceiver_root: /opt/epics-tools/services/recceiver -phoebus_services_recceiver_account: csstudio - -phoebus_services_recceiver_repo_url: https://github.com/ChannelFinder/recceiver.git -phoebus_services_recceiver_repo_dest: "{{ phoebus_services_recceiver_root }}/source" -phoebus_services_recceiver_service_name: phoebus_services_recceiver -phoebus_services_recceiver_jar_name: recceiver.jar -phoebus_services_recceiver_jar: "{{ phoebus_services_recceiver_root }}/{{ phoebus_services_recceiver_jar_name }}" - -phoebus_services_recceiver_java_home: /opt/epics-tools/lib/jvm/jdk-21 -phoebus_services_recceiver_mvn_home: /opt/epics-tools/lib/apache-maven-3.9.9 - -phoebus_services_recceiver_bind_address: 0.0.0.0 -phoebus_services_recceiver_tcp_port: 5064 -phoebus_services_recceiver_procserv_port: 5065 -phoebus_services_recceiver_udp_broadcast_address: 255.255.255.255 -phoebus_services_recceiver_udp_broadcast_port: 5049 -phoebus_services_recceiver_announce_interval: 15.0 -phoebus_services_recceiver_tcp_timeout: 15.0 -phoebus_services_recceiver_read_buffer_size: 4096 -phoebus_services_recceiver_cf_service_url: http://localhost:9090/ChannelFinder +--- +phoebus_services_recceiver_root: /opt/epics-tools/services/recceiver +phoebus_services_recceiver_account: csstudio + +phoebus_services_recceiver_repo_url: https://github.com/ChannelFinder/recceiver.git +phoebus_services_recceiver_repo_dest: "{{ phoebus_services_recceiver_root }}/source" +phoebus_services_recceiver_service_name: phoebus_services_recceiver +phoebus_services_recceiver_jar_name: recceiver.jar +phoebus_services_recceiver_jar: "{{ phoebus_services_recceiver_root }}/{{ phoebus_services_recceiver_jar_name }}" + +phoebus_services_recceiver_java_home: /opt/epics-tools/lib/jvm/jdk-21 +phoebus_services_recceiver_mvn_home: /opt/epics-tools/lib/apache-maven-3.9.9 + +phoebus_services_recceiver_bind_address: 0.0.0.0 +phoebus_services_recceiver_tcp_port: 5064 +phoebus_services_recceiver_procserv_port: 5065 +phoebus_services_recceiver_udp_broadcast_address: 255.255.255.255 +phoebus_services_recceiver_udp_broadcast_port: 5049 +phoebus_services_recceiver_announce_interval: 15.0 +phoebus_services_recceiver_tcp_timeout: 15.0 +phoebus_services_recceiver_read_buffer_size: 4096 +phoebus_services_recceiver_cf_service_url: http://localhost:9090/ChannelFinder diff --git a/roles/phoebus_services_recceiver/meta/main.yml b/roles/phoebus_services_recceiver/meta/main.yml index d9692ab..33f46bc 100644 --- a/roles/phoebus_services_recceiver/meta/main.yml +++ b/roles/phoebus_services_recceiver/meta/main.yml @@ -1,4 +1,4 @@ ---- -allow_duplicates: true -dependencies: - - role: phoebus_dependencies +--- +allow_duplicates: true +dependencies: + - role: phoebus_dependencies diff --git a/roles/phoebus_services_recceiver/tasks/main.yml b/roles/phoebus_services_recceiver/tasks/main.yml index 1b293b4..50b9809 100644 --- a/roles/phoebus_services_recceiver/tasks/main.yml +++ b/roles/phoebus_services_recceiver/tasks/main.yml @@ -1,84 +1,84 @@ ---- -- name: Ensure Recceiver service directory exists - become: true - ansible.builtin.file: - path: "{{ phoebus_services_recceiver_root }}" - state: directory - mode: "u=rwx,g=rx,o=rx" - owner: "{{ phoebus_services_recceiver_account }}" - group: "{{ phoebus_services_recceiver_account }}" - -- name: Clone ChannelFinder Recceiver source - become: true - become_user: "{{ phoebus_services_recceiver_account }}" - ansible.builtin.git: - repo: "{{ phoebus_services_recceiver_repo_url }}" - dest: "{{ phoebus_services_recceiver_repo_dest }}" - force: true - update: true - -- name: Package Recceiver with Maven - become: true - become_user: "{{ phoebus_services_recceiver_account }}" - ansible.builtin.command: mvn -DskipTests package - args: - chdir: "{{ phoebus_services_recceiver_repo_dest }}" - environment: - JAVA_HOME: "{{ phoebus_services_recceiver_java_home }}" - PATH: "{{ phoebus_services_recceiver_java_home }}/bin:{{ phoebus_services_recceiver_mvn_home }}/bin:{{ ansible_env.PATH }}" - changed_when: true - -- name: Find built Recceiver jar - become: true - ansible.builtin.find: - paths: "{{ phoebus_services_recceiver_repo_dest }}/target" - patterns: "recceiver-*.jar" - recurse: false - register: phoebus_services_recceiver_jar_file - -- name: Fail if no Recceiver jar was built - ansible.builtin.fail: - msg: "No Recceiver jar found in {{ phoebus_services_recceiver_repo_dest }}/target after Maven build." - when: phoebus_services_recceiver_jar_file.matched == 0 - -- name: Copy Recceiver jar to service directory - become: true - ansible.builtin.copy: - src: "{{ phoebus_services_recceiver_jar_file.files[0].path }}" - dest: "{{ phoebus_services_recceiver_jar }}" - owner: "{{ phoebus_services_recceiver_account }}" - group: "{{ phoebus_services_recceiver_account }}" - mode: "u=rwx,g=rx,o=rx" - remote_src: true - -- name: Create application.properties for Recceiver - become: true - ansible.builtin.template: - src: application.properties.j2 - dest: "{{ phoebus_services_recceiver_root }}/application.properties" - owner: "{{ phoebus_services_recceiver_account }}" - group: "{{ phoebus_services_recceiver_account }}" - mode: "u=rw,g=r,o=r" - -- name: Install procServ package - become: true - ansible.builtin.package: - name: procServ - state: present - -- name: Create systemd service file for Recceiver - become: true - ansible.builtin.template: - src: recceiver.service.j2 - dest: "/etc/systemd/system/{{ phoebus_services_recceiver_service_name }}.service" - owner: root - group: root - mode: "u=rw,g=r,o=r" - -- name: Restart Recceiver service - become: true - ansible.builtin.systemd: - name: "{{ phoebus_services_recceiver_service_name }}" - state: restarted - daemon_reload: true - enabled: true +--- +- name: Ensure Recceiver service directory exists + become: true + ansible.builtin.file: + path: "{{ phoebus_services_recceiver_root }}" + state: directory + mode: "u=rwx,g=rx,o=rx" + owner: "{{ phoebus_services_recceiver_account }}" + group: "{{ phoebus_services_recceiver_account }}" + +- name: Clone ChannelFinder Recceiver source + become: true + become_user: "{{ phoebus_services_recceiver_account }}" + ansible.builtin.git: + repo: "{{ phoebus_services_recceiver_repo_url }}" + dest: "{{ phoebus_services_recceiver_repo_dest }}" + force: true + update: true + +- name: Package Recceiver with Maven + become: true + become_user: "{{ phoebus_services_recceiver_account }}" + ansible.builtin.command: mvn -DskipTests package + args: + chdir: "{{ phoebus_services_recceiver_repo_dest }}" + environment: + JAVA_HOME: "{{ phoebus_services_recceiver_java_home }}" + PATH: "{{ phoebus_services_recceiver_java_home }}/bin:{{ phoebus_services_recceiver_mvn_home }}/bin:{{ ansible_env.PATH }}" + changed_when: true + +- name: Find built Recceiver jar + become: true + ansible.builtin.find: + paths: "{{ phoebus_services_recceiver_repo_dest }}/target" + patterns: "recceiver-*.jar" + recurse: false + register: phoebus_services_recceiver_jar_file + +- name: Fail if no Recceiver jar was built + ansible.builtin.fail: + msg: "No Recceiver jar found in {{ phoebus_services_recceiver_repo_dest }}/target after Maven build." + when: phoebus_services_recceiver_jar_file.matched == 0 + +- name: Copy Recceiver jar to service directory + become: true + ansible.builtin.copy: + src: "{{ phoebus_services_recceiver_jar_file.files[0].path }}" + dest: "{{ phoebus_services_recceiver_jar }}" + owner: "{{ phoebus_services_recceiver_account }}" + group: "{{ phoebus_services_recceiver_account }}" + mode: "u=rwx,g=rx,o=rx" + remote_src: true + +- name: Create application.properties for Recceiver + become: true + ansible.builtin.template: + src: application.properties.j2 + dest: "{{ phoebus_services_recceiver_root }}/application.properties" + owner: "{{ phoebus_services_recceiver_account }}" + group: "{{ phoebus_services_recceiver_account }}" + mode: "u=rw,g=r,o=r" + +- name: Install procServ package + become: true + ansible.builtin.package: + name: procServ + state: present + +- name: Create systemd service file for Recceiver + become: true + ansible.builtin.template: + src: recceiver.service.j2 + dest: "/etc/systemd/system/{{ phoebus_services_recceiver_service_name }}.service" + owner: root + group: root + mode: "u=rw,g=r,o=r" + +- name: Restart Recceiver service + become: true + ansible.builtin.systemd: + name: "{{ phoebus_services_recceiver_service_name }}" + state: restarted + daemon_reload: true + enabled: true diff --git a/roles/phoebus_services_tomcat/handlers/main.yml b/roles/phoebus_services_tomcat/handlers/main.yml index 4a2fdb7..cc5c933 100644 --- a/roles/phoebus_services_tomcat/handlers/main.yml +++ b/roles/phoebus_services_tomcat/handlers/main.yml @@ -1,5 +1,5 @@ --- -- name: restart tomcat +- name: Restart Tomcat become: true ansible.builtin.service: name: "{{ phoebus_services_tomcat_service_name }}"