Установка файлов MariaDB .deb с помощью Ansible
Эта страница относится к операциям, описанным в Установке файлов MariaDB .deb. Обратитесь к этой странице для получения полного списка и объяснения задач, которые необходимо выполнить.
Здесь мы обсуждаем, как автоматизировать такие задачи с помощью Ansible. Например, здесь показано, как установить пакет или импортировать ключ GPG; но для обновленного списка необходимых пакетов и сервера ключей вы должны обратиться к Установке файлов MariaDB .deb.
Добавление репозиториев apt
- name: Add specified repository into sources list
ansible.builtin.apt_repository:
repo: deb [arch=amd64,arm64,ppc64el] http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic main
state: present
Если вы предпочитаете хранить информацию о репозитории в файле списка источников в репозитории Ansible, вы можете загрузить этот файл на целевые хосты таким образом:
- name: Create a symbolic link
ansible.builtin.file:
src: ./file/mariadb.list
dest: /etc/apt/sources.list.d/
owner: root
group: root
mod: 644
state: file
Обновление кэша репозитория
Оба модуля Ansible ansible.builtin.apt и ansible.builtin.apt_repository имеют атрибут update_cache. В ansible.builtin.apt он по умолчанию равен "no". Всякий раз, когда задача устанавливает его в 'yes', apt-get update выполняется на целевой системе. У вас есть три способа убедиться, что репозитории обновляются.
Первый — использовать ansible.builtin.apt_repository для добавления нужного репозитория, как показано выше. Таким образом, вам нужно беспокоиться только об обновлении репозиториев, если вы используете метод файла.
Второй — убедиться, что update_cache установлено в 'yes', когда вы устанавливаете репозиторий:
- name: Install foo
apt:
name: foo
update_cache: yes
Но если вы выполняете определенные задачи условно, этот вариант может быть не очень удобен. Поэтому третий вариант — явно обновить кэш репозитория как отдельную задачу:
- name: Update repositories
apt:
- update_cache: yes
Импорт ключа GPG MariaDB
Для импорта ключа GPG для MariaDB мы можем использовать модуль Ansible ansible.builtin.apt_key. Например:
- name: Add an apt key by id from a keyserver
ansible.builtin.apt_key:
keyserver: hkp://keyserver.ubuntu.com:80
id: 0xF1656F24C74CD1D8
Установка пакетов
Для установки пакетов Deb в систему:
- name: Install software-properties-common
apt:
name: software-properties-common
state: present
Чтобы убедиться, что установлена определенная версия, выполнив при необходимости апгрейд или даунгрейд:
- name: Install foo 1.0
apt:
name: foo=1.0
Для установки пакета или обновления его до последней версии используйте: state: latest.
Для установки нескольких пакетов одновременно:
- name: Install the necessary packages
apt:
pkg:
- pkg1
- pkg2=1.0
Если все ваши серверы работают на одной системе, вы всегда будете использовать ansible.builtin.apt, и имена и версии пакетов будут одинаковыми для всех серверов. Но предположим, что у вас есть некоторые серверы, работающие на системах семейства Debian, а другие — на системах семейства Red Hat. В этом случае вам может быть удобно использовать два разных файла задач для двух разных типов систем. Для включения соответствующего файла для системы целевого хоста:
- include: mariadb-debian.yml
when: "{{ ansible_facts['os_family'] }} == 'Debian'
Переменные, которые вы можете использовать для выполнения задач, связанных с соответствующей системой:
Также существует независимый от системы модуль пакетов, но если имена пакетов зависят от целевой системы, использование его может быть малоэффективным.
См. также
Контент первоначально предоставлен Vettabase Ltd.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/installing-mariadb-deb-files-with-ansible/