Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

Ansible + FreeBSD



Ansible + FreeBSD


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

Процитируем описание с одного из форумов:
К примеру у вас есть 100 серверов и вам нужно установить одинаковую конфигурацию (debian 9, postgres, redis, mongodb).
С помощью этого инструмента это занимает очень мало времени. Не надо подключаться к каждому серверу, инсталировать и настраивать
конфиг для каждой программы. Достаточно написать скрипт и он все сделает за вас, на всех серверах.


Дано
Сервер с ansible: bsd1 - 10.0.2.5
Нода: bsd2 - 10.0.2.8


На bsd1 сделаем алиас bsd2 на ip 10.0.2.8
vi /etc/hosts
10.0.2.8 bsd2


Установка ansible для питона версии 3.6 (только на сервере, на клиенте не нужно)

pkg install py36-ansible

Создаем каталог и копируем дефолтные конфиги:
mkdir /usr/local/etc/ansible
cp /usr/local/share/examples/py36-ansible/hosts /usr/local/etc/ansible/
cp /usr/local/share/examples/py36-ansible/ansible.cfg /usr/local/etc/ansible/


Генерируем ssh ключи
ssh-keygen

Скопируйте открытый ключ сервера с ansible на все узлы, к которым будут идти обращения
cat ~/.ssh/id_rsa.pub

По путям на нодах в файл
~/.ssh/authorized_keys


Можно с сервера дать такую команду
scp /root/.ssh/id_rsa.pub 10.0.2.8:/root/.ssh/authorized_keys


На ноде разрешите доступ для root
vi /etc/ssh/sshd_config
PermitRootLogin yes

/etc/rc.d/sshd restart


И проверьте доступ, ввода палоя не должно потребоваться
ssh root@10.0.2.8


Настройка ansible


Ansible ищет Python в /usr/bin/, но присутствует в /usr/bin/local, создадим мягкую ссылку для Python
pkg install python36
ln -s /usr/local/bin/python3.6 /usr/bin/python


Не запрашивать подтверждение ssh ключей (этот шаг я не делал, но возможность такая - есть)
vi /usr/local/etc/ansible/ansible.cfg
host_key_checking = False


Установка переменной для всех групп и указание хоста и его ip
vi /usr/local/etc/ansible/hosts

[all:vars]
from_ansible_python_path=/usr/local/bin/python3.6

[nodes]
bsd2 ansible_ssh_host=10.0.2.8
#bsd2 ansible_ssh_private_key_file=/root/.ssh/id_rsa.pub


Проверьте доступность этих узлов с помощью следующей команды
ansible-3.6 -m ping all

Мы можем использовать другие команды для проверки определенного узла
ansible-3.6 -m ping bsd2
ansible-3.6 -m raw -a 'df' bsd2

 

При получении ошибки типа
bsd2 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: @@@@@ WARNING: UNPROTECTED PRIVATE KEY FILE!
@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/root/.ssh/id_rsa.pub' are too open.
is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key \"/root/.ssh/id_rsa.pub\": bad permissions\r\nPermission denied (publickey,keyboard-interactive).",
"unreachable": true

Делаем права на сервере
chmod 600 /root/.ssh/id_rsa.pub

 

Теперь создадим конфигурацию для хоста bsd2
Будет устанавливаться и стартовать nginx
Обратите внимание на цикл перебора, можно было указать имя пакета в команде, но завели их в item
Т.е. типа того `pkg: ['nginx', 'py36-certbot-nginx']` (цикл - устаревшая команда)
Тут используется модуль pkgng для freebsd (yum например для centos или apt для debian)

cd /usr/local/etc/ansible/

vi bsd2_web.yml

 

Запускаем выполнение задач для хоста bsd2
ansible-playbook-3.6 bsd2_web.yml


Проверяем
curl http://10.0.2.8
Thank you for using nginx.

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru