ansible安装mysql 8.0.0.20

网友投稿 914 2022-10-07

ansible安装mysql 8.0.0.20

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):mysql8​

[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: dbservers remote_user: root gather_facts: False roles: - 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:本次安装定义的变量​

[root@master mysql_install]# cat tasks/copy.yml - name: copy mysql source code to client copy: src={{mysql_version}}.tar.gz dest=/root/{{mysql_version}}.tar.gz owner=root group=root- name: copy mysql install script to client template: src=mysql8install.sh dest=/root/mysql8install.sh owner=root group=root mode=0755[root@master mysql_install]# cat tasks/install.yml - name: install mysql shell: /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/bashstart_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/nullmv /mysql-8.0.20-linux-glibc2.12-x86_64 /mysql# 创建数据库文件目录和创建日志目录mkdir /mysql/{data,log}#创建mysql组和用户groupadd mysqluseradd -r -g mysql -s /bin/false mysqlchown -R mysql:mysql /mysql#配置/etc/my-fcat > /etc/my-f <> /etc/profilesource /etc/profile#初始化数据库/mysql/bin/mysqld --initialize --user=mysql --basedir=/mysql --datadir=/mysql/data >> /dev/null#制作启动文件cp /mysql/support-files/mysql.server /etc/init.d/mysqldsed -i 's/^basedir=/basedir=//mysql/' /etc/init.d/mysqldsed -i 's/^datadir=/datadir=//mysql//data/' /etc/init.d/mysqldchmod 755 /etc/init.d/mysqld#启动mysql服务/etc/init.d/mysqld start#关闭mysql服务 #/etc/init.d/mysqld stopecho "#####mysql8安装完成#####"#修改mysql登录密码b=`grep 'temporary password' /mysql/log/mysql-err.log`a=`echo ${b##*localhost:}`echo $a#创建/mysql/bin/mysql软连接,便于命令行直接执行mysqlln -s /mysql/bin/mysql /usr/bin/mysql#mysql -e 可以直接在命令行执行命令,-uroot -p"${a}" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY ' --connect-expired-passwordecho "#####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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于微信小程序的配置(微信小程序服务器配置要求)
下一篇:微信小程序 Page()函数的介绍(微信小程序在哪里找?)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~