【发布时间】:2017-10-24 15:23:15
【问题描述】:
我想通过 Ansible playbook 安装 MongoDB,我按照以下说明进行操作: https://www.howtoforge.com/tutorial/install-mongodb-on-ubuntu-16.04/
关于“步骤 2 - 创建源列表文件 MongoDB”的步骤
我应该使用:
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
当它使用以下命令获取 ubuntu 版本时:
$(lsb_release -sc)
如何通过 yml 文件执行并通过 ansible palybook 运行它? 我使用了下面的 yml 命令,但由于我在脚本中使用了 shell 命令“$(lsb_release -sc)”,所以它不起作用并给了我错误
- name: Create source list file MongoDB
sudo: yes
lineinfile: >
line="deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse"
dest=/etc/apt/sources.list.d/mongodb-org-3.2.list
state=present
create=yes
【问题讨论】:
-
使用
lineinfile总是一个危险信号,您可以而且应该使用template轻松做到这一点。此外,您可以使用{{ansible_distribution_release|lower }}代替 lsb_release。