使用Ansible安装MySQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Ansible安装MySQL相关的知识,希望对你有一定的参考价值。
参考技术A
我们现在有一个可以管理常见项目的Ansible Playbook。 它可以安装和配置nginx,最后也可以安装和配置Tomcat。 下一个合乎逻辑的步骤是安装某种形式的数据存储,为此,我们将看看mysql。
由于其相对易用性和开源传统,MySQL可以说是最受欢迎的数据库之一。 MySQL对于大小网站都足够强大,并为互联网上许多最受欢迎的网站提供支持。 虽然它可能缺少一些企业功能,它们是比较昂贵的堂兄弟,例如Oracle和Microsoft SQL,但它可以通过相对简单的安装和无需许可证成本进行扩展来弥补这一点。
对于此配方,您需要一个Ubuntu 14.04服务器作为您的Ansible客户端,以及一个您希望为MySQL配置的Ubuntu 14.04服务器。
让我们使用Ansible安装MySQL:
您可以在http://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts找到有关Ansible事实的更多详细信息。
See also
ansible 一键安装mysql
ansible 使用剧本一键安装mysql
这里使用的没有联网安装 自己准备了安装包以及依赖关系(安装包都是放在了/sof,yum可以多个共存)
``
[root@localhost ~]# createrepo //sof
[root@localhost ~]# ls //sof
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim ansible.repo
[ansible]
name=ansible
baseurl=file:///root/app
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum -y install ansible
[root@localhost yum.repos.d]# ansible --version
ansible 2.4.2.0
``
现在就安装好了 开始创建秘钥名传给远程主机 实现免密登录
生成秘钥
``ssh-keygen``
发送秘钥
``ssh-copy-id root@192.168.2.9``
尝试登陆一下是否可以免密登录
``ssh root@192.168.2.9``
注意:如果需要多台主机同时操作的话每个主机都需要传送秘钥
编辑配置文件
`/etc/ansible/hosts`
``
[mysqlserver]
192.168.2.9
192.168.2.17
192.168.2.18
``
测试一下是否可以ping通
`ansible all -m ping`
开始写配置角色
创建需要的目录
``
[root@www roles]# cd /etc/ansible/roles/
[root@www roles]# mkdir mysql
[root@www roles]# cd mysql/
[root@www mysql]# mkdir files
[root@www mysql]# mkdir handlers
[root@www mysql]# mkdir tasks
[root@www mysql]# mkdir templates
[root@www mysql]# mkdir vars
``
Files 里面存放普通文件安装包之类的(这里将mysql的安装包放到了里面)
这里只写了简单的mysql安装 所以没有使用上金甲模板和变量这些
直接在tasks里面编写任务就好
`[root@www mysql]# vim tasks/main.yaml`
``
---
- name: yum install
yum: name=cmake,bison,ncurses-devel state=installed
- name: copy mysql
copy: src=mysql-5.5.22.tar.gz dest=/usr/src/mysql-5.5.22.tar.gz
- name: tar package
shell: cd /usr/src/ && tar -zxf mysql-5.5.22.tar.gz
- name: user add mysql
user: name=mysql shell=/sbin/nologin
- name: set mysql
shell: cd /usr/src/mysql-5.5.22 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
- name: link mysqL
shell: ln -sf /usr/1ocal/mysql/bin/* /usr/local/bin/
- name: chown mysql
shell: chown -R mysql:mysql /usr/local/mysql/
- name: copy my
shell: cp -f /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
- name: initial mysql
shell: cd /usr/local/mysql/ && scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- name: file mysql
shell: echo PATH=$PATH:/usr/local/mysql/bin >> /etc/profile
- name: source mysql
shell: source /etc/profile
- name: copy mysql.server
shell: cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
- name: mode mysql
file: path=/etc/rc.d/init.d/mysqld mode=755
- name: add server mysqld
shell: chkconfig --add mysqld
- name: start mysqld
shell: systemctl restart mysqld
``
编写启动文件
``
[root@www mysql]# cd ../../
[root@www ansible]# vim mysql.yaml
``
``
---
- hosts: mysqlserver
remote_user: root
roles:
- mysql
``
启动文件
``
[root@www ansible]# ansible-playbook mysql.yaml
``
以上是关于使用Ansible安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章