Ansible — это современный инструмент автоматизации с открытым исходным кодом, который упрощает настройку удаленных серверов и управление ими. Хотя другие инструменты автоматизации могут соответствовать удобству использования ansible, они часто слишком сложны, чем должен быть базовый инструмент автоматизации.
С другой стороны, Ansible прост и удобен в использовании для большинства пользователей. Он использует формат YAML для указания конфигураций сервера и задач, выполняемых на удаленных машинах. Он также предлагает отличную функцию безопасности, используя SSH в качестве режима аутентификации по умолчанию.
Однако в некоторых случаях вы, возможно, не настроили ключи SSH на удаленном хосте, и поэтому вам нужно явно указать имя пользователя и пароль.
Если это так, в этой статье будет обсуждаться создание базовых сценариев воспроизведения и их запуск на удаленном хосте, на котором не настроены ключи SSH.
Прежде чем вы сможете использовать ansible для управления удаленными машинами, вам необходимо установить его на свой компьютер, который действует как узел управления.
В моем примере мы покажем, как установить его на REHL/CentOS и Fedora, и в этом случае все, что мне нужно сделать, это использовать команду:
$ sudo dnf install ansible
Эта команда установит ansible на ваш компьютер, предоставив вам все инструменты для управления всеми вашими удаленными машинами из одного места. Следующим шагом является настройка файла хоста.
В ansible инвентарь — это файл, содержащий информацию о ваших удаленных хостах, которые будут находиться под управлением ansible. Хосты в файле инвентаризации могут быть организованы в группы и подгруппы и указаны либо с IP-адресом удаленного компьютера, либо с именем хоста.
Чтобы добавить или удалить хосты, отредактируйте файл, расположенный в /etc/ansible/hosts.
$ sudo vim /etc/ansible/hosts
Внутри файла hosts добавьте записи как:
[myservers] 192.168.0.20 192.168.0.13
Вышеупомянутое определяет группу, называемую myservers, и соответствующие им IP-адреса. Обязательно замените указанные выше IP-адреса на IP-адреса ваших хостов.
После настройки файла инвентаря лучше всего проверить, подключены ли ваши хосты к сети и могут ли они получать команды от ansible. Мы делаем это, вызывая модуль Ansible ping . На вашем доступном локальном узле используйте команду, показанную ниже:
$ ansible all -m ping -u ubuntu --ask-pass
Это будет использовать имя пользователя ubuntu и запрашивать пароль SSH. Не стесняйтесь менять имя пользователя на любого желаемого пользователя на удаленном компьютере. Если удаленный хост включен и вы указали правильный пароль SSH, вы должны увидеть ответ в следующем виде:
192.168.0.7 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "ping": "pong" }
Как вы можете видеть из приведенного выше примера, в ansible, чтобы указать имя пользователя и пароль, которые будут использоваться для ваших удаленных хостов, мы используем -u [имя пользователя] и –ask-pass в качестве пароля.
Например, чтобы использовать учетную запись root в качестве доступного входа в систему, используйте команду как:
$ ansible all -m ping -u root --ask-pass
В этой статье мы обсудили, как устанавливать и создавать доступные хосты. Мы также рассмотрели, как указать доступное имя пользователя и пароль в качестве режима аутентификации. Все это может пригодиться, если вы не настроили ключи SSH на удаленной машине.