Spec-Zone.ru › MariaDB

Выполнение mariadb-tzinfo-to-sql с Ansible

Для получения документации по утилите mariadb-tzinfo-to-sql, обратитесь к странице mysql_tzinfo_to_sql. Эта страница посвящена её запуску с помощью Ansible.

Установка или обновление пакета

Сначала необходимо установить mariadb-tzinfo-to-sql, если он доступен в нашей системе. Например, для установки на Ubuntu можно использовать эту задачу. Для других систем используйте соответствующее имя модуля и пакета.

- name: Update timezone info
  tags: [ timezone-update ]
  apt:
    name: tzdata
    state: latest
    install_recommends: no
  register: timezone_info

Эта задача устанавливает последнюю версию tzdata, если она ещё не установлена или не обновлена. Мы регистрируем переменные timezone_info, чтобы выполнить следующую задачу только в случае установки или обновления пакета.

Мы также указываем метку timezone-update, чтобы применить роль только для обновления таблиц часовых поясов.

Запуск скрипта

Следующая задача выполняет mariadb-tzinfo-to-sql.

- name: Move system timezone info into MariaDB
  tags: [ timezone-update ]
  shell: >
    mysql_tzinfo_to_sql /usr/share/zoneinfo \
      | grep -v "^Warning" \
      | mysql --database=mysql
  when: timezone_info.changed

Мы используем модуль shell для запуска команды. Запуск команды таким способом не является идемпотентным, поэтому мы задаём when: timezone_info.changed, чтобы запустить её только при необходимости. Могут быть сгенерированы некоторые предупреждения, поэтому мы направляем вывод mysql_tzinfo_to_sql в grep для фильтрации предупреждений.

Использование Galera

Если мы используем Кластер MariaDB Galera, нам нужно обновить таблицы часовых поясов только на одном узле, так как другие узлы будут реплицировать изменения. Для удобства мы можем выполнить эту операцию на первом узле. Если имена хостов узлов определены в списке, называемом cluster_hosts, мы можем проверить, является ли текущий узел первым следующим образом:

  when: timezone_info.changed and inventory_hostname == cluster_hosts[0].hostname

Контент первоначально предоставлен Vettabase Ltd.

Содержание, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/running-mariadb-tzinfo-to-sql-with-ansible/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API