linux - 如何使用 Ansible 安装 MongoDB?

标签 linux mongodb ansible

我是 Ansible 的初学者,我现在正尝试在 Ubuntu 14.04 主机上安装 MongoDB。根据MongoDB installation instructions手动过程如下:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update
sudo apt-get install -y mongodb-org

我想我可以使用 Ansible shell 模块运行它,但是由于 4 行中的第 2 行会不断向 mongodb-org-3.6.list 文件中添加新行,我猜这是不是正确的方法。

有谁知道使用 Ansible 执行此操作的合乎逻辑的方法是什么?欢迎所有提示!

最佳答案

在那种情况下,您甚至不必弄乱 lineinfile。使用 apt_repository 模块(documentation);在此示例中,我们将安装 MongoDB 3.4:

  [...]
  tasks:
   - name: Add Mongo packages repo
     apt_key: id=2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5  keyserver=keyserver.ubuntu.com
   - name: add repo itself
     apt_repository: repo='deb http://repo.mongodb.org/apt/ubuntu {{ansible_distribution_release}}/mongodb-org/3.4 multiverse' state=present                                      
   - name: install packages
     apt: pkg=mongodb-org state=present
  [...]

关于linux - 如何使用 Ansible 安装 MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568848/

相关文章:

linux - 当从另一个 sed 命令通过管道传输时,sed 不工作

linux - syslog-ng 多个目的地

azure - Ansible 安装所有必需的 Azure 模块

loops - 带有循环的 Ansible include_tasks 无法检查条件

r - x86_64-conda_cos6-linux-gnu-ld : cannot find -lc

c - about/proc读写函数

mongodb - 通过 Azure 数据工厂增量加载 MongoDB 数据

AWS 实例上的 MongoDB,原因 : errno:61 Connection refused

javascript - Mongoose 加密

ansible - 检查哪些主机在 ansible 中失败了 playbook