middleware_automation.jcliff.jcliff (0.0.23) — module

Manages the configuration of Wildfly / JBoss EAP servers

Authors: Andrew Block (@sabre1041), Romain Pelisse (@rpelisse), Harsha Cherukuri (@hcheruku)

preview | supported by community

This plugin has a corresponding action plugin.

Install collection

Install with ansible-galaxy collection install middleware_automation.jcliff:==0.0.23


Add to requirements.yml

  collections:
    - name: middleware_automation.jcliff
      version: 0.0.23

Description

Wraps the JCliff Java utility tool in order to support fine grained tuning of Wildfly / JBoss EAP server configuration in Ansible.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Configure Wildfly instance
  jcliff:
    wfly_home: "/opt/wildfly"
    subsystems:
      - system_properties:
          - name: jcliff.enabled
            value: 'enabled.plus'
      - datasources:
          - name: ExampleDS2
            use_java_context: 'true'
            jndi_name: java:jboss/datasources/ExampleDS2
            connection_url: "jdbc:h2:mem:test2;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
            driver_name: h2

Inputs

    
state:
    choices:
    - present
    - absent
    default: present
    description:
    - If 'present', configurations will be applied to the Wildfly/JBoss EAP server.
    - If 'absent', configurations will be removed from the Wildfly/JBoss EAP server -
      this is NOT implemented yet!
    type: str

jcliff:
    default: /usr/bin/jcliff
    description:
    - Path to the the Jcliff utility.
    type: str

timeout:
    default: 30000
    description:
    - Set jcliff timeout (how long a jcliff will allow a query to the server to last)
    type: int

rule_file:
    description:
    - Name of the rules file.
    type: str

rules_dir:
    default: /usr/share/jcliff/rules
    description:
    - Directory containing Jcliff rules.
    type: str

wfly_home:
    aliases:
    - jboss_home
    description:
    - Home directory for the Wildfly or JBoss EAP server.
    required: true
    type: str

components:
    aliases:
    - subsystems
    description:
    - Wildfly or JBoss EAP Subsystems or configuration component
    elements: dict
    suboptions:
      datasources:
        description:
        - Datasource configurations.
        elements: dict
        suboptions:
          check_valid_connection_sql:
            default: undefined
            description:
            - Datasource SQL query for checking a valid connection.
            type: str
          connection_url:
            description:
            - Connection URL.
            required: true
            type: str
          driver_name:
            description:
            - Name of the driver.
            required: true
            type: str
          enabled:
            default: 'true'
            description:
            - Whether the datasource is enabled.
            type: str
          idle_timeout_minutes:
            default: undefined
            description:
            - Datasource idle timeout minutes.
            type: str
          jndi_name:
            description:
            - JNDI name.
            required: true
            type: str
          max_pool_size:
            default: undefined
            description:
            - Datasource maximum pool size.
            type: str
          min_pool_size:
            default: undefined
            description:
            - Datasource minimum pool size.
            type: str
          name:
            description:
            - Datasource name.
            required: true
            type: str
          password:
            description:
            - Datasource password.
            type: str
          pool_name:
            description:
            - Name of the datasource pool.
            type: str
          query_timeout:
            default: undefined
            description:
            - Datasource query timeout.
            type: str
          use_java_context:
            default: 'true'
            description:
            - Use the Java context.
            type: str
          user_name:
            description:
            - Datasource user name.
            type: str
          validate_on_match:
            default: undefined
            description:
            - Datasource validate on match.
            type: str
        type: list
      deployments:
        description:
        - Deployments.
        elements: dict
        suboptions:
          disabled:
            description:
            - Adds to the repository in a disabled state.
            required: false
            type: bool
          name:
            description:
            - Name of the deployment.
            required: true
            type: str
          path:
            description:
            - Path to the deployment.
            required: true
            type: str
          replace_name_regex:
            description:
            - Regex pattern to replace the deployment if the value matches the name.
            required: false
            type: str
          replace_runtime_name_regex:
            description:
            - Regex pattern to replace the deployment if the value matches the runtime
              name.
            required: false
            type: str
          runtime_name:
            description:
            - Runtime of the deployment.
            required: false
            type: str
          unmanaged:
            description:
            - Specifies whether the deployment should be managed.
            required: false
            type: bool
        type: list
      drivers:
        description:
        - JDBC driver configurations.
        elements: dict
        suboptions:
          driver_class_name:
            default: undefined
            description:
            - Driver class name.
            type: str
          driver_datasource_class_name:
            default: undefined
            description:
            - Class name for the datasource.
            type: str
          driver_module_name:
            description:
            - Name of the driver module.
            required: true
            type: str
          driver_name:
            description:
            - Name of the driver.
            required: true
            type: str
          driver_xa_datasource_class_name:
            default: undefined
            description:
            - Class name for the XA datasource.
            type: str
          module_slot:
            default: undefined
            description:
            - Name of the module slot.
            type: str
        type: list
      interfaces:
        description:
        - Interface.
        elements: dict
        suboptions:
          any_address:
            description:
            - Sockets using this interface should be bound to a wildcard address
            required: false
            type: bool
          inet_address:
            description:
            - Whether or not the address matches the given value
            required: false
            type: str
          link_local_address:
            description:
            - Part of the selection criteria for choosing an IP address for this interface
              should be whether or not the address is link-local
            required: false
            type: bool
          loopback:
            description:
            - Part of the selection criteria for choosing an IP address for this interface
              should be whether or not it is a loopback address
            required: false
            type: bool
          loopback_address:
            description:
            - Value indicating that the IP address for this interface should be the given
              value, if a loopback interface exists on the machine
            required: false
            type: str
          multicast:
            description:
            - Whether or not its network interface supports multicast
            required: false
            type: bool
          name:
            description:
            - Name of the interface
            required: true
            type: str
          nic:
            description:
            - Part of the selection criteria for choosing an IP address for this interface
              should be whether its network interface has the given name
            required: false
            type: str
          nic_match:
            description:
            - Whether its network interface has a name that matches the given regular
              expression
            required: false
            type: str
          point_to_point:
            description:
            - Whether or not its network interface is a point-to-point interface
            required: false
            type: bool
          public_address:
            description:
            - Whether or not it is a publicly routable address
            required: false
            type: bool
          resolved_address:
            description:
            - The resolved ip address for this interface
            required: false
            type: str
          site_local_address:
            description:
            - Whether or it is a site-local address
            required: false
            type: bool
          subnet_match:
            description:
            - Whether or it the address fits in the given subnet definition. Value is
              a network IP address and the number of bits in the address
            required: false
            type: str
          up:
            description:
            - Whether its network interface is currently up
            required: false
            type: bool
          virtual:
            description:
            - Whether its network interface is a virtual interface
            required: false
            type: bool
        type: list
      keycloak:
        description:
        - Keycloak.
        elements: dict
        suboptions:
          secure_deployment:
            description:
            - List of applications to secure using Keycloak.
            elements: dict
            suboptions:
              auth_server_url:
                description:
                - Base URL of the Keycloak server.
                required: true
                type: str
              credential:
                description:
                - The secure value for the application. If not provided, it is setup as
                  a public client.
                type: str
              deployment_name:
                description:
                - Name of the deployment.
                required: true
                type: str
              disable_trust_manager:
                description:
                - Should only be used during development and NEVER in production as it
                  will disable verification of SSL certificates. Default false.
                type: bool
              realm:
                description:
                - Name of the Keycloak realm.
                type: str
              resource:
                description:
                - The client-id of the application.
                required: true
                type: str
              ssl_required:
                description:
                - Ensures that communication to and from the Keycloak server is over HTTPS.
                  Default external. Possible values all external none.
                type: str
              use_resource_role_mappings:
                description:
                - Whether the adapter will look inside the token for application level
                  role mappings for the user. The default value is false.
                type: bool
              verify_token_audience:
                description:
                - Whether the adapter will verify whether the token contains this client
                  name (resource) as an audience. Default is false.
                type: bool
            type: list
        type: list
      logging:
        description:
        - logger.
        elements: dict
        suboptions:
          level:
            description:
            - Replace level with log level that is to be set
            required: false
            type: str
          name:
            description:
            - Replace name with name of the log category
            required: true
            type: str
        type: list
      mail:
        description:
        - mail.
        elements: dict
        suboptions:
          from_email:
            description:
            - Replace from_email with email id.
            required: true
            type: str
          jndi_name:
            description:
            - Set jndi_name, for ex. java:jboss/mail/testSession
            required: true
            type: str
          name:
            description:
            - Replace name with subject.
            required: true
            type: str
          outbound_socket_binding_ref:
            description:
            - Set outbound_socket_binding_ref, for ex. mail-smtp
            required: true
            type: str
          ssl:
            description:
            - Set ssl
            required: false
            type: bool
        type: list
      messaging_activemq:
        description:
        - Create messaging activemq.
        suboptions:
          address_setting:
            description:
            - Configure address setting
            elements: dict
            suboptions:
              dead_letter_address:
                description:
                - Sets the dead-letter-address.
                required: false
                type: str
              expiry_address:
                description:
                - Sets the expiry-address.
                required: false
                type: str
              max_delivery_attempts:
                description:
                - Sets max number of delivery attempts.
                required: false
                type: int
              name:
                description:
                - Enter the details of address setting.
                required: true
                type: str
              redelivery_delay:
                description:
                - Sets the redelivery-delay.
                required: false
                type: int
            type: list
          bridge:
            description:
            - Configure bridge
            elements: dict
            suboptions:
              discovery_group:
                description:
                - discovery group
                required: true
                type: str
              name:
                description:
                - Logical name of the bridge
                required: true
                type: str
              queue_name:
                description:
                - queue name
                required: true
                type: str
              static_connectors:
                description:
                - static connectors
                required: true
                type: str
            type: list
          connection_factory:
            description:
            - Configure connection factory.
            elements: dict
            suboptions:
              connectors:
                description:
                - Legacy entries
                elements: str
                required: false
                type: list
              discovery_group:
                description:
                - discovery group
                required: false
                type: str
              entries:
                description:
                - Enter the required entries
                elements: str
                required: true
                type: list
              name:
                description:
                - Logical name of the connection factory
                required: true
                type: str
            type: list
          connector:
            description:
            - Configure connector.
            elements: dict
            suboptions:
              factory_class:
                description:
                - factory class
                required: true
                type: str
              name:
                description:
                - Logical name of the connector.
                required: true
                type: str
            type: list
          in_vm_acceptor:
            description:
            - Configure in vm acceptor
            elements: dict
            suboptions:
              name:
                description:
                - Enter the details of in vm acceptor.
                required: true
                type: str
              server_id:
                description:
                - Enter the details of server id.
                required: true
                type: str
            type: list
          jms_queue:
            description:
            - Create JMS queue
            elements: dict
            suboptions:
              durable:
                description:
                - Enter if it is durable or not.
                required: false
                type: str
              entries:
                description:
                - Enter the required entries.
                elements: str
                required: true
                type: list
              headers:
                description:
                - headers
                required: false
                type: str
              legacy_entries:
                description:
                - Legacy entries
                required: false
                type: str
              name:
                description:
                - Logical name of the jms queue
                required: true
                type: str
              selector:
                description:
                - seclecor
                required: false
                type: str
            type: list
          jms_topic:
            description:
            - Configure jms topic.
            elements: dict
            suboptions:
              entries:
                description:
                - Enter the required entries.
                elements: str
                required: true
                type: list
              headers:
                description:
                - headers
                required: false
                type: str
              legacy_entries:
                description:
                - Legacy entries
                required: false
                type: str
              name:
                description:
                - Logical name of the jms topic.
                required: true
                type: str
            type: list
          pooled_connection_factory:
            description:
            - Configure pooled connection factory
            elements: dict
            suboptions:
              connector:
                description:
                - Enter the details of connector.
                required: true
                type: str
              discovery:
                description:
                - Enter the details of discovery.
                required: false
                type: str
              entries:
                description:
                - Enter entries.
                elements: str
                required: true
                type: list
              name:
                description:
                - Enter the details of pooled connection factory.
                required: true
                type: str
            type: list
          remote_acceptor:
            description:
            - Configure remote acceptor
            elements: dict
            suboptions:
              name:
                description:
                - Enter the details of remote acceptor.
                required: true
                type: str
            type: list
          remote_connector:
            description:
            - Configure remote connector
            elements: dict
            suboptions:
              name:
                description:
                - Enter the details of remote acceptor.
                required: true
                type: str
              socket_binding:
                description:
                - Enter the details of socket binding.
                required: true
                type: str
            type: list
          security_setting:
            description:
            - Configure security setting
            elements: dict
            suboptions:
              consume:
                description:
                - Consume
                required: false
                type: str
              create_durable_queue:
                description:
                - create_durable_queue
                required: false
                type: str
              create_non_durable_queue:
                description:
                - create_non_durable_queue
                required: false
                type: str
              delete_durable_queue:
                description:
                - delete_durable_queue
                required: false
                type: str
              delete_non_durable_queue:
                description:
                - delete_non_durable_queue
                required: false
                type: str
              manage:
                description:
                - manage
                required: false
                type: str
              name:
                description:
                - Logical name of the bridge
                required: true
                type: str
              send:
                description:
                - enter details to send
                required: true
                type: str
            type: list
          server_property:
            description:
            - Creates and sets messaging-activemq server properties.
            elements: dict
            suboptions:
              name:
                description:
                - Name of property.
                required: true
                type: str
              value:
                description:
                - Value of property.
                required: true
                type: str
            type: list
        type: dict
      modcluster:
        description:
        - Manage Modcluster.
        suboptions:
          proxy:
            description:
            - Modcluster proxy.
            elements: dict
            suboptions:
              advertise:
                description:
                - Whether to enable multicast-based advertise mechanism.
                required: false
                type: bool
              advertise_security_key:
                description:
                - If specified, reverse proxy advertisements checksums will be verified
                  using this value as a salt.
                required: false
                type: str
              advertise_socket:
                description:
                - Name of socket binding to use for the advertise socket.
                required: false
                type: str
              auto_enable_contexts:
                description:
                - If false, the contexts are registered with the reverse proxy as disabled.
                required: false
                type: bool
              balancer:
                description:
                - The name of the balancer on the reverse proxy to register with.
                required: false
                type: str
              excluded_contexts:
                description:
                - List of contexts to exclude from registration with the reverse proxies.
                required: false
                type: str
              flush_packets:
                description:
                - Whether to enable packet flushing on the reverse proxy.
                required: false
                type: bool
              flush_wait:
                description:
                - Time to wait before flushing packets on the reverse proxy.
                required: false
                type: int
              listener:
                description:
                - The name of Undertow listener that will be registered with the reverse
                  proxy.
                required: false
                type: str
              load_balancing_group:
                description:
                - Name of the load balancing group this node belongs to.
                required: false
                type: str
              max_attempts:
                description:
                - Maximum number of failover attempts by reverse proxy when sending the
                  request to the backend server.
                required: false
                type: int
              name:
                description:
                - Logical name of the modcluster proxy.
                required: true
                type: str
              node_timeout:
                description:
                - Timeout (in seconds) for proxy connections to a node. Time mod_cluster
                  will wait for the back-end response before returning an error.
                required: false
                type: int
              ping:
                description:
                - Number of seconds for which to wait for a pong answer to a ping.
                required: false
                type: int
              proxies:
                description:
                - List of reverse proxies for mod_cluster to register with defined by
                  'outbound-socket-binding' in 'socket-binding-group'.
                elements: str
                required: false
                type: list
              proxy_list:
                description:
                - List of reverse proxies to register with. Format (hostname:port) separated
                  with commas.
                required: false
                type: str
              proxy_url:
                description:
                - Base URL for MCMP requests.
                required: false
                type: str
              session_draining_strategy:
                description:
                - Session draining strategy used during undeployment of a web application.
                required: false
                type: str
              simple_load_provider:
                description:
                - Simple load provider returns constant pre-configured load balancing
                  factor.
                required: false
                type: int
              smax:
                description:
                - Soft maximum idle connection count for reverse proxy.
                required: false
                type: int
              socket_timeout:
                description:
                - Timeout to wait for the reverse proxy to answer a MCMP message.
                required: false
                type: int
              ssl_context:
                description:
                - Reference to the SSLContext to be used by mod_cluster.
                required: false
                type: str
              status_interval:
                description:
                - Number of seconds a STATUS message is sent from the application server
                  to the proxy.
                required: false
                type: int
              sticky_session:
                description:
                - Indicates whether subsequent requests for a given session should be
                  routed to the same node, if possible.
                required: false
                type: bool
              sticky_session_force:
                description:
                - Whether the reverse proxy should run an error in the event that the
                  balancer is unable to route a request to the node to which it is stuck.
                required: false
                type: bool
              sticky_session_remove:
                description:
                - Whether the reverse proxy should remove session stickiness when the
                  balancer is unable to route a request to the node to which it is stuck.
                required: false
                type: bool
              stop_context_timeout:
                description:
                - Maximum time to wait for context to process pending requests.
                required: false
                type: int
              ttl:
                description:
                - Time to live (in seconds) for idle connections above smax.
                required: false
                type: int
              worker_timeout:
                description:
                - Number of seconds to wait for a worker to become available to handle
                  a request.
                required: false
                type: int
            type: list
        type: dict
      scanner:
        description:
        - The deployment scanner is only used in standalone mode.
        - It can be found in standalone.xml.
        elements: dict
        suboptions:
          name:
            description:
            - The name of the scanner.
            - It can be path, relative-to, scan-enabled, scan-interval, auto-deploy-zipped,
              auto-deploy-exploded, auto-deploy-xml, deployment-timeout
            required: false
            type: str
          value:
            description:
            - enter the respective value, corresponding to name. https://docs.jboss.org/infinispan/9.4/serverconfigdocs/jboss-as-deployment-scanner_2_0.html
            required: false
            type: str
        type: list
      standard_sockets:
        description:
        - Create Socket bindings.
        suboptions:
          remote_destination_outbound_socket_binding:
            description:
            - Remote destination outbound socket binding.
            elements: dict
            suboptions:
              fixed_source_port:
                description:
                - Whether the port value should remain fixed even if numeric offsets are
                  applied to the other outbound sockets in the socket group.
                required: false
                type: bool
              host:
                description:
                - The host name or the IP address of the remote destination to which this
                  outbound socket will connect.
                required: true
                type: str
              name:
                description:
                - Logical name of the remote destination outbound socket configuration
                  that should be used elsewhere in the configuration.
                required: true
                type: str
              port:
                description:
                - The port number of the remote destination to which the outbound socket
                  should connect.
                required: true
                type: int
              source_interface:
                description:
                - The name of the interface which will be used for the source address
                  of the outbound socket.
                required: false
                type: str
              source_port:
                description:
                - The port number which will be used as the source port of the outbound
                  socket.
                required: false
                type: int
            type: list
          socket_binding:
            description:
            - Socket bindings.
            elements: dict
            suboptions:
              interface:
                description:
                - Logical name of the interface to which a socket based on this configuration
                  should be bound.
                required: false
                type: str
              multicast_address:
                description:
                - If the socket will be used for multicast, the multicast address to use.
                required: false
                type: str
              multicast_port:
                description:
                - If the socket will be used for multicast, the multicast port to use.
                required: false
                type: str
              name:
                description:
                - Logical name of the socket configuration that should be used elsewhere
                  in the configuration.
                required: true
                type: str
              port:
                description:
                - Base port to which a socket based on this configuration should be bound.
                required: true
                type: str
            type: list
        type: dict
      system_properties:
        description:
        - System properties.
        elements: dict
        suboptions:
          name:
            description:
            - System property name.
            type: str
          value:
            description:
            - System property value.
            type: str
        type: list
      transactions:
        description:
        - Setting node-identifier
        elements: dict
        suboptions:
          name:
            description:
            - Node-identifier
            required: true
            type: str
          value:
            description:
            - enter the respective value, corresponding to name.
            required: true
            type: str
        type: list
      xadatasources:
        description:
        - XA Datasource configurations.
        elements: dict
        suboptions:
          background_validation:
            description:
            - Specifies that connections are validated on a background thread,
            - rather than being validated prior to use.
            - Mutually exclusive to validate-on-match.
            type: bool
          background_validation_millis:
            description:
            - The background-validation-millis element specifies the amount of
            - time, in milliseconds, that background validation will run.
            - Changing this value require a server restart.
            type: int
          check_valid_connection_sql:
            default: undefined
            description:
            - Datasource SQL query for checking a valid connection.
            type: str
          driver_name:
            description:
            - Name of the driver.
            required: true
            type: str
          enabled:
            default: 'true'
            description:
            - Whether the datasource is enabled.
            type: str
          exception_sorter_class_name:
            default: undefined
            description:
            - Which exception sorter class should be used.
            type: str
          jndi_name:
            description:
            - JNDI name.
            required: true
            type: str
          name:
            description:
            - Datasource name.
            required: true
            type: str
          no_recovery:
            description:
            - Should datasource attempt recovery.
            type: bool
          password:
            description:
            - Datasource password.
            type: str
          pool_name:
            description:
            - Name of the datasource pool.
            type: str
          same_rm_override:
            description:
            - The same-rm-override element allows one to unconditionally set
            - whether the javax.transaction.xa.XAResource.isSameRM(XAResource)
            - returns true or false.
            type: bool
          use_java_context:
            default: 'true'
            description:
            - Use the Java context.
            type: str
          user_name:
            description:
            - Datasource user name.
            type: str
          valid_connection_checker_class_name:
            default: undefined
            description:
            - An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that
            - provides a SQLException isValidConnection(Connection e) method
            - to validate is a connection is valid.
            type: str
          validate_on_match:
            default: undefined
            description:
            - The validate-on-match element indicates whether or not
            - connection level validation should be done when a connection
            - factory attempts to match a managed connection for a given set.
            type: str
          xa_datasource_properties:
            description:
            - Properties for XA datasource
            required: true
            suboptions:
              url:
                description:
                - url for this datasource
                required: true
                type: str
            type: dict
        type: list
    type: list

debug_mode:
    default: false
    description:
    - Debug output.
    type: bool

jcliff_jvm:
    description:
    - Location of the Java JVM.
    type: str

jcliff_home:
    default: /usr/share/jcliff
    description:
    - Home directory for the Jcliff utility.
    type: str

management_host:
    default: localhost
    description:
    - Management host.
    type: str

management_port:
    default: '9990'
    description:
    - Management port.
    type: str

reconnect_delay:
    default: 30000
    description:
    - Set jcliff reconnect delay
    type: int

remote_rulesdir:
    description:
    - Location of the rules directory on the remote instance.
    type: str

management_password:
    description:
    - Management password.
    type: str

management_username:
    description:
    - Management username.
    type: str