解讀先電2.4版 iaas-install-mysql.sh 腳本
- 2022 年 5 月 8 日
- 筆記
- MySQL, openstack
#!/bin/bash #聲明解釋器路徑
source /etc/xiandian/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
#shell語法不做解釋,這一部分的作用是確保網路配置正確,錯誤則輸出(Please make sure the network configuration is correct!)並終止執行腳本
#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
#修改 /etc/my.cnf文件[mysqld]中添加
max_connections=10000
設置 mariadb最大連接數為10000
default-storage-engine = innodb
innodb_file_per_table
設置資料庫默認存儲引擎為innodb
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8**
設置資料庫的編碼格式為utf8
sed -i 's/plugin-load-add*/#plugin-load-add/g' /etc/my.cnf.d/auth_gssapi.cnf
#修改/etc/my.cnf.d/auth_gssapi.cnf文件參數
[mariadb]
注釋一行參數
#plugin-load-add=auth_gssapi.so
crudini --set /usr/lib/systemd/system/mariadb.service Service LimitNOFILE 10000
crudini --set /usr/lib/systemd/system/mariadb.service Service LimitNPROC 10000
#由於mariadb有默認打開文件數限制。可以通過修改
/usr/lib/systemd/system/mariadb.service文件參數
[Service]
新添加兩行如下參數:
LimitNOFILE=10000
LimitNPROC=10000
來調大打開文件數目。
systemctl daemon-reload #後台程式重新載入,使配置文件生效生效
systemctl enable mariadb.service #設置開機自啟mariadb服務
systemctl restart mariadb.service #重啟mariadb服務
expect -c " #自動執行腳本
spawn /usr/bin/mysql_secure_installation #執行安全配置嚮導命令
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
"
#藉助expect處理交互的命令,配置Mysql
#MariaDB簡介://blog.csdn.net/cxu0262/article/details/106257174
#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 ".*" ".*" ".*" #設置用戶訪問虛擬機許可權:授予用戶可訪問虛擬主機,在所有資源上都具備可配置,可寫及可讀的許可權。
#python-memcached:使用python語言開發的與memcached記憶體守護進程通訊的介面程式
#RabbitMQ簡介://blog.csdn.net/qq_45533841/article/details/106026991
#Memcache
yum install memcached python-memcached -y
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
#Memcache簡介://blog.csdn.net/qq_33753147/article/details/79159410
#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
#修改/etc/etcd/etcd.conf配置文件,添加以下內容:
ETCD_LISTEN_PEER_URLS="//192.168.100.10:2380"
ETCD_LISTEN_CLIENT_URLS="//192.168.100.10:2379"
ETCD_NAME="controller"
ETCD_INITIAL_ADVERTISE_PEER_URLS="//192.168.100.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="//192.168.100.10:2379"
ETCD_INITIAL_CLUSTER="controller=//192.168.100.10:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD簡介://blog.csdn.net/BlademasterDZ/article/details/113561889