使用脚本添加 GPG 密钥和存储库列表

使用脚本添加 GPG 密钥和存储库列表

我目前需要在多个系统上安装 elasticstack,并希望通过 bash 脚本调用它。安装 elasticsearch 的两个步骤是添加 GPG 密钥,然后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

当尝试创建此操作的脚本时,它似乎只是挂起了。我假设这是由于命令管道造成的。所以我的问题是如何将这些行添加到 bash 脚本中,以便我能够毫无问题地运行它?

答案1

sudo是脚本中通常不使用的命令(请参阅如何在脚本内运行“sudo”命令?),您最好以 root 身份运行整个脚本。您的脚本将是

#!/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

相关内容