生活随笔
收集整理的這篇文章主要介紹了
ansible安装mysql 8.0.0.20
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ansible-playbook配置思路:
1.通過vars中的main.yml配置變量,主要為源碼存放目錄及安裝目錄
2.通過tasks中的copy.yml將源碼文件傳輸到異地服務器上源碼存放目錄
3.通過tasks中的install.yml調用模板mysql_install.sh,將mysql安裝到變量中定義的安裝目錄
4.通過tasks中的main.yml調用copy模塊和install模塊
5.通過mysql.yml調用劇本(playbook):mysql8https://www.cndba.cn/hbhe0316/article/4829https://www.cndba.cn/hbhe0316/article/4829
https://www.cndba.cn/hbhe0316/article/4829 https://www.cndba.cn/hbhe0316/article/4829https://www.cndba.cn/hbhe0316/article/4829 https://www.cndba.cn/hbhe0316/article/4829 https://www.cndba.cn/hbhe0316/article/4829 [root@master ansible]# cd /etc/ansible
[root@master ansible]# mkdir -p roles/mysql8/{files,handlers,meta,tasks,templates,vars}[root@master ansible]# cd /etc/ansible
[root@master ansible]# cat mysql8.yml
- hosts: dbserversremote_user: rootgather_facts: Falseroles:- mysql8[root@master mysql8]# pwd
/etc/ansible/roles/mysql8
[root@master mysql8]# tree
.
├── files
│ └── mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
├── handlers
├── meta
├── tasks
│ ├── copy.yml
│ ├── install.yml
│ └── main.yml
├── templates
│ └── mysql8install.sh
└── vars└── main.yml
說明:
files:存放需要同步到異地服務器的源碼文件及配置文件;
handlers:當資源發生變化時需要進行的操作,若沒有此目錄可以不建或為空;
meta:角色定義可留空;
tasks:mysql安裝過程成需要進行的執行的任務;
templates:用于執行mysql安裝的模板文件,一般為腳本;
vars:本次安裝定義的變量
https://www.cndba.cn/hbhe0316/article/4829 https://www.cndba.cn/hbhe0316/article/4829 https://www.cndba.cn/hbhe0316/article/4829 [root@master mysql_install]# cat tasks/copy.yml
- name: copy mysql source code to clientcopy: src={{mysql_version}}.tar.gz dest=/root/{{mysql_version}}.tar.gz owner=root group=root
- name: copy mysql install script to clienttemplate: src=mysql8install.sh dest=/root/mysql8install.sh owner=root group=root mode=0755
[root@master mysql_install]# cat tasks/install.yml
- name: install mysqlshell: /bin/sh /root/mysql8install.sh
[root@master mysql_install]# cat tasks/main.yml
- include: copy.yml
- include: install.yml [root@master mysql8]# cd /etc/ansible/roles/mysql8
[root@master mysql8]# cat templates/mysql8install.sh
#!/bin/bash
start_time=$(date +%s)
#yum -y install gcc gcc-c++ openssl openssl-devel libaio libaio-devel ncurses ncurses-devel >> /dev/nulltar xvf /root/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz -C / >> /dev/null
mv /mysql-8.0.20-linux-glibc2.12-x86_64 /mysql# 創建數據庫文件目錄和創建日志目錄
mkdir /mysql/{data,log}#創建mysql組和用戶
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /mysql#配置/etc/my.cnf
cat > /etc/my.cnf <<EOF
[mysqld]
port=3306
datadir=/mysql/data
log-error=/mysql/log/mysql-err.log
user=mysql
[client]
socket=/tmp/mysql.sock
EOF#配置環境變量
echo "export PATH=$PATH:/mysql/bin" >> /etc/profile
source /etc/profile#初始化數據庫
/mysql/bin/mysqld --initialize --user=mysql --basedir=/mysql --datadir=/mysql/data >> /dev/null#制作啟動文件
cp /mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's/^basedir=/basedir=//mysql/' /etc/init.d/mysqld
sed -i 's/^datadir=/datadir=//mysql//data/' /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld#啟動mysql服務
/etc/init.d/mysqld start#關閉mysql服務
#/etc/init.d/mysqld stop
echo "#####mysql8安裝完成#####"#修改mysql登錄密碼
b=`grep 'temporary password' /mysql/log/mysql-err.log`
a=`echo ${b##*localhost:}`
echo $a#創建/mysql/bin/mysql軟連接,便于命令行直接執行mysql
ln -s /mysql/bin/mysql /usr/bin/mysql#mysql -e 可以直接在命令行執行命令,wwwwww是設定的新密碼
mysql -uroot -p"${a}" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'wwwwww'" --connect-expired-password
echo "#####mysql8密碼修改成功#####"end_time=$(date +%s)
cost_time=$((end_time - start_time)) 使用ansible安裝
[root@master ansible]# cd /etc/ansible
[root@master ansible]# ansible-playbook /etc/ansible/mysql8.yml
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
ansible
總結
以上是生活随笔為你收集整理的ansible安装mysql 8.0.0.20的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。