Я нуждаюсь в установке elasticstack в нескольких системах в настоящее время и хотел бы вызвать это с помощью сценария удара. Два из шагов к установке elasticsearch должны добавить Ключ GPG и затем создать a sources.list
файл для репозитория.
При выполнении этого вручную в терминале эти команды передаются по каналу следующим образом:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
при попытке создать сценарий для этого действия это, кажется, просто зависает. Я предполагаю, что это происходит из-за каналов команды. Таким образом, мой вопрос состоял бы в том, как я могу добавить эти строки в сценарий удара так, чтобы я смог выполнить это без какой-либо проблемы?
sudo
команда, каждый обычно не использует в сценариях (см., Как я выполняю команду 'sudo' в сценарии?), Вы скорее запускаете целый скрипт как корень. Ваш сценарий затем был бы
#!/bin/bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" >>/etc/apt/sources.list.d/elastic-6.x.list
и необходимо сделать это исполняемым файлом с chmod +x /path/to/script
и выполненный это с:
sudo /path/to/script