You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed RabbitMQ installation when using custom variables (#67)
* Ansible lint (#46)
* resolved conflicts
* Fix ansible-lint issues
* Resolved conflict
* Os (#45)
* Remove yum_update and remove the task to update the current yum packages
---------
Co-authored-by: $GITHUB_ACTOR <[email protected]>
* Fix ansible lint issues in redis auth role (#48)
* Fix lint issues in redis_auth role
* Fix ansible lint issues in platform_app_artifact role (#49)
* Fix ansible lint issues in python role (#51)
* Fix ansible lint issues in rabbitmq_ssl role (#50)
* Add RabbitMQ custom configuration tasks
* Move rabbitmq cluster role tasks to rabbitmq role
Remove rabbitmq cluster role
Update docs
Fix hard-coded rabbitmq ports in platform role
Move rabbitmq ports to common vars role
Add ability to set rabbitmq disk_free_limit.absolute
* Support non-standard mongo port (#65)
* resolved conflicts
* Adding port var to mongo tasks to support non-standard ports
* Fixed typo
* Resolved code review items
* Fixed redis installation when using custom variables (#66)
* Create redis_varlib.te
This file will add SELinux context to add log, data directories in a different place from the default
* Update main.yml to support redis_data_dir, redis_log_dir, redis_pid_dir, different port
Fix support to:
* redis_data_dir,
* redis_log_dir,
* redis_pid_dir,
* different port
* Remove user,group and data,log directories creation.
Remove user,group and data,log directories creation.
Those items now are created in main.yml tasks
* Fixed pid dir, and announce port
Fixed pid dir, and announce port
* Change the installation source from remi_repo to source
Change the installation source from remi_repo to source
* Added redis_port and sentinel_port variables
Added redis_port and sentinel_port variables
* Fixed the hardcoded redis ports to variable
Fixed the hardcoded redis ports to variable
* Fixed source install
Fixed source install
* Fixed conditions rules for execute directories creation
Fixed conditions rules for execute directories creation
* Optimize the code in announce items
Optimize the code in announce items
* Removed sentinel port, moved for common vars
Removed sentinel port, moved for common vars
* Fixed the hardcoded redis port to a variable
Fixed the hardcoded redis port to a variable
* Fixed hardcoded ports to variable
Fixed hardcoded ports to variable
* Fix sentinel variable name
Fix sentinel variable name
* Fixed trailing spaces
Fixed trailing spaces
* Fix ansible lint issue in redis
* Fix spacing in RabbitMQ guide
---------
Co-authored-by: Steven Schattenberg <[email protected]>
Co-authored-by: Nick-Andreano <[email protected]>
Co-authored-by: $GITHUB_ACTOR <[email protected]>
Co-authored-by: Marcos Dias <[email protected]>
| `iap_bin_file` | `platform` | String | The name of the IAP bin file. | N/A | Yes*
57
57
| `iap_tar_file` | `platform` | String | The name of the IAP tar file. | N/A | Yes*
58
+
| `rabbit_svc_url` | `platform` | String | This variable defines the rabbit service url to use when connecting to an externally provided RabbitMQ cluster. It is intended to be used when the architecture demands that rabbit be hosted elsewhere such as when using AmazonMQ or if the demands of an organization require some other external rabbit solution, like a shared service. | N/A | No
59
+
| `redis_svc_url` | `platform` | String | This variable defines the redis service url to use when connecting to an externally provided redis cluster. It is intended to be used when the architecture demands that redis be hosted elsewhere such as when using Elasticache or if the demands of an organization require some other external redis solution, like a shared service. | N/A | No
60
+
| `mongobdb_svc_url_itential` | `platform` | String | This variable defines the mongodb connection string to use when connecting to the "itential" database. It is intended to be used when the architecture demands that mongo be hosted elsewhere such as when using Mongo Atlas or if the demands of an organization require some other external mongo solution, like a shared service. | N/A | No
61
+
| `mongobdb_svc_url_localaaa` | `platform` | String | This variable defines the mongodb connection string to use when connecting to the "LocalAAA" database. It is intended to be used when the architecture demands that mongo be hosted elsewhere such as when using Mongo Atlas or if the demands of an organization require some other external mongo solution, like a shared service. | N/A | No
58
62
59
63
Either `iap_bin_file` or `iap_tar_file` must be defined in the inventory, but not both.
| `iap_release` | `all` | Fixed-point | Designates the IAP major version. | N/A | Yes
45
45
| `mongo_root_ca_file_source` | `all` | String | The name of the MongoDB Root CA file.| N/A | No
46
-
| `mongobdb_svc_url_itential` | `all` | String | This variable defines the mongodb connection string to use when connecting to the "itential" database. It is intended to be used when the architecture demands that mongo be hosted elsewhere such as when using Mongo Atlas or if the demands of an organization require some other external mongo solution, like a shared service. | N/A | No
47
-
| `mongobdb_svc_url_localaaa` | `all` | String | This variable defines the mongodb connection string to use when connecting to the "LocalAAA" database. It is intended to be used when the architecture demands that mongo be hosted elsewhere such as when using Mongo Atlas or if the demands of an organization require some other external mongo solution, like a shared service. | N/A | No
48
46
49
47
The `iap_release` must be defined in the inventory. This variable, along with the OS major version, is used to determine the static variables.
Copy file name to clipboardExpand all lines: docs/rabbitmq_guide.md
+17-30Lines changed: 17 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,7 @@
2
2
3
3
The playbook and roles in this section install and configure RabbitMQ for the Itential Automation Platform. There are currently three RabbitMQ-related roles:
4
4
5
-
*`rabbitmq` – Installs RabbitMQ and performs a base configuration.
*`rabbitmq` – Installs RabbitMQ, performs a base configuration and configures clustering.
7
6
*`rabbitmq_ssl` – Configures RabbitMQ SSL.
8
7
9
8
**ⓘ Note:**
@@ -15,19 +14,17 @@ This role is used when installing IAP version 2023.1 and older.
15
14
16
15
The `rabbitmq` role performs a base install of RabbitMQ including any OS packages required. It installs the appropriate version Erlang. It creates the appropriate Linux users, directories, log files, and systemd services. It will create the required RabbitMQ users with a default password (see table). It will start the rabbitmq-server service when complete.
17
16
17
+
The `rabbitmq` also role performs the steps to run RabbitMQ as a cluster of nodes. It assumes a cluster of 3 and that the first host defined in the inventory will be used as the primary. It will modify the RabbitMQ config file to enable the cluster. It will write the hostname to each RabbitMQ node’s host file (RabbitMQ clustering requires DNS resolution). It creates the required Erlang cookie used by the RabbitMQ nodes to join a cluster. It invokes each RabbitMQ node to join the cluster. It enables queue mirroring. It will restart the rabbitmq-server service when complete.
18
+
19
+
More info on rabbit cluster: https://www.rabbitmq.com/clustering.html
20
+
18
21
| User Name | Default Password | Description
19
22
| :-------- | :--------------- | :----------
20
23
| admin | admin | The admin user with root permissions in this RabbitMQ install.
21
24
| itential | itential | The itential user used by IAP to connect.
22
25
23
26
:::(Warning) (⚠ Warning: ) It is assumed that these default passwords will be changed to meet more rigorous standards. These are intended to be defaults strictly used just for ease of the installation. It is highly recommended that sensitive data be encrypted using Ansible Vault.
24
27
25
-
## RabbitMQ Cluster
26
-
27
-
The `rabbitmq_cluster` role performs the steps to run RabbitMQ as a cluster of nodes. It assumes a cluster of 3 and that the first host defined in the inventory will be used as the primary. It will modify the RabbitMQ config file to enable the cluster. It will write the hostname to each RabbitMQ node’s host file (RabbitMQ clustering requires DNS resolution). It creates the required Erlang cookie used by the RabbitMQ nodes to join a cluster. It invokes each RabbitMQ node to join the cluster. It enables queue mirroring. It will restart the rabbitmq-server service when complete.
28
-
29
-
More info on rabbit cluster: https://www.rabbitmq.com/clustering.html
30
-
31
28
## RabbitMQ SSL Role
32
29
33
30
The `rabbitmq_ssl` performs the steps to require TLS when communicating with the RabbitMQ server. It uploads the certificates to the correct location. It is NOT responsible for making the certificates. It will make a number of edits to the RabbitMQ config to enable TLS. It will restart the rabbitmq-server service when complete.
@@ -47,7 +44,6 @@ The variables in this section are configured in the inventory in the `all` group
47
44
| Variable | Group | Type | Description | Default Value | Required?
| `iap_release` | `all` | Fixed-point | Designates the IAP major version. | N/A | Yes
50
-
| `rabbit_svc_url` | `all` | String | This variable defines the rabbit service url to use when connecting to an externally provided RabbitMQ cluster. It is intended to be used when the architecture demands that rabbit be hosted elsewhere such as when using AmazonMQ or if the demands of an organization require some other external rabbit solution, like a shared service. | N/A | No
51
47
52
48
The `iap_release` must be defined in the inventory. This variable, along with the OS major version, is used to determine the static variables.
53
49
@@ -59,6 +55,8 @@ The following table lists the default variables that are shared between the Rabb
59
55
60
56
| Variable | Group | Type | Description | Default Value
| `rabbitmq_owner` | `rabbitmq` | String | The RabbitMQ Linux user. | `rabbitmq`
77
76
| `rabbitmq_group` | `rabbitmq` | String | The RabbitMQ Linux group. | `rabbitmq`
78
77
| `rabbitmq_bind_ipv6` | `rabbitmq` | Boolean | Flag to enable binding to IPv6. | `true`
@@ -81,21 +80,16 @@ The following table lists the default variables located in `roles/rabbitmq/defau
81
80
| `rabbitmq_password` | `rabbitmq` | String | The default password for the RabbitMQ user. | `itential`
82
81
| `rabbitmq_admin_user` | `rabbitmq` | String | The admin user with root permissions in this RabbitMQ install. | `admin`
83
82
| `rabbitmq_admin_password` | `rabbitmq` | String | The default password for the admin user. | `admin`
84
-
85
-
:::(Warning) (⚠ Warning: ) It is assumed that these default passwords will be changed to meet more rigorous standards. These are intended to be defaults strictly used just for ease of the installation. It is highly recommended that sensitive data be encrypted using Ansible Vault.
86
-
87
-
## RabbitMQ Cluster Role Variables
88
-
89
-
The variables in this section may be overridden in the inventory in the `rabbmitmq` group vars.
90
-
91
-
The following table lists the default variables located in `roles/rabbitmq_cluster/defaults/main.yml`.
92
-
93
-
| Variable | Group | Type | Description | Default Value
| `rabbitmq_epmd_port` | `rabbitmq` | Integer | The default RabbitMQ Erlang Port Mapping Daemon listen port. | `4369`
87
+
| `rabbitmq_distribution_buffer_size` | `rabbitmq` | Integer | Inter-node connections use a buffer for data pending to be sent. | N/A
88
+
| `rabbit_max_msg_size` | `rabbitmq` | Integer | The largest allowed message payload size in bytes. | N/A
89
+
| `rabbit_total_mem_available_override` | `rabbitmq` | Integer | Makes it possible to override the total amount of memory availabl in bytes, as opposed to inferring it from the environment using OS-specific means. | N/A
90
+
| `disk_free_limit_absolute` | `rabbitmq` | Integer | Disk free limit in bytes. | N/A
91
+
92
+
:::(Warning) (⚠ Warning: ) It is assumed that these default passwords will be changed to meet more rigorous standards. These are intended to be defaults strictly used just for ease of the installation. It is highly recommended that sensitive data be encrypted using Ansible Vault.
You can also run select RabbitMQ roles by using the following tags:
195
189
196
190
*`rabbitmq_install`
197
-
*`rabbitmq_cluster`
198
191
*`rabbitmq_ssl`
199
192
200
193
To execute only the `rabbitmq` role (skipping the RabbitMQ Cluster and RabbitMQ SSL roles), run the `itential.deployer.rabbitmq` playbook with the `rabbitmq_install` tag:
@@ -203,12 +196,6 @@ To execute only the `rabbitmq` role (skipping the RabbitMQ Cluster and RabbitMQ
To execute only the RabbitMQ Cluster role (skipping the RabbitMQ and RabbitMQ SSL roles), run the `itential.deployer.rabbitmq` playbook with the `rabbitmq_cluster` tag:
To execute only the RabbitMQ SSL role (skipping the RabbitMQ and RabbitMQ Cluster roles), run the `itential.deployer.rabbitmq` playbook with the `rabbitmq_ssl` tag:
| `iap_release` | `all` | Fixed-point | Designates the IAP major version. | N/A | Yes
49
-
| `redis_svc_url` | `all` | String | This variable defines the redis service url to use when connecting to an externally provided redis cluster. It is intended to be used when the architecture demands that redis be hosted elsewhere such as when using Elasticache or if the demands of an organization require some other external redis solution, like a shared service. | N/A | No
50
49
51
50
The `iap_release` must be defined in the inventory. This variable, along with the OS major version, is used to determine the static variables.
0 commit comments