我想通过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
答案 0 :(得分:3)
您可以将一个任务的结果(包括其标准输出)注册为变量,然后在以后的任务中使用它:
- name: Work out the distribution
command: lsb_release -sc
register: result
- name: Create source list file MongoDB
sudo: yes
lineinfile: >
line="deb http://repo.mongodb.org/apt/ubuntu {{ result.stdout }}/mongodb-org/3.2 multiverse"
dest=/etc/apt/sources.list.d/mongodb-org-3.2.list
state=present
create=yes
答案 1 :(得分:2)
Ansible中有apt_repository个模块:
- apt_repository:
repo: deb http://repo.mongodb.org/apt/ubuntu {{ ansible_distribution_release | lower }}/mongodb-org/3.2 multiverse
state: present