[英]How to install MongoDB with Ansible?
我是Ansible的初學者,現在我正在嘗試在Ubuntu 14.04主機上安裝MongoDB。 根據MongoDB安裝說明 ,手動過程如下:
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
模塊( 文檔 ); 在這個例子中我們將安裝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
[...]
創建你的mongo-ansible.yml文件並使用它:
# Install mongodb
---
- name: Add mongo ppa key
sudo: yes
apt_key: >
keyserver=hkp://keyserver.ubuntu.com:80
id=7F0CEB10
state=present
- name: Add mongo sources list
sudo: yes
lineinfile: >
line="deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse"
dest=/etc/apt/sources.list.d/mongodb.list
state=present
create=yes
- name: Install mongo
sudo: yes
apt: name=mongodb-org state=latest update_cache=yes
在ansible 2.0 sudo
棄用並block
添加。 所以對於現代語法和最新的mongodb:
---
# https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
- block:
- name: Import MongoDB public GPG Key
apt_key:
keyserver: keyserver.ubuntu.com
id: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
- name: Add MongoDB repository into sources list
apt_repository:
repo: deb http://repo.mongodb.org/apt/ubuntu {{ansible_distribution_release}}/mongodb-org/3.4 multiverse
state: present
- name: Install MongoDB package
apt:
name: mongodb-org
update_cache: yes
become: yes
使用shell命令無需執行此操作。 apt_key模塊可以添加密鑰, apt模塊可以用來安裝和lineinfile模塊可以保證文件中的特定行。
- name: get apt key
apt_key: keyserver=hkp://keyserver.ubuntu.com:80 id=EA312927
- name: add to mongodb-org-3.2.list
lineinfile: dest=/etc/apt/sources.list.d/mongodb-org-3.2.list line="deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse"
- name: install mongo db
apt: name=mongodb-org update_cache=yes
如果您需要先創建mongodb-org-3.2.list
那么您可以使用文件模塊。
- name: create mongodb-org-3.2.list
file: path=/etc/apt/sources.list.d/mongodb-org-3.2.list state=present
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.