Skip to content

Commit fc5cb4c

Browse files
committed
add nfs + es snapshots
1 parent 489dab3 commit fc5cb4c

File tree

9 files changed

+132
-0
lines changed

9 files changed

+132
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
default[:nfs_server][:packages] = %w(nfs-common nfs-kernel-server portmap rpcbind)
2+
default[:nfs_server][:address] = '10.10.10.10'
3+
default[:nfs_client][:packages] = [ 'nfs-common' ]
4+
default[:nfs][:exports] = [ '/opt/nfs', ]

site-cookbooks/es_snap/metadata.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name 'namp_nfs'
2+
maintainer 'YOUR_NAME'
3+
maintainer_email 'YOUR_EMAIL'
4+
license 'All rights reserved'
5+
description 'Installs/Configures NFS'
6+
long_description 'Installs/Configures Installs/Configures NFS for ES backups'
7+
version '0.1.0'
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
node[:nfs_client][:packages].each do |p|
2+
package "#{p}" do
3+
action :install
4+
end
5+
end
6+
7+
directory "/opt/nfs" do
8+
owner 'root'
9+
mode '0755'
10+
action :create
11+
end
12+
13+
bash "Mount nfs" do
14+
user 'root'
15+
code <<-EOS
16+
nfs_server_ip="#{node[:nfs_server][:address]}"
17+
df -h | grep nfs
18+
if (( $? != 0 )); then
19+
/bin/mount -t nfs4 -o proto=tcp,port=2049 $nfs_server_ip:/opt/nfs /opt/nfs
20+
else
21+
echo "NFS already mounted, moving on"
22+
fi
23+
EOS
24+
end

site-cookbooks/es_snap/recipes/default.rb

Whitespace-only changes.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
template "/home/vagrant/es_backup.sh" do
3+
owner 'root'
4+
mode 00755
5+
source 'es_backup.sh.erb'
6+
action :create
7+
end
8+
9+
cron "ES_snapshot_cronjob" do
10+
home "/home/vagrant/"
11+
shell "/bin/bash"
12+
minute "44"
13+
hour '*'
14+
day '*'
15+
month '*'
16+
weekday '*'
17+
command "/home/vagrant/es_backup.sh 2>&1 | /usr/bin/logger -t es_snapshot"
18+
action :create
19+
end
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
node[:nfs][:packages].each do |p|
2+
package "#{p}" do
3+
action :install
4+
end
5+
end
6+
7+
node[:nfs][:exports].each do |e|
8+
directory "#{e}" do
9+
owner 'root'
10+
mode '0755'
11+
action :create
12+
end
13+
14+
template "/etc/exports" do
15+
owner 'root'
16+
mode 00644
17+
source 'exports.erb'
18+
action :create
19+
end
20+
21+
template "/etc/default/nfs-kernel-server" do
22+
owner 'root'
23+
mode '00644'
24+
source 'nfs-kernel-server.erb'
25+
action :create
26+
notifies :restart, "service[nfs-kernel-server]"
27+
end
28+
29+
service "nfs-kernel-server" do
30+
supports :restart => true, :reload => true, :start => true, :stop => true
31+
action :restart
32+
end
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
3+
repo='backup0'
4+
snap='$snap'
5+
6+
r=`/usr/bin/curl -s -XPOST 'http://localhost:9200/_snapshot/$repo/_verify?pretty' | grep name | wc -l`
7+
if (( $r == 0 )); then
8+
# create snapshot repo
9+
/usr/bin/curl -XPUT 'http://localhost:9200/_snapshot/$repo?pretty' -d '
10+
{
11+
"type": "fs",
12+
"settings": {
13+
"location": "/opt/nfs/es_snap",
14+
"compress": "true"
15+
}
16+
}'
17+
else
18+
echo "repo already exists, moving on to actual snapshot"
19+
# take snapshot
20+
/usr/bin/curl -XPUT "http://localhost:9200/_snapshot/$repo/$snap?wait_for_completion=true&pretty"
21+
22+
# verify
23+
v=`/usr/bin/curl -s -XPOST 'http://localhost:9200/_snapshot/$repo/_verify?pretty' | grep name | wc -l`
24+
if (( $v == 0 )); then
25+
echo "Something went wrong, snapshot did NOT succeed!"
26+
echo `date` >> /var/log/es_fail.log
27+
/usr/bin/curl -s -XPOST 'http://localhost:9200/_snapshot/$repo/_verify?pretty' >> /var/log/es_fail.log
28+
exit 1
29+
else
30+
echo "Snapshot succeeded!"
31+
fi
32+
fi
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<%- node[:nfs][:exports].each do |line| %>
2+
<%= line %>
3+
<%- end %>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
RPCNFSDCOUNT=8
2+
3+
RPCNFSDPRIORITY=0
4+
5+
RPCMOUNTDOPTS="--manage-gids"
6+
7+
NEED_SVCGSSD="no"
8+
9+
RPCSVCGSSDOPTS=""
10+
11+
RPCNFSDOPTS=""

0 commit comments

Comments
 (0)