puppet连载19:搭建mongodb

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: cd /puppet/softwget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.

cd /puppet/soft
wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.2.9.tgz
mkdir -p /etc/puppet/modules/linuxmongodb/{manifests,files,templates}


写配置文件

vi /etc/puppet/modules/linuxmongodb/templates/mongodb-3.2.9.conf.erb
dbpath=/data/mongodb-3.2.9/db
logpath=/data/mongodb-3.2.9/logs/mongodb.log
logappend = true
port=<%= real_mongodb_port %>
fork=true
auth=true
journal=true
quiet=true


写启动脚本

vi /puppet/soft/mongodb-3.2.9.sh

!/bin/bash

chkconfig:2345 90 60

description:mongodb star stop

. /etc/rc.d/init.d/functions

servicename=/data/mongodb-3.2.9/bin/mongod
serviceconfig=/data/mongodb-3.2.9/mongodb.conf

if [ ! -f $servicename ];then
exit 6;
fi

if [ ! -f $serviceconfig ];then
exit 7;
fi

case 1 in start)servicename -f serviceconfig ;; stop) pkill mongod ;; restart) pkill mongod &&servicename -f serviceconfig ;; status) RETVAL=`ps aux|grep "servicename -f serviceconfig"|grep -Ev "grep|color"|wc -l` if [RETVAL -ge 1 ]; then
echo 'running'
exit 0
else
echo 'stopped'
fi
exit 1
;;
*)
echo "Usage: $0 {start|stop|restart|status|force-reload}"
exit 2
esac

exit $?

vim /etc/puppet/modules/linuxmongodb/manifests/init.pp
class linuxmongodb::mongodb329 {

real_mongodb_port=mongodb_port ? { '' => '27017',default => $mongodb_port }

exec {"/datamongodb":
command => "mkdir /data",
creates => "/data",
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
}

file {"/data/mongodb-linux-x86_64-3.2.9.tgz":
source => "puppet:///soft/mongodb-linux-x86_64-3.2.9.tgz",
ensure => file,
mode => 755,owner => root,group => root,
require => [Exec["/datamongodb"],File["/etc/init.d/mongodb"]],
notify => Exec["tar mongodb-linux-x86_64-3.2.9.tgz"],
}

file {"/etc/init.d/mongodb":
source => "puppet:///soft/mongodb-3.2.9.sh",
ensure => file,
mode => 755,owner => root,group => root,
}

exec {"tar mongodb-linux-x86_64-3.2.9.tgz":
command => "tar zxvf mongodb-linux-x86_64-3.2.9.tgz && mv /data/mongodb-linux-x86_64-3.2.9 /data/mongodb-3.2.9 && mkdir -p /data/mongodb-3.2.9/{db,logs}",
path => ["/usr/bin","/usr/sbin","/sbin","/bin"],
cwd => "/data",
refreshonly => true,
notify => Exec["firewallmongodbport"],
}

exec {"firewallmongodbport":
command => "firewall-cmd --add-port=$real_mongodb_port/tcp --permanent && firewall-cmd --reload",
path => ["/usr/sbin","/usr/bin","/bin","/sbin"],
refreshonly => true,
}

file {'/data/mongodb-3.2.9/mongodb.conf':
ensure => file,
mode => 755,owner => root,group => root,
content => template("/etc/puppet/modules/linuxmongodb/templates/mongodb-3.2.9.conf.erb"),
backup => '.bak',
notify => [Service["mongodb"],Exec["firewallmongodbport"]],
require => Exec["tar mongodb-linux-x86_64-3.2.9.tgz"],
}

service {"mongodb":
ensure => running,
hasrestart => true,
provider => init,
start => "/etc/init.d/mongodb start",
stop => "/etc/init.d/mongodb stop",
restart => "/etc/init.d/mongodb restart",
status => "/etc/init.d/mongodb status",
}
}

-------------------------调用----------------------------------------
node 'huangat-test' {
$mongodb_port = 27017
include linuxmongodb::mongodb329
}

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
存储 NoSQL Linux
玩转MongoDB—搭建MongoDB集群
如题,本次玩转MongoDB我们从搭建集群开始,话说MongoDB一共有三种搭建集群的方式,但是由于版本更新,据说在4.0版本之后第一种方式,也就是主从复制的方式被遗弃掉了,大概是因为这种方式的效率不高吧,因为目前我们使用的是5.x版本,因此就不花时间讲解第一种方式了,在其他的文章上摘录了一下,可供大家参考。重点还是要放在后两种。
577 0
玩转MongoDB—搭建MongoDB集群
|
存储 运维 监控
ELK搭建(十一):搭建MongoDB运行情况监控平台
mongoDB作为基于磁盘的非关系型数据库,JSON格式数据存储方式,具有优秀的查询效率。越来越多的场景使用到了MongoDB。在生产运维中,更需要我们能够实时的掌握mongo的运行情况,以方便我们数据库运行问题做出及时的调整和补救。
269 0
ELK搭建(十一):搭建MongoDB运行情况监控平台
|
存储 NoSQL 前端开发
vue2全家桶+koa2+mongodb搭建一个简单伪全栈博客
本来不想推的,看到github上有个项目很简单,都有300 star,推推看咯。
vue2全家桶+koa2+mongodb搭建一个简单伪全栈博客
|
NoSQL 中间件 MongoDB
后端小白的我,是如何成功搭建 express+mongodb 的简洁博客网站后端的
后端小白的我,是如何成功搭建 express+mongodb 的简洁博客网站后端的
215 0
|
存储 NoSQL MongoDB
MongoDB-通过docker搭建一个用来练习的mongodb数据库
目前所在的公司,有部分数据是存储在MongoDB中的,而且目前今后的工作可能会偏向于验证数据,因此需要掌握对这个数据库的一些基本用法,怕有些操作到时候不敢直接在公司数据库上进行操作,先在自己服务器上学习一下基本的用法。
MongoDB-通过docker搭建一个用来练习的mongodb数据库
|
Linux Docker 容器
Centos7基于Docker搭建mongodb
Centos7基于Docker搭建mongodb
539 0
Centos7基于Docker搭建mongodb
|
域名解析 NoSQL Shell
如何快速搭建免费云上 MongoDB 副本集群
本文将为大家介绍如何在云上快速搭建免费的 MongoDB 副本集群。
921 0
如何快速搭建免费云上 MongoDB 副本集群
|
NoSQL atlas MongoDB
|
存储 NoSQL 数据库
mongodb分布式集群搭建手记
一、架构简介 目标 单机搭建mongodb分布式集群(副本集 + 分片集群),演示mongodb分布式集群的安装部署、简单操作。 说明 在同一个vm启动由两个分片组成的分布式集群,每个分片都是一个PSS(Primary-Secondary-Secondary)模式的数据副本集; Config副本集采用PSS(Primary-Secondary-Secondary)模式。
7978 0