I've Googled for this, but the comments leave me rather confused and
there are different flavors (?) of Chef like Vagrant that appear to
have different answers.
Before I can use Chef to execute MongoDB shell commands in later
recipes that perform specific, crucial operations like initiate a
replica set, add an arbiter, add a shard, enable sharding, turn
sharding on for a database or collection, etc., I need my MongoDB
mongod or mongos instance to come in its final form.
I had first assumed I'd just have to bounce a given node, knife a
different definition and roles to it, then re-run chef-client to get
this work done, but I figured Chef was way beyond that and I looked
for reboot, restart, etc. and found this.
My set-up is simple:
- one host running the Chef server
- n hosts running the Chef client
- no magic stuff like Vagrant, Solo or any other capitalized
things I don't know about or understand yet.
In short, I'm writing some recipes to mount my MongoDB cluster. (I'm
only interested in Ubuntu in my data center.) Please help me verify
that...
1. At the end of one recipe in which I use template to create the
MongoDB configuration file(s) that will cause MongoDB to be launched
the way I need it, I'll use:
template ...
.
.
.
notifies :restart, "service[ IP address/DNS name ]"
end
and that
2. Chef will restart MongoDB for the next recipe if I add the
following block before the end of my recipe after its finalized the
configuration file(s):
service IP address/DNS name do
provider Chef::Provider::Service::Upstart
action [ :enable, :start ]
end
This looks like sheer hocus-pocus. Is this how it's supposed to
work? Will it be able to pick up the very upstart configuration file
I just created (which may not be named
/etc/init/mongodb.conf
in every case)? In certain testing set-ups, I'm going to have an
arbiter, configuration server and sharding router running on a
single, multipurpose node, so the provider upstart service would
have to be pretty intelligent about it.
Thanks for any warnings, caveats, other information and wisdom you
can offer.
Russ