LoginSignup
11
12

More than 5 years have passed since last update.

AnsibleでMySQL 5.6をインストールしてみた

Posted at

Vagrantで素のCentOS 6.5を起動できたので、AnsibleでMySQL 5.6.25をインストールしてみました。

CentOS 6.5でyumインストールすると古いバージョンのものがインストールされてしまうので、
rpmをダウンロードしてインストールするようにしました。
Ansibleの設定はYAMLで記載しますが、「with_items」の書き方でハマりました…。

■環境

VagrantとAnsibleを実行する環境は、以下の通りです。

OS/Tool Version
Mac OS X Yosemite 10.10.4
Vagrant 1.7.2
Ansible 1.9.1

■前提

  • Vagrantで、CentOS 5.6を起動済み (「config.vm.network "private_network", ip: "192.168.33.10"」のコメントを削除して起動)
  • 「Vagrantfile」と同じディレクトリに「hosts」ファイルを作成し、以下の内容で保存済み
[dev]
192.168.33.10 ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key ansible_ssh_user=vagrant

■Ansibleの設定

「Vagrantfile」と同じディレクトリに「playbook.yml」ファイルを作成し、以下の内容で保存しました。
(YAMLファイルは、どこに置いても問題無しです)

playbook.yml
---                                                                                                                                   
- hosts: dev
  sudo: yes 
  vars:
    mysql_url: http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6
    mysql_ver: "5.6.25-1"
    mysql_items:
      - rpm: MySQL-client-{{ mysql_ver }}.el6.x86_64.rpm
      - rpm: MySQL-shared-compat-{{ mysql_ver }}.el6.x86_64.rpm
      - rpm: MySQL-shared-{{ mysql_ver }}.el6.x86_64.rpm
      - rpm: MySQL-devel-{{ mysql_ver }}.el6.x86_64.rpm
      - rpm: MySQL-server-{{ mysql_ver }}.el6.x86_64.rpm
  tasks:
    # mysql install
    - name: install mysql
      yum: name={{ mysql_url}}/{{ item.rpm }} state=present
      with_items: mysql_items
      tags: mysql

    # mysqld自動起動設定
    - name: be sure mysqld is running and enabled
      service: name=mysqld state=running enabled=yes
      tags: mysql

★ハマりポイント

最初は、「mysql_items」と「yum」を以下のように記載していました。

playbook.yml
# (省略)
    mysql_items:
      - MySQL-client-{{ mysql_ver }}.el6.x86_64.rpm # 「rpm」の記載なし
      - MySQL-shared-compat-{{ mysql_ver }}.el6.x86_64.rpm # 「rpm」の記載なし
      - MySQL-shared-{{ mysql_ver }}.el6.x86_64.rpm # 「rpm」の記載なし
      - MySQL-devel-{{ mysql_ver }}.el6.x86_64.rpm # 「rpm」の記載なし
      - MySQL-server-{{ mysql_ver }}.el6.x86_64.rpm # 「rpm」の記載なし
  tasks:
    # mysql install
    - name: install mysql
      yum: name={{ mysql_url}}/{{ item }} state=present # 「item.rpm」ではなく「item」のみ
      with_items: mysql_items

    # (省略) 

これを実行すると、1個目(MySQL-client〜)は成功しましたが、2個目は失敗しました。

■Ansibleの実行

「Vagrantfile」と同じディレクトリで、以下のコマンドを実行します。

$ ansible-playbook -i hosts provisioning/playbook.yml

■インストール確認

CentOSにSSH接続し、

$ vagrant ssh

以下のコマンドでMySQL 5.6がインストールされているか確認します。

$ mysql --version
mysql  Ver 14.14 Distrib 5.6.25, for Linux (x86_64) using  EditLine wrapper

YAMLで指定したバージョン「5.6.25」がインストールできていました!

■参考にさせていただいたサイト

初めてのAnsible…いろいろとハマりましたが、以下のサイトを参考にさせていただき、
無事インストールすることができました。ありがとうございます!

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12