Skip to content

Commit 739d24e

Browse files
authored
Merge pull request #690 from shivani-orch/rabbitmq-user-setup
Rabbitmq user setup
2 parents 6e66733 + 5a5148c commit 739d24e

7 files changed

+110
-26
lines changed

scripts/includes/common.sh

+2
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ check_st2_host_dependencies() {
123123
generate_random_passwords() {
124124
# Generate random password used for MongoDB user authentication
125125
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
126+
# Generate random password used for RabbitMQ user authentication
127+
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
126128
}
127129

128130

scripts/st2bootstrap-deb.sh

+18-3
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,8 @@ check_st2_host_dependencies() {
273273
generate_random_passwords() {
274274
# Generate random password used for MongoDB user authentication
275275
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
276+
# Generate random password used for RabbitMQ user authentication
277+
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
276278
}
277279

278280

@@ -465,7 +467,18 @@ install_st2_dependencies() {
465467
fi
466468

467469
sudo apt-get install -y curl
470+
471+
# Various other dependencies needed by st2 and installer script
472+
sudo apt-get install -y crudini
473+
}
474+
475+
install_rabbitmq() {
476+
# install RabbitMQ
468477
sudo apt-get install -y rabbitmq-server
478+
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
479+
sudo rabbitmqctl delete_user guest
480+
sudo rabbitmqctl set_user_tags stackstorm administrator
481+
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
469482

470483
# Configure RabbitMQ to listen on localhost only
471484
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
@@ -475,9 +488,6 @@ install_st2_dependencies() {
475488
else
476489
sudo service rabbitmq-server restart
477490
fi
478-
479-
# Various other dependencies needed by st2 and installer script
480-
sudo apt-get install -y crudini
481491
}
482492

483493
install_mongodb() {
@@ -596,6 +606,10 @@ install_st2() {
596606
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
597607
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"
598608

609+
# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
610+
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
611+
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"
612+
599613
sudo st2ctl start
600614
sudo st2ctl reload --register-all
601615
}
@@ -696,6 +710,7 @@ STEP="Check TCP ports and MongoDB storage requirements" && check_st2_host_depend
696710
STEP="Generate random password" && generate_random_passwords
697711
STEP="Configure Proxy" && configure_proxy
698712
STEP="Install st2 dependencies" && install_st2_dependencies
713+
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
699714
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
700715
STEP="Install st2" && install_st2
701716
STEP="Configure st2 user" && configure_st2_user

scripts/st2bootstrap-deb.template.sh

+16-3
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,18 @@ install_st2_dependencies() {
154154
fi
155155

156156
sudo apt-get install -y curl
157+
158+
# Various other dependencies needed by st2 and installer script
159+
sudo apt-get install -y crudini
160+
}
161+
162+
install_rabbitmq() {
163+
# install RabbitMQ
157164
sudo apt-get install -y rabbitmq-server
165+
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
166+
sudo rabbitmqctl delete_user guest
167+
sudo rabbitmqctl set_user_tags stackstorm administrator
168+
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
158169

159170
# Configure RabbitMQ to listen on localhost only
160171
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
@@ -164,9 +175,6 @@ install_st2_dependencies() {
164175
else
165176
sudo service rabbitmq-server restart
166177
fi
167-
168-
# Various other dependencies needed by st2 and installer script
169-
sudo apt-get install -y crudini
170178
}
171179

172180
install_mongodb() {
@@ -285,6 +293,10 @@ install_st2() {
285293
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
286294
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"
287295

296+
# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
297+
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
298+
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"
299+
288300
sudo st2ctl start
289301
sudo st2ctl reload --register-all
290302
}
@@ -385,6 +397,7 @@ STEP="Check TCP ports and MongoDB storage requirements" && check_st2_host_depend
385397
STEP="Generate random password" && generate_random_passwords
386398
STEP="Configure Proxy" && configure_proxy
387399
STEP="Install st2 dependencies" && install_st2_dependencies
400+
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
388401
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
389402
STEP="Install st2" && install_st2
390403
STEP="Configure st2 user" && configure_st2_user

scripts/st2bootstrap-el7.sh

+23-8
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ check_st2_host_dependencies() {
234234
generate_random_passwords() {
235235
# Generate random password used for MongoDB user authentication
236236
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
237+
# Generate random password used for RabbitMQ user authentication
238+
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
237239
}
238240

239241

@@ -492,14 +494,7 @@ install_st2_dependencies() {
492494
if [[ -z "$is_epel_installed" ]]; then
493495
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
494496
fi
495-
sudo yum -y install curl rabbitmq-server
496-
497-
# Configure RabbitMQ to listen on localhost only
498-
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
499-
500-
sudo systemctl start rabbitmq-server
501-
sudo systemctl enable rabbitmq-server
502-
497+
503498
# Various other dependencies needed by st2 and installer script
504499
sudo yum -y install crudini
505500

@@ -519,6 +514,21 @@ install_st2_dependencies() {
519514
fi
520515
}
521516

517+
install_rabbitmq() {
518+
sudo yum -y install curl rabbitmq-server
519+
520+
# Configure RabbitMQ to listen on localhost only
521+
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
522+
523+
sudo systemctl start rabbitmq-server
524+
sudo systemctl enable rabbitmq-server
525+
526+
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
527+
sudo rabbitmqctl delete_user guest
528+
sudo rabbitmqctl set_user_tags stackstorm administrator
529+
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
530+
}
531+
522532
install_mongodb() {
523533
# Add key and repo for the latest stable MongoDB (4.0)
524534
sudo rpm --import https://www.mongodb.org/static/pgp/server-4.0.asc
@@ -592,6 +602,10 @@ install_st2() {
592602
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
593603
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"
594604

605+
# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
606+
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
607+
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"
608+
595609
sudo st2ctl start
596610
sudo st2ctl reload --register-all
597611
}
@@ -709,6 +723,7 @@ STEP='Install repoquery tool' && install_yum_utils
709723
STEP="Generate random password" && generate_random_passwords
710724

711725
STEP="Install st2 dependencies" && install_st2_dependencies
726+
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
712727
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
713728
STEP="Install st2" && install_st2
714729
STEP="Configure st2 user" && configure_st2_user

scripts/st2bootstrap-el7.template.sh

+21-8
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,7 @@ install_st2_dependencies() {
131131
if [[ -z "$is_epel_installed" ]]; then
132132
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
133133
fi
134-
sudo yum -y install curl rabbitmq-server
135-
136-
# Configure RabbitMQ to listen on localhost only
137-
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
138-
139-
sudo systemctl start rabbitmq-server
140-
sudo systemctl enable rabbitmq-server
141-
134+
142135
# Various other dependencies needed by st2 and installer script
143136
sudo yum -y install crudini
144137

@@ -158,6 +151,21 @@ install_st2_dependencies() {
158151
fi
159152
}
160153

154+
install_rabbitmq() {
155+
sudo yum -y install curl rabbitmq-server
156+
157+
# Configure RabbitMQ to listen on localhost only
158+
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
159+
160+
sudo systemctl start rabbitmq-server
161+
sudo systemctl enable rabbitmq-server
162+
163+
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
164+
sudo rabbitmqctl delete_user guest
165+
sudo rabbitmqctl set_user_tags stackstorm administrator
166+
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
167+
}
168+
161169
install_mongodb() {
162170
# Add key and repo for the latest stable MongoDB (4.0)
163171
sudo rpm --import https://www.mongodb.org/static/pgp/server-4.0.asc
@@ -231,6 +239,10 @@ install_st2() {
231239
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
232240
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"
233241

242+
# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
243+
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
244+
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"
245+
234246
sudo st2ctl start
235247
sudo st2ctl reload --register-all
236248
}
@@ -348,6 +360,7 @@ STEP='Install repoquery tool' && install_yum_utils
348360
STEP="Generate random password" && generate_random_passwords
349361

350362
STEP="Install st2 dependencies" && install_st2_dependencies
363+
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
351364
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
352365
STEP="Install st2" && install_st2
353366
STEP="Configure st2 user" && configure_st2_user

scripts/st2bootstrap-el8.sh

+16-2
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,8 @@ check_st2_host_dependencies() {
242242
generate_random_passwords() {
243243
# Generate random password used for MongoDB user authentication
244244
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
245+
# Generate random password used for RabbitMQ user authentication
246+
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
245247
}
246248

247249

@@ -506,6 +508,11 @@ install_st2_dependencies() {
506508
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
507509
fi
508510

511+
# Various other dependencies needed by st2 and installer script
512+
sudo yum -y install crudini
513+
}
514+
515+
install_rabbitmq() {
509516
# Install rabbit from packagecloud
510517
# Package are not in EPEL or CentOS repos - but this is required for erlang.
511518
# recommended by rabbit: https://www.rabbitmq.com/install-rpm.html#package-cloud
@@ -524,8 +531,10 @@ install_st2_dependencies() {
524531
sudo systemctl start rabbitmq-server
525532
sudo systemctl enable rabbitmq-server
526533

527-
# Various other dependencies needed by st2 and installer script
528-
sudo yum -y install crudini
534+
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
535+
sudo rabbitmqctl delete_user guest
536+
sudo rabbitmqctl set_user_tags stackstorm administrator
537+
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
529538
}
530539

531540
install_mongodb() {
@@ -602,6 +611,10 @@ install_st2() {
602611
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
603612
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"
604613

614+
# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
615+
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
616+
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"
617+
605618
sudo st2ctl start
606619
sudo st2ctl reload --register-all
607620
}
@@ -735,6 +748,7 @@ STEP='Install repoquery tool' && install_yum_utils
735748
STEP="Generate random password" && generate_random_passwords
736749

737750
STEP="Install st2 dependencies" && install_st2_dependencies
751+
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
738752
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
739753
STEP="Install st2" && install_st2
740754
STEP="Configure st2 user" && configure_st2_user

scripts/st2bootstrap-el8.template.sh

+14-2
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,11 @@ install_st2_dependencies() {
145145
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
146146
fi
147147

148+
# Various other dependencies needed by st2 and installer script
149+
sudo yum -y install crudini
150+
}
151+
152+
install_rabbitmq() {
148153
# Install rabbit from packagecloud
149154
# Package are not in EPEL or CentOS repos - but this is required for erlang.
150155
# recommended by rabbit: https://www.rabbitmq.com/install-rpm.html#package-cloud
@@ -163,8 +168,10 @@ install_st2_dependencies() {
163168
sudo systemctl start rabbitmq-server
164169
sudo systemctl enable rabbitmq-server
165170

166-
# Various other dependencies needed by st2 and installer script
167-
sudo yum -y install crudini
171+
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
172+
sudo rabbitmqctl delete_user guest
173+
sudo rabbitmqctl set_user_tags stackstorm administrator
174+
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
168175
}
169176

170177
install_mongodb() {
@@ -241,6 +248,10 @@ install_st2() {
241248
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
242249
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"
243250

251+
# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
252+
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
253+
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"
254+
244255
sudo st2ctl start
245256
sudo st2ctl reload --register-all
246257
}
@@ -374,6 +385,7 @@ STEP='Install repoquery tool' && install_yum_utils
374385
STEP="Generate random password" && generate_random_passwords
375386

376387
STEP="Install st2 dependencies" && install_st2_dependencies
388+
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
377389
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
378390
STEP="Install st2" && install_st2
379391
STEP="Configure st2 user" && configure_st2_user

0 commit comments

Comments
 (0)