iaas-install-mysql.sh
#!/bin/bash
source /etc/iaas-openstack/openrc.sh
ping $HOST_IP -c 4 >> /dev/null 2>&1 # 查看网络的配置是否正确,错误就退出并打印以下
if [ 0 -ne $? ]; then
echo -e "\033[31m Warning\nPlease make sure the network configuration is correct!\033[0m"
exit 1
fi
# MariaDB
yum install -y mariadb mariadb-server python2-PyMySQL # 安装 mariadb 软件包
sed -i "/^symbolic-links/a\default-storage-engine = innodb\ninnodb_file_per_table\ncollation-server = utf8_general_ci\ninit-connect = 'SET NAMES utf8'\ncharacter-set-server = utf8\nmax_connections=10000" /etc/my.cnf # 设置数据库默认存储引擎为innodb 数据库的编码格式为utf8 mariadb最大连接数为10000
sed -i 's/plugin-load-add*/#plugin-load-add/g' /etc/my.cnf.d/auth_gssapi.cnf # 取消装载插件
crudini --set /usr/lib/systemd/system/mariadb.service Service LimitNOFILE 10000
crudini --set /usr/lib/systemd/system/mariadb.service Service LimitNPROC 10000 # 两条命令来打开文件的数目
systemctl daemon-reload # 重新加载,使配置文件生效
systemctl enable mariadb.service # 设置开机启动 mariadb 服务
systemctl restart mariadb.service # 重启 mariadb 服务
expect -c " # 自动执行脚本
spawn /usr/bin/mysql_secure_installation # 执行安装配置向导,并借助expect命令来配置MySQL
expect \"Enter current password for root (enter for none):\"
send \"\r\"
expect \"Set root password?\"
send \"y\r\"
expect \"New password:\"
send \"$DB_PASS\r\"
expect \"Re-enter new password:\"
send \"$DB_PASS\r\"
expect \"Remove anonymous users?\"
send \"y\r\"
expect \"Disallow root login remotely?\"
send \"n\r\"
expect \"Remove test database and access to it?\"
send \"y\r\"
expect \"Reload privilege tables now?\"
send \"y\r\"
expect eof
"
# RabbitMQ
yum install rabbitmq-server -y # 安装 rabbitmq 服务
systemctl start rabbitmq-server.service # 启动 rabbitmq 服务
systemctl enable rabbitmq-server.service # 开机启动 rabbitmq 服务
rabbitmqctl add_user $RABBIT_USER $RABBIT_PASS # 设置 rabbitmq 用户和密码
rabbitmqctl set_permissions $RABBIT_USER ".*" ".*" ".*" # 对用户授权所有资源的配置,读,写的权限
# Memcache
yum install memcached python-memcached -y # 安装 memcached
sed -i -e 's/OPTIONS.*/OPTIONS="-l 127.0.0.1,::1,'$HOST_NAME'"/g' /etc/sysconfig/memcached
systemctl start memcached.service
systemctl enable memcached.service
# ETCD
yum install etcd -y
sed -i -e 's/#ETCD_LISTEN_PEER_URLS.*/ETCD_LISTEN_PEER_URLS="http:\/\/'$HOST_IP':2380"/g' \
-e 's/^ETCD_LISTEN_CLIENT_URLS.*/ETCD_LISTEN_CLIENT_URLS="http:\/\/'$HOST_IP':2379"/g' \
-e 's/^ETCD_NAME="default"/ETCD_NAME="'$HOST_NAME'"/g' \
-e 's/#ETCD_INITIAL_ADVERTISE_PEER_URLS.*/ETCD_INITIAL_ADVERTISE_PEER_URLS="http:\/\/'$HOST_IP':2380"/g' \
-e 's/^ETCD_ADVERTISE_CLIENT_URLS.*/ETCD_ADVERTISE_CLIENT_URLS="http:\/\/'$HOST_IP':2379"/g' \
-e 's/#ETCD_INITIAL_CLUSTER=.*/ETCD_INITIAL_CLUSTER="'$HOST_NAME'=http:\/\/'$HOST_IP':2380"/g' \
-e 's/#ETCD_INITIAL_CLUSTER_TOKEN.*/ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"/g' \
-e 's/#ETCD_INITIAL_CLUSTER_STATE.*/ETCD_INITIAL_CLUSTER_STATE="new"/g' /etc/etcd/etcd.conf
systemctl start etcd
systemctl enable etcd