使用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的主要内容,如果未能解决你的问题,请参考以下文章

ansible快速安装(使用PIP)

ansible使用一(ansible的安装及ansible常用模块的使用)

Ansible的安装配置

1pip安装Ansible

ansible学习一(安装)

ansible自动化运维详解ansible的安装部署参数使用清单管理配置文件参数及用户级ansible操作环境构建