Добавлена роль repo для автоматического добавления репозиториев
- Создана новая роль repo для добавления репозиториев на все ОС - Добавлена поддержка Docker, PostgreSQL, Elasticsearch, Patroni репозиториев - Реализована специальная поддержка российских дистрибутивов: - Astra Linux: добавлены репозитории Lab50 и debian-archive-keyring - Alt Linux: добавлены репозитории Sisyphus (alt-sisyphus, classic, contrib) и Autoimports - Обновлена документация README.md с информацией о новой роли - Обновлен .ansible-lint для подавления необходимых правил - Автор: Сергей Антропов, https://devops.org.ru
This commit is contained in:
96
roles/repo/tasks/debian.yml
Normal file
96
roles/repo/tasks/debian.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
# Задачи для Debian/Ubuntu
|
||||
# Автор: Сергей Антропов
|
||||
# Сайт: https://devops.org.ru
|
||||
|
||||
- name: Установить необходимые пакеты для работы с репозиториями
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- ca-certificates
|
||||
- curl
|
||||
- gnupg
|
||||
- lsb-release
|
||||
state: present
|
||||
update_cache: yes
|
||||
allow_unauthenticated: no
|
||||
force_apt_get: yes
|
||||
|
||||
- name: Создать директорию для GPG ключей
|
||||
ansible.builtin.file:
|
||||
path: /usr/share/keyrings
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Получить и добавить Docker GPG ключ
|
||||
ansible.builtin.shell: |
|
||||
curl -fsSL {{ docker_gpg_url }} | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
args:
|
||||
creates: /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Добавить репозиторий Docker для {{ os_version_id }}
|
||||
ansible.builtin.apt_repository:
|
||||
repo: "{{ debian_repos[os_version_id]['docker_repo'] }}"
|
||||
state: present
|
||||
filename: docker-ce
|
||||
when: debian_repos is defined and os_version_id in debian_repos
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Получить и добавить PostgreSQL GPG ключ
|
||||
ansible.builtin.shell: |
|
||||
curl -fsSL {{ postgresql_gpg_url }} | gpg --dearmor -o /usr/share/keyrings/postgresql.gpg
|
||||
args:
|
||||
creates: /usr/share/keyrings/postgresql.gpg
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Добавить репозиторий PostgreSQL для {{ os_version_id }}
|
||||
ansible.builtin.apt_repository:
|
||||
repo: "{{ debian_repos[os_version_id]['postgresql_repo'] }}"
|
||||
state: present
|
||||
filename: postgresql
|
||||
when: debian_repos is defined and os_version_id in debian_repos
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Получить и добавить Elasticsearch GPG ключ
|
||||
ansible.builtin.shell: |
|
||||
curl -fsSL {{ elasticsearch_gpg_url }} | gpg --dearmor -o /usr/share/keyrings/elasticsearch.gpg
|
||||
args:
|
||||
creates: /usr/share/keyrings/elasticsearch.gpg
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Добавить репозиторий Elasticsearch для {{ os_version_id }}
|
||||
ansible.builtin.apt_repository:
|
||||
repo: "{{ debian_repos[os_version_id]['elasticsearch_repo'] }}"
|
||||
state: present
|
||||
filename: elasticsearch
|
||||
when: debian_repos is defined and os_version_id in debian_repos
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Получить скрипт установки Patroni repository для Debian/Ubuntu
|
||||
ansible.builtin.get_url:
|
||||
url: "https://packagecloud.io/install/repositories/patroni/patroni/script.deb.sh"
|
||||
dest: /tmp/patroni-repo-install.sh
|
||||
mode: '0755'
|
||||
|
||||
- name: Запустить скрипт установки Patroni repository
|
||||
ansible.builtin.command: bash /tmp/patroni-repo-install.sh
|
||||
args:
|
||||
creates: /etc/apt/sources.list.d/patroni_patroni.list
|
||||
notify: "update apt cache"
|
||||
|
||||
- name: Очистить временный файл установки Patroni
|
||||
ansible.builtin.file:
|
||||
path: /tmp/patroni-repo-install.sh
|
||||
state: absent
|
||||
|
||||
- name: Обновить кэш пакетов после добавления всех репозиториев
|
||||
ansible.builtin.apt:
|
||||
update_cache: yes
|
||||
cache_valid_time: 0
|
||||
|
||||
- name: Выполнить обновление пакетов
|
||||
ansible.builtin.apt:
|
||||
upgrade: dist
|
||||
update_cache: yes
|
||||
autoremove: yes
|
||||
autoclean: yes
|
||||
Reference in New Issue
Block a user