Ansible — установка MySQL 5.5 на CentOS 7

В CentOS 7 по умолчанию доступен для установки только форк MariaDB. Что лучше — Мария или оригинальный мускул в комьюнити редакции — мне в данной задаче не важно. Мне нужно собрать дев среду максимально близкую к продакшену. Для скачивания и установки MySQL Оракл предоставляет rpm мета-пакет, который можно найти тут.

Установить этот пакет в Ansible можно примерно так

- name: Add MySQL repo
yum: name=http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm state=present

Проблема в том, что в этом пакете прописаны субрепозитории для версий 5.7, 5.6, 5.5 и по-умолчанию активирована 5.7, а мне нужна 5.5. Конфиг лежит в файле /etc/yum.repos.d/mysql-community.repo. Проверить какой именно репозиторий активирован можно так.

$ yum repolist enabled | grep mysql

Yum модуль в Ansible не предоставляет возможности управления субрепозиториями. Но конфиг репозитория — это ini файл. А для работы ini файлами в Ansible модуль есть. Делаем так

- name: Disable default/latest MySQL repository
ini_file:
  dest: /etc/yum.repos.d/mysql-community.repo
  section: "mysql57-community"
  option: enabled
  value: "0"

- name: Enable target MySQL repository
ini_file:
  dest: /etc/yum.repos.d/mysql-community.repo
  section: "mysql55-community"
  option: enabled
  value: "1"

После этого уже можно установить MySQL

- name: Install MySQL
yum: name={{ item }} update_cache={{ update_yum_cache }} state=installed
with_items:
  - mysql
  - mysql-server

Vagrant — не обновляются файлы в расшаренной папке

Сетап такой: Windows 7 на хост машине и CentOS 7 на гостевой машине. Вагрант при таком сочетании выбрал механизм синхронизации расшаренных папок rsync (можно увидеть при старте виртуальной машины). Отлично, но rsync не умеет отслеживать изменения в файлах в реальном времени, только по явной команде. Эта команда Вагрантом вызывается только при старте или перезагрузке машины — vagrant up или vagrant reload соответственно.

Вручную можно вызвать так.

vagrant rsync

Или можно заставить rsync все-таки отслеживать изменения файлов, но тогда придется оставить процесс запущенным в терминале на все время работы с виртуальной машиной

vagrant rsync-auto

Подробности можно найти в блоге Вагранта.