Приветствую.Имею в работе 5-10 серверов на linux.
Переодический приходится между ними пересылать какие-то файлы.
Для этого приходится открывать между ними доступ по ssh-key.
Иногда приходится открывать еще доступ в фаерволле.
Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при передаче данных по scp.Вопрос: как все это можно упростить? Чтобы пересыл данных в разовых задачах между серверами перестал грузить мозг множеством действий. Спасибо.
> Приветствую.
> Имею в работе 5-10 серверов на linux.
> Переодический приходится между ними пересылать какие-то файлы.
> Для этого приходится открывать между ними доступ по ssh-key.
> Иногда приходится открывать еще доступ в фаерволле.
> Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при
> передаче данных по scp.
> Вопрос: как все это можно упростить? Чтобы пересыл данных в разовых задачах
> между серверами перестал грузить мозг множеством действий. Спасибо.Пиши все что нужно помнить в сценарии-скрипты и выбрасывай из головы.
> Пиши все что нужно помнитьадреса, пароли, явки на стикер, лепи на монитор
> и выбрасывай из головы
> Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при передаче данных по scp.DNS придумали для других целей, не смотри в эту сторону.
Переход на IPv6 решит ваши проблемы.
> Переход на IPv6 решит ваши проблемы.Зря стебетесь, башка не ведро с болтами.
> Переход на IPv6 решит ваши проблемы.Добавит массу новых, и нет, не решит.
> Приветствую.
> Имею в работе 5-10 серверов на linux.
> Переодический приходится между ними пересылать какие-то файлы.
> Для этого приходится открывать между ними доступ по ssh-key.
> Иногда приходится открывать еще доступ в фаерволле.
> Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при
> передаче данных по scp.
> Вопрос: как все это можно упростить? Чтобы пересыл данных в разовых задачах
> между серверами перестал грузить мозг множеством действий. Спасибо.Сделай алиасы в шелле, и да - вход только по ключам чтоб пароль не запоминать
> вход только по ключам чтоб пароль не запоминатьА пароль для ключей? Или и так сойдет?
Ansible
> Приветствую.
> Имею в работе 5-10 серверов на linux.
> Переодический приходится между ними пересылать какие-то файлы.
> Для этого приходится открывать между ними доступ по ssh-key.
> Иногда приходится открывать еще доступ в фаерволле.
> Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при
> передаче данных по scp.
> Вопрос: как все это можно упростить? Чтобы пересыл данных в разовых задачах
> между серверами перестал грузить мозг множеством действий. Спасибо.Чтобы не тратить время на фаерволлы, можно ходить через хост, через который подключаться по внутренней сети.
# .ssh/config
# у вас есть связность до этого хоста откуда угодно, а у хоста есть доступ во внутреннюю сетку
Host jumphost
Host 11.22.33.44
User user
IdentityFile ~/.ssh/id_ed25519Host company_app1
User root
IdentityFile ~/.ssh/id_ed25519
ProxyCommand /usr/bin/ssh login@jumphost HOSTALIASES=/etc/host.aliases /bin/nc %h %pв host.aliases любые сопоставления
company_app1 10.100.123.45
company_app1 shithole.company.comНа все хосты разбросать этот конфиг и ключ, который авторизован на jumphost. Сделать это можно заодно с прописыванием своего ключа. Это всё скриптуется.
Зато потом без ввода паролей можно лепить штуки типа `ssh company_app1` или `scp company_app1:/root/config company_app2:/root/`
Кручения педалей становится гораздо меньше, хотя вроде бы мелочь.Сопровождение и обновление конфигов можно через какую-нибудь систему управления конфигами делать. На практике делать это приходится редко и вполне можно это просто в баше в цикле делать простыми командами для каждого хоста.
>[оверквотинг удален]
> company_app1 10.100.123.45
> company_app1 shithole.company.com
> На все хосты разбросать этот конфиг и ключ, который авторизован на jumphost.
> Сделать это можно заодно с прописыванием своего ключа. Это всё скриптуется.
> Зато потом без ввода паролей можно лепить штуки типа `ssh company_app1` или
> `scp company_app1:/root/config company_app2:/root/`
> Кручения педалей становится гораздо меньше, хотя вроде бы мелочь.
> Сопровождение и обновление конфигов можно через какую-нибудь систему управления конфигами
> делать. На практике делать это приходится редко и вполне можно это
> просто в баше в цикле делать простыми командами для каждого хоста....много чего есть Ансибль например
>[оверквотинг удален]
>> company_app1 shithole.company.com
>> На все хосты разбросать этот конфиг и ключ, который авторизован на jumphost.
>> Сделать это можно заодно с прописыванием своего ключа. Это всё скриптуется.
>> Зато потом без ввода паролей можно лепить штуки типа `ssh company_app1` или
>> `scp company_app1:/root/config company_app2:/root/`
>> Кручения педалей становится гораздо меньше, хотя вроде бы мелочь.
>> Сопровождение и обновление конфигов можно через какую-нибудь систему управления конфигами
>> делать. На практике делать это приходится редко и вполне можно это
>> просто в баше в цикле делать простыми командами для каждого хоста.
> ...много чего есть Ансибль напримерАнсибл вроде как автоматизирует настройку чистых хостов? И как он поможет, если нужно что-то примитивное сделать, а в другой раз что-то совсем другое?
> Ансибл вроде как автоматизирует настройку чистых хостов?????
> И как он поможет, если нужно что-то примитивное сделать, а в другой раз что-то совсем другое?
Что Ansible скажешь, то он и будет делать. Все, что можно руками сделать по ssh, можно автоматизировать в Ansible. Применение оправдано, начиная с 4-5 хостов.
>> Ансибл вроде как автоматизирует настройку чистых хостов?
> ????
>> И как он поможет, если нужно что-то примитивное сделать, а в другой раз что-то совсем другое?
> Что Ansible скажешь, то он и будет делать. Все, что можно руками
> сделать по ssh, можно автоматизировать в Ansible. Применение оправдано, начиная с
> 4-5 хостов.Типичный случай: кое-кто не умеет писать на шелле, поэтому выбрал репозиторий и корявый код на ямле. И давай рассказывать сказки про автоматизировай.
> Типичный случай: кое-кто не умеет писать на шелле, поэтому выбрал репозиторий и
> корявый код на ямле. И давай рассказывать сказки про автоматизировай.Типичный случай: кое-кто не знает и не умеет ни хрена, но обязательно лезет высказать свое "экспертное" мнение
Ansible написан на Python
YAML - язык разметки, используется в Ansible для описания конфигураций
Зачем писать на ямле?
Через ансибль ад-хок запускаешь любую команду и она выполнится параллельно на группе серверов.ЗЫ: я не буду рассказывать про преимущества ИкК
ЗЫ: я не буду рассказывать про преимущества ИкК
ЗЫ: я не буду рассказывать про преимущества ИкК
ЗЫ: я не буду рассказывать про преимущества ИкК
ЗЫ: я не буду рассказывать про преимущества ИкК
ЗЫ: я не буду рассказывать про преимущества ИкК
есть еще mussh
https://packages.debian.org/ru/bullseye/mussh
> есть еще mussh
> https://packages.debian.org/ru/bullseye/musshКстати прикольно, сам по себе это shell скрипт умеет довольно мало. Но если его взять за пример, по можно писать свой велосипед, очень удобно.
> Приветствую.
> Имею в работе 5-10 серверов на linux.
> Переодический приходится между ними пересылать какие-то файлы.
> Для этого приходится открывать между ними доступ по ssh-key.
> Иногда приходится открывать еще доступ в фаерволле.
> Далее, еще приходится вспоминать и в ручную вводить IP нужного сервера при
> передаче данных по scp.
> Вопрос: как все это можно упростить? Чтобы пересыл данных в разовых задачах
> между серверами перестал грузить мозг множеством действий. Спасибо.Можно руками:
cat ./run.sh
#!/bin/bash
HOST=host
PORTS="10 20 30"
PASSWORD=passwd
echo $1
for port in $PORTS; do
echo "Connecting to $HOST $port"
run="ssh -p ${port} -C ${HOST}"
${run} 'bash -s' < ${1}
donecat ./reboot.sh
#!/bin/bash
PASSWORD=passwd
echo ${PASSWORD} | sudo -S sh -c 'reboot'run like
./run.sh reboot.sh
>[оверквотинг удален]
> echo "Connecting to $HOST $port"
> run="ssh -p ${port} -C ${HOST}"
> ${run} 'bash -s' < ${1}
> done
> cat ./reboot.sh
> #!/bin/bash
> PASSWORD=passwd
> echo ${PASSWORD} | sudo -S sh -c 'reboot'
> run like
> ./run.sh reboot.shили gnu parallel