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…いろいろとハマりましたが、以下のサイトを参考にさせていただき、
無事インストールすることができました。ありがとうございます!