The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Генерация конфигурации клиента Open..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Генерация конфигурации клиента Open..."  +/
Сообщение от auto_tips (??), 24-Фев-20, 14:24 
Часть на работе приходится разыскивать серверы, грепать из inventory.ini. Но почему бы Ansible не позаботится о нас. Настраиваем генерацию ~/.ssh/config из inventory.ini:

   cat ssh-config.yml:
   ---
   - name: Generate ssh client configuration from ansible inventory
     hosts: localhost
     connection: local
     gather_facts: no
     vars:
       title: "EasyConfig by Ansible"
       ssh_config_path: ssh_config.txt
     tasks:
       - name: ensure config for each host of inventory exist
         template: src="ssh_config.j2" dest="{{ ssh_config_path }}"
         when: ssh_config_path != ""


   cat ssh-config.j2 :
      #### {{ title }} Begin ####
  
   {% for host in groups.all | sort() | list %}
  
   {% if host != "localitem" and host != "127.0.0.1" and host != "localhost" %}
   Host {{hostvars[host].inventory_hostname}}
   {% if hostvars[host].ansible_host is defined and hostvars[host].ansible_host != "" %}  HostName {{hostvars[host].ansible_host}}
   {% else %}  HostName {{hostvars[host].inventory_hostname}}
   {% endif %}
   {% if hostvars[host].ansible_ssh_port is defined %}  Port {{hostvars[host].ansible_ssh_port}}
   {% endif %}
   {% endif %}
   {% endfor %}
  
   # Defaults
   Host *
       User root
       Port 22

  
   #### {{ title }} End ####


Получившийся ssh_config.txt - внимательно осматриваем и добавляем (или нет)  к своему ~/.ssh/config.

Как профит имеем автокомплит по серверам (можно добавить префикс), не тратим время на grep hostname Passwords_Hosts.txt можем прямо из Ansible управлять процессом.

URL:
Обсуждается: https://www.opennet.ru/tips/info/3130.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "еще немного автокомплита"  +1 +/
Сообщение от Максим (??), 24-Фев-20, 14:24 
обычно автокомплит еще хорошо работает из ~/.ssh/known_hosts, но для этого нужно отключить хеширование имен хостов в

~/.ssh/config

HashKnownHosts no

так же, на относительно свежей версии клиента можно попоросить задавать меньше вопросов:
StrictHostKeyChecking accept-new

Ответить | Правка | Наверх | Cообщить модератору

5. "еще немного автокомплита"  +/
Сообщение от Аноним (5), 02-Мрт-20, 18:21 
> StrictHostKeyChecking accept-new

Спасибо, добавил себе.

Ответить | Правка | Наверх | Cообщить модератору

3. "Генерация конфигурации клиента OpenSSH из inventory.ini в An..."  +/
Сообщение от Аноним (3), 27-Фев-20, 10:09 
что только люди не делают, только бы не генерить актокомплиты на лету. grepнуть  $ANSIBLE_HOME/hosts/* отформатировать и подгрузить в виде алиасов.
1 строка в .bashrc вместо всего текста выше.

Но нет, awk это слишком сложно.

Ответить | Правка | Наверх | Cообщить модератору

4. "Генерация конфигурации клиента OpenSSH из inventory.ini в An..."  +/
Сообщение от Аноним (5), 02-Мрт-20, 18:20 
Такое приемлемо только на SSD. Да и перемещение этого самого ansible_home всё сломает.
Ответить | Правка | Наверх | Cообщить модератору

6. "Генерация конфигурации клиента OpenSSH из inventory.ini в An..."  +/
Сообщение от Ano (?), 11-Мрт-20, 01:55 
Вы таки знаете, я и на awk такое делал, оно конечно все здорово, классно, но всякие сложные ситуации, типо:
" вот на эти хосты надо через два Jump хоста ", а вот тут надо юзера поправить, а вот тут...


Короч, когда в руках Ансибл, все кажется гвоздями да, по сути, так и есть

Раньше выходил из ситуации еще вот так

grep --color ${@} ${REPO_PATH}/00-hosts.ini | grep -vE '(^\[|^;)' | sed 's/ansible_host=//g'


Но это если у тебя 1 ансибл и 1 репа с хостами. просто поиска порой хватает ( когда хостов много, но еще не очень , <100 )

p.s. не очень представляю себе, как башом/awk парсить переменные хоста в ансибле (групповые и т д ) да и надо ли ?  - ансибл он ведь как раз сильвер-буллет, (ну или булщет, смотр какого вы года рождения)

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру