Base de Conhecimento

2. Основные команды Ansible

 

Debug  Ansible

Данный опус является частью единого цикла заметок o CLI.  Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.).  К сожалению, указать все источники точно не представляется  возможным!  По этому,  в конце заметки,  будет указана ссылка только  на основной источник.  

 

Нужна консультация или помощь в решении IT вопроса? Пожалуйста, в таком случае  заполните форму запроса на Sytes.ru!

В статье предполагается, что сервер терминалов уже прошел предварительную настройку и работает. Все скриншоты соответствуют Windows Server 2016.

Cчитается, что Ansible это крутой инструмент, который может автоматизировать работу, как на сетевом оборудовании так и на серверах. Считается что использовать его очень просто: один раз настроил мастера, подцеепил к нему ноды, разнес их по групаам написал(или позаимствовал у кого-то под них плейбуки) и начал радоваться результатам своей    успешно  автоматизированной рутинной работы. 

На деле же все выглядит несколько сложнее. Допустим, установка  ансибла каких-либо трудностей не вызывает, а вот настройка явно не из самых простых.  Особенно если на всех серверах нужно организовать доступ по ключу и предполагается использовать для управления нодами учетую запись без привилегий рута.

Важный нюанс. Про детали настройки хостов под указанную модель, информцию можно найти тут:  sudoers-file-ru.

Пред тем как начать выполнять что либо на нескольких нодах одновременно нужно провести инвентаризацию ховтов в сети и проверить связь между ними(по дефолту эта информация хранится в файле /etc/ansible/hosts : 

Вывод команды:  ansible-inventory --list -y позволяет получить актуальную информацию о хостах и группах:

ansible-inventory --list -y

Вывод:

all:

  children:

    ungrouped: {}

    webservers:

      hosts:

        master.vdssytes.ru:

          ansible_ssh_host: master.vdssytes.ru

          ansible_ssh_user: neroot

        noda1.vdssytes.ru:

          ansible_ssh_host: noda1.vdssytes.ru

          ansible_ssh_user: neroot

 

 

Вывод команды:  ansible-inventory --list -y    c ключем  -i позволяет указать другой файл хостов   /etc/ansible/hosts2  :

ansible-inventory --list -y -i /etc/ansible/hosts2 

Вывод:

all:

  children:

debian:

      hosts:

        master.vdssytes.ru:

          ansible_ssh_host: master.vdssytes.ru

          ansible_ssh_user: neroot   

centos:

      hosts:

        noda1.vdssytes.ru:

          ansible_ssh_host: noda1.vdssytes.ru

          ansible_ssh_user: neroot

    

    ungrouped: {}

 

 

После того как файл hosts  успешно заполнен, нужно проверить связь между всеми нодами:

sudo ansible -m ping all

Проверяем связь между нодами из группы "webservers":

 sudo ansible -m ping "webservers"

Проверяем  есть ли на всех нодах группы группы "webservers"  доступ в сеть и коректность настройки их DNS( на примере домена ya.ru)

sudo ansible -m command -a "ping -w 5 ya.ru" "webservers"

Проверяем связь Аnsible c участниками группы vpn :

sudo ansible -m ping vpn

Можем узнать версию операционной системы для centos или debian:

sudo ansible vpn -m shell -a 'cat /etc/redhat-release' 
sudo ansible vpn -m shell -a 'cat /etc/debian_version'

sudo ansible vpn -m shell -a 'uname -a'

Аnsible позволяет узнать всю общую информацию о всех серверах в группе vpn

sudo ansible vpn  -m setup

Аnsible позволяет узнать ip-адреса всех хостов

sudo ansible -i hosts -m setup -a 'filter=ansible_all_ipv4_addresses' all

Аnsible позволяет узнать сетевые настройки всех хостов

sudo ansible -i hosts -m setup -a 'filter=ansible_default_ipv4' all

Аnsible позволяет узнать тип  ОС всех хостов

sudo ansible -i hosts -m setup -a 'filter=ansible_distribution' all

Аnsible позволяет узнать версию ОС для всех хостов

sudo ansible -i hosts -m setup -a 'ansible_distribution_version' all

Предупреждение : Подробнее  про то как работает ANSIBLE  и его модули , утилиты  и плагины можно почитать здесь.

 

Аnsible позволяет узнать сколько свободной  памяти (FREE) доступно на всех серверах: 

sudo ansible -i hosts -m setup -a 'filter=ansible_memtotal_mb' all

Аnsible позволяет узнать сколько и какой памяти (RAM)  доступно на  всех хостах

sudo ansible -i hosts -m setup -a 'ansible_memory_mb' all

Аnsible позволяет узнать сколько (CPU) доступно  на  всех хостах

sudo ansible -i hosts -m setup -a 'filter=ansible_processor' all

Аnsible позволяет узнать всю общую информацию о всех серверах: 

sudo ansible all  -m setup

Важно! 

 

. В файле ansible.cfg    можно задавать множество параметров для пользователя, например расположение файла #inventory      = /etc/ansible/host 
Путь до ssh ключа и прочее. 

 

Пример содержимого файла:

cat ansible.cfg 

#[defaults]

#inventory      = /etc/ansible/hosts

#host_key_checking = False

#retry_files_enabled = False

#deprecation_warnings = False

 

[defaults]

inventory = hosts

remote_user = root

private_key_file = ~/.ssh/id_rsa

host_key_checking = False

retry_files_enabled = False

roles_path = ./roles

 

[diff]

always = false

context = 5

 

 

Linux SED

В этой статье мы рассмотрим sed, известный потоковый редактор, и поделимся 15 советами по его использованию для достижения целей, упомянутых ранее.

 

 

Если у вас есть профессиональный интерес в расширении данной статьи – заполните форму запроса!

Cпасибо автору!

Заметка распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

 

     Источник:

Конец! 

  • Ansible debug, Ansible command
  • 0 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

0. Install Ansible Debian10 buster

Настройка Ansible Пакеты Ansible 2.7 доступны в репозиториях Debian 10 по...

1. Установка ansible на Centos7

  Ansible  Ansible — система управления конфигурациями, написанная на Python, с использованием...

3. Примеры работы с модулями Ansible

0. Module Ansible Примеры работы с модулями Ansible!  Данный опус...