Ansible: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 23: Строка 23:
  eval `ssh-agent`
  eval `ssh-agent`
  ssh-add ~/.ssh/manager
  ssh-add ~/.ssh/manager
5. Создадим каталог для пакетов рецептов (playbooks):
mkdir -p /etc/ansible/playbooks


= Подготовка клиента =
= Подготовка клиента =
Строка 49: Строка 52:
}</source>
}</source>


= Полезные рецепты =
Рецепты применяются командой:
ansible-playbook <имя файла>
== Прописывание репозитория ==
Файл: {{path|/etc/ansible/playbooks/repo.yml}}
<source lang="yaml">- 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'</source>
== Установка пакета ==


Файл: {{path|/etc/ansible/playbooks/install-ifcplugin.yml}}
<source lang="yaml">- hosts: local
  remote_user: root
  tasks:
  - name: Update cache and install ifcplugin
    apt_rpm:
      name: ifcplugin
      state: present
      update_cache: yes</source>


[[Категория:Управление конфигурациями]]
[[Категория:Управление конфигурациями]]

Версия от 14:03, 19 апреля 2018

Об Ansible

Ansible — система управления конфигурациями, написанная на Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения. Обычно используется для управления Linux-узлами, но Windows также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH или WinRM соединению.

Подготовка сервера

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