Ansible: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 71: | Строка 71: | ||
- name: Add extra repository | - name: Add extra repository | ||
shell: apt-repo add 'rpm http://10.10.3.77/repo/extra x86_64 extra'</source> | shell: apt-repo add 'rpm http://10.10.3.77/repo/extra x86_64 extra'</source> | ||
{{Note|Используется [http://docs.ansible.com/ansible/latest/modules/shell_module.html модуль shell] и программа {{cmd|apt-repo}}.}} | |||
== Установка пакета == | == Установка пакета == | ||
Строка 83: | Строка 85: | ||
state: present | state: present | ||
update_cache: yes</source> | update_cache: yes</source> | ||
{{Note|Используется [http://docs.ansible.com/ansible/latest/modules/apt_rpm_module.html модуль apt_rpm].}} | |||
[[Категория:Управление конфигурациями]] | [[Категория:Управление конфигурациями]] |
Версия от 14:06, 19 апреля 2018
Об Ansible
Ansible — система управления конфигурациями, написанная на Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения. Обычно используется для управления Linux-узлами, но Windows также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH или WinRM соединению.
- Веб-сайт: https://www.ansible.com
- Пакет в Sisyphus: https://packages.altlinux.org/ru/Sisyphus/srpms/ansible
- Связанные пакеты: alterator-mass-management
Подготовка сервера
1. Устанавливаем ansible:
apt-get install ansible
2. Прописываем управляемые компьютеры в группу (local). В файл /etc/ansible/hosts требуется добавить:
[local] 10.10.3.77
3. Так как управление будет осуществляться через ssh по ключам, создаём ключ SSH:
ssh-keygen -t ed25519 -f ~/.ssh/manager
Пароль ключа можно оставить пустым.
4. Добавить ключ на сервере:
eval `ssh-agent` ssh-add ~/.ssh/manager
5. Создадим каталог для пакетов рецептов (playbooks):
mkdir -p /etc/ansible/playbooks
Подготовка клиента
1. Устанавливаем необходимые модули:
apt-get install python-module-yaml python-module-jinja2
2. Включаем и запускаем службу sshd:
chkconfig sshd on service sshd start
3. Размещаем публичную часть созданного на сервере ключа пользователю root (в модуле Администратор или вручную добавить содержимое файла manager.pub в /etc/openssh/authorized_keys/root.
4. Проверим доступ по ключу с сервера:
ssh root@10.10.3.77
Проверка доступности
Используем модуль «ping»:
# ansible -m ping local
10.10.3.77 | SUCCESS => {
"changed": false,
"failed": false,
"ping": "pong"
}
Полезные рецепты
Рецепты применяются командой:
ansible-playbook <имя файла>
Прописывание репозитория
Файл: /etc/ansible/playbooks/repo.yml
- hosts: local
remote_user: root
tasks:
- name: Remove all repositories
shell: apt-repo rm all
- name: Add official mirror
shell: apt-repo add http://10.10.3.77/repo/p8
- name: Add official mirror with arepo
shell: apt-repo add 'rpm http://10.10.3.77/repo/p8 x86_64-i586 classic'
- name: Add extra repository
shell: apt-repo add 'rpm http://10.10.3.77/repo/extra x86_64 extra'
Установка пакета
Файл: /etc/ansible/playbooks/install-ifcplugin.yml
- hosts: local
remote_user: root
tasks:
- name: Update cache and install ifcplugin
apt_rpm:
name: ifcplugin
state: present
update_cache: yes