Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rabbitmq user setup #690

Merged
merged 10 commits into from Mar 19, 2021
2 changes: 2 additions & 0 deletions scripts/includes/common.sh
Expand Up @@ -123,6 +123,8 @@ check_st2_host_dependencies() {
generate_random_passwords() {
# Generate random password used for MongoDB user authentication
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
# Generate random password used for RabbitMQ user authentication
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
}


Expand Down
21 changes: 18 additions & 3 deletions scripts/st2bootstrap-deb.sh
Expand Up @@ -273,6 +273,8 @@ check_st2_host_dependencies() {
generate_random_passwords() {
# Generate random password used for MongoDB user authentication
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
# Generate random password used for RabbitMQ user authentication
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
}


Expand Down Expand Up @@ -465,7 +467,18 @@ install_st2_dependencies() {
fi

sudo apt-get install -y curl

# Various other dependencies needed by st2 and installer script
sudo apt-get install -y crudini
}

install_rabbitmq() {
# install RabbitMQ
sudo apt-get install -y rabbitmq-server
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
sudo rabbitmqctl delete_user guest
sudo rabbitmqctl set_user_tags stackstorm administrator
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"

# Configure RabbitMQ to listen on localhost only
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
Expand All @@ -475,9 +488,6 @@ install_st2_dependencies() {
else
sudo service rabbitmq-server restart
fi

# Various other dependencies needed by st2 and installer script
sudo apt-get install -y crudini
}

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

# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"

sudo st2ctl start
sudo st2ctl reload --register-all
}
Expand Down Expand Up @@ -696,6 +710,7 @@ STEP="Check TCP ports and MongoDB storage requirements" && check_st2_host_depend
STEP="Generate random password" && generate_random_passwords
STEP="Configure Proxy" && configure_proxy
STEP="Install st2 dependencies" && install_st2_dependencies
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
STEP="Install st2" && install_st2
STEP="Configure st2 user" && configure_st2_user
Expand Down
19 changes: 16 additions & 3 deletions scripts/st2bootstrap-deb.template.sh
Expand Up @@ -154,7 +154,18 @@ install_st2_dependencies() {
fi

sudo apt-get install -y curl

# Various other dependencies needed by st2 and installer script
sudo apt-get install -y crudini
}

install_rabbitmq() {
# install RabbitMQ
sudo apt-get install -y rabbitmq-server
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
sudo rabbitmqctl delete_user guest
sudo rabbitmqctl set_user_tags stackstorm administrator
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"

# Configure RabbitMQ to listen on localhost only
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'
Expand All @@ -164,9 +175,6 @@ install_st2_dependencies() {
else
sudo service rabbitmq-server restart
fi

# Various other dependencies needed by st2 and installer script
sudo apt-get install -y crudini
}

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

# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"

sudo st2ctl start
sudo st2ctl reload --register-all
}
Expand Down Expand Up @@ -385,6 +397,7 @@ STEP="Check TCP ports and MongoDB storage requirements" && check_st2_host_depend
STEP="Generate random password" && generate_random_passwords
STEP="Configure Proxy" && configure_proxy
STEP="Install st2 dependencies" && install_st2_dependencies
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
STEP="Install st2" && install_st2
STEP="Configure st2 user" && configure_st2_user
Expand Down
31 changes: 23 additions & 8 deletions scripts/st2bootstrap-el7.sh
Expand Up @@ -234,6 +234,8 @@ check_st2_host_dependencies() {
generate_random_passwords() {
# Generate random password used for MongoDB user authentication
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
# Generate random password used for RabbitMQ user authentication
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
}


Expand Down Expand Up @@ -492,14 +494,7 @@ install_st2_dependencies() {
if [[ -z "$is_epel_installed" ]]; then
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
fi
sudo yum -y install curl rabbitmq-server

# Configure RabbitMQ to listen on localhost only
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server


# Various other dependencies needed by st2 and installer script
sudo yum -y install crudini

Expand All @@ -519,6 +514,21 @@ install_st2_dependencies() {
fi
}

install_rabbitmq() {
sudo yum -y install curl rabbitmq-server

# Configure RabbitMQ to listen on localhost only
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
sudo rabbitmqctl delete_user guest
sudo rabbitmqctl set_user_tags stackstorm administrator
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
}

install_mongodb() {
# Add key and repo for the latest stable MongoDB (4.0)
sudo rpm --import https://www.mongodb.org/static/pgp/server-4.0.asc
Expand Down Expand Up @@ -592,6 +602,10 @@ install_st2() {
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"

# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"

sudo st2ctl start
sudo st2ctl reload --register-all
}
Expand Down Expand Up @@ -709,6 +723,7 @@ STEP='Install repoquery tool' && install_yum_utils
STEP="Generate random password" && generate_random_passwords

STEP="Install st2 dependencies" && install_st2_dependencies
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
STEP="Install st2" && install_st2
STEP="Configure st2 user" && configure_st2_user
Expand Down
29 changes: 21 additions & 8 deletions scripts/st2bootstrap-el7.template.sh
Expand Up @@ -131,14 +131,7 @@ install_st2_dependencies() {
if [[ -z "$is_epel_installed" ]]; then
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
fi
sudo yum -y install curl rabbitmq-server

# Configure RabbitMQ to listen on localhost only
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server


# Various other dependencies needed by st2 and installer script
sudo yum -y install crudini

Expand All @@ -158,6 +151,21 @@ install_st2_dependencies() {
fi
}

install_rabbitmq() {
sudo yum -y install curl rabbitmq-server

# Configure RabbitMQ to listen on localhost only
sudo sh -c 'echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/rabbitmq/rabbitmq-env.conf'

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
sudo rabbitmqctl delete_user guest
sudo rabbitmqctl set_user_tags stackstorm administrator
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
}

install_mongodb() {
# Add key and repo for the latest stable MongoDB (4.0)
sudo rpm --import https://www.mongodb.org/static/pgp/server-4.0.asc
Expand Down Expand Up @@ -231,6 +239,10 @@ install_st2() {
sudo crudini --set /etc/st2/st2.conf database username "stackstorm"
sudo crudini --set /etc/st2/st2.conf database password "${ST2_MONGODB_PASSWORD}"

# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"

sudo st2ctl start
sudo st2ctl reload --register-all
}
Expand Down Expand Up @@ -348,6 +360,7 @@ STEP='Install repoquery tool' && install_yum_utils
STEP="Generate random password" && generate_random_passwords

STEP="Install st2 dependencies" && install_st2_dependencies
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
STEP="Install st2" && install_st2
STEP="Configure st2 user" && configure_st2_user
Expand Down
18 changes: 16 additions & 2 deletions scripts/st2bootstrap-el8.sh
Expand Up @@ -242,6 +242,8 @@ check_st2_host_dependencies() {
generate_random_passwords() {
# Generate random password used for MongoDB user authentication
ST2_MONGODB_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
# Generate random password used for RabbitMQ user authentication
ST2_RABBITMQ_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 24 ; echo '')
}


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

# Various other dependencies needed by st2 and installer script
sudo yum -y install crudini
}

install_rabbitmq() {
# Install rabbit from packagecloud
# Package are not in EPEL or CentOS repos - but this is required for erlang.
# recommended by rabbit: https://www.rabbitmq.com/install-rpm.html#package-cloud
Expand All @@ -524,8 +531,10 @@ install_st2_dependencies() {
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

# Various other dependencies needed by st2 and installer script
sudo yum -y install crudini
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
sudo rabbitmqctl delete_user guest
sudo rabbitmqctl set_user_tags stackstorm administrator
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
}

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

# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"

sudo st2ctl start
sudo st2ctl reload --register-all
}
Expand Down Expand Up @@ -735,6 +748,7 @@ STEP='Install repoquery tool' && install_yum_utils
STEP="Generate random password" && generate_random_passwords

STEP="Install st2 dependencies" && install_st2_dependencies
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
STEP="Install st2" && install_st2
STEP="Configure st2 user" && configure_st2_user
Expand Down
16 changes: 14 additions & 2 deletions scripts/st2bootstrap-el8.template.sh
Expand Up @@ -145,6 +145,11 @@ install_st2_dependencies() {
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
fi

# Various other dependencies needed by st2 and installer script
sudo yum -y install crudini
}

install_rabbitmq() {
# Install rabbit from packagecloud
# Package are not in EPEL or CentOS repos - but this is required for erlang.
# recommended by rabbit: https://www.rabbitmq.com/install-rpm.html#package-cloud
Expand All @@ -163,8 +168,10 @@ install_st2_dependencies() {
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

# Various other dependencies needed by st2 and installer script
sudo yum -y install crudini
sudo rabbitmqctl add_user stackstorm "${ST2_RABBITMQ_PASSWORD}"
sudo rabbitmqctl delete_user guest
sudo rabbitmqctl set_user_tags stackstorm administrator
sudo rabbitmqctl set_permissions -p / stackstorm ".*" ".*" ".*"
}

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

# Configure [messaging] section in st2.conf (username password for RabbitMQ access)
AMQP="amqp://stackstorm:$ST2_RABBITMQ_PASSWORD@127.0.0.1:5672"
sudo crudini --set /etc/st2/st2.conf messaging url "${AMQP}"

sudo st2ctl start
sudo st2ctl reload --register-all
}
Expand Down Expand Up @@ -374,6 +385,7 @@ STEP='Install repoquery tool' && install_yum_utils
STEP="Generate random password" && generate_random_passwords

STEP="Install st2 dependencies" && install_st2_dependencies
STEP="Install st2 dependencies (RabbitMQ)" && install_rabbitmq
STEP="Install st2 dependencies (MongoDB)" && install_mongodb
STEP="Install st2" && install_st2
STEP="Configure st2 user" && configure_st2_user
Expand Down