Sponsored Content
Top Forums Shell Programming and Scripting Bash script to add multiple resources to NFS pacemaker cluster Post 303037210 by hburnswell on Thursday 25th of July 2019 08:07:04 PM
Old 07-25-2019
Bash script to add multiple resources to NFS pacemaker cluster

All,

I'm looking for some guidance on how to accomplish automating the addition of exports to an HA Pacemaker NFS cluster. I would like to do it in bash for logistics reasons.

The resource creation command looks like this:

Code:
pcs resource create nfs-b2b-hg-media-10.1 exportfs clientspec=10.1.0.0/255.255.0.0 options=rw,sync,no_root_squash directory=/nfs/exports/media fsid=1 --group nfsgroup

However, I would like the script to be able to add multiple exports at one time and am trying to figure out the best way to do it. I have been playing around with arrays and can gather 2 of the necessary variables in the command, but there are 4 needed variables:

Code:
resource_name --> nfs-b2b-hg-media-10.1
clientspec --> 10.1.0.0/255.255.0.0
directory --> /nfs/exports/media
fsid --> 1

The rest of the command is pretty static.

Here is a small test script that gathers resource name and clientspec (and puts in order):

Code:
#!/usr/bin/bash

cs10168="10.16.8.0/255.255.255.0"
cs101="10.1.0.0/255.255.0.0"
cs1091="10.91.0.0/255.255.0.0"
dirs=(media hotdrive images)
nfsenv="nfs-b2b-hg"
nfsoptions="rw,sync,no_root_squash"
lv=exports
mt="/nfs"
nfsgrp=nfsgroup

declare -A exports
exports[${nfsenv}-${dirs[0]}-10.1]=${cs101}
exports[${nfsenv}-${dirs[1]}-10.91]=${cs1091}
exports[${nfsenv}-${dirs[2]}-10.1]=${cs101}
exports[${nfsenv}-${dirs[2]}-10.91]=${cs1091}

declare -a orders
orders+=( ${nfsenv}-${dirs[0]}-10.1 )
orders+=( ${nfsenv}-${dirs[1]}-10.91 )
orders+=( ${nfsenv}-${dirs[2]}-10.1 )
orders+=( ${nfsenv}-${dirs[2]}-10.91 )

for i in ${orders[@]}

do

       pcs resource create $i exportfs clientspec=${exports[$i]} options=$nfsoptions directory=${mt}/${lv}/${dirs[0]} fsid=1 --group $nfsgrp

done

As you can see there is a problem with how to define 'directory' and 'fsid'.

Does anyone have any suggestions on how to accomplish this in bash? Any guidance is greatly appreciated.

Thanks,

HB

Last edited by hicksd8; 07-26-2019 at 07:00 AM..
 

8 More Discussions You Might Find Interesting

1. High Performance Computing

cluster setup and nfs

hello, During the cluster installation, we are required to enter a cluster name. When this name is used? I have a shared disk between those 2 nodes. To test NFS failover, what should I do? PS: I am using VCS 5 thanks (5 Replies)
Discussion started by: melanie_pfefer
5 Replies

2. Shell Programming and Scripting

bash script to rename multiple directories

Hello I have a directory structure with year in format 4 digits, e.g 2009, below which is month format 1 or 2 digits, e.g 1 or 12, blow which is day format 1 or 2 digits, e.g 1 or 31. I want to change the names of lots of directories to the be Year - 4 digits , e.g 2009 - No change here... (4 Replies)
Discussion started by: garethsays
4 Replies

3. Shell Programming and Scripting

Multiple Variables for BASH script

Hello, I am new to the whole "scripting" thing. Below is the script that I have so far and where i need the Variables to go (VAR#) #!/bin/bash #Sample Script VAR1= echo "Choose an option: 1) Create a file. 2) Delete a file. 3) Move a file." read VAR1 case $VAR1 in 1) echo "Pick... (4 Replies)
Discussion started by: eclerget
4 Replies

4. Shell Programming and Scripting

Bash script to copy timestamps of multiple files

Hi, I have a bunch of media files in a directory that have been converted (from MTS to MOV format), so my directory contains something like this: clip1.mts clip1.mov clip2.mts clip2.mov The problem is that the .mov files that have been created have the timestamps of the conversion task,... (2 Replies)
Discussion started by: Krakus
2 Replies

5. Homework & Coursework Questions

NFS service not started in Redhat Cluster

Hi All, Need your help to resolve below error in cluter. Sep 9 05:37:30 node2 rgmanager: Starting disabled service service:Prod_Service Sep 9 05:37:30 node2 rgmanager: HA LVM: Improper setup detected Sep 9 05:37:30 node2 rgmanager: * initrd image needs to be newer than lvm.conf... (3 Replies)
Discussion started by: nitinredekar
3 Replies

6. Shell Programming and Scripting

Mount NFS Share On NFS Client via bash script.

I need a help of good people with effective bash script to mount nfs shared, By the way I did the searches, since i haven't found that someone wrote a script like this in the past, I'm sure it will serve more people. The scenario as follow: An NFS Client with Daily CRON , running bash script... (4 Replies)
Discussion started by: Brian.t
4 Replies

7. Shell Programming and Scripting

Loop through multiple files in bash script

Hi Everybody, I'm a newbie to shell scripting, and I'd appreciate some help. I have a bunch of .txt files that have some unwanted content. I want to remove lines 1-3 and 1028-1098. #!/bin/bash for '*.txt' in <path to folder> do sed '1,3 d' "$f"; sed '1028,1098 d' "$f"; done I... (2 Replies)
Discussion started by: BabyNuke
2 Replies

8. Red Hat

PaceMaker Cluster Fence Device

I have 2 VM's setup with a shared VMware disk running RHEL 7.1 (just updated to 7.2 with yum update), and would like to know what is the easiest Fence device to implement for testing purposes. Apparently, I need a fence device before my IP resources will come online. I have the cluster... (1 Reply)
Discussion started by: mrmurdock
1 Replies
XDG-USER-DIRS-UPD(1)						   User Commands					      XDG-USER-DIRS-UPD(1)

NAME
xdg-user-dirs-update - Update XDG user dir configuration SYNOPSIS
xdg-user-dirs-update [OPTION...] [--set NAME PATH...] DESCRIPTION
xdg-user-dirs-update updates the current state of the users user-dirs.dir. If none existed before then one is created based on the system default values, or falling back to the old non-translated filenames if such directories exists. The list of old directories used are: ~/Desktop, ~/Templates and ~/Public. If an old configuration exists it is updated with any new default directories. Additionally, any configured directories that point to non-existing locations are reset by pointing then to the users home directory. This typically happens when the users removed the directory, so they likely don't want to use it anymore. On the first run a user-dirs.locale file is created containing the locale that was used for the translation. This is used later by gui tools like xdg-user-dirs-gtk-update to detect if the locale was changed, letting you to migrate from the old names. xdg-user-dirs-update is normally run automatically at the start of a user session to update the XDG user dirs according to the users locale. OPTIONS
The following options are understood: --help Print help output and exit. --force Update existing user-dirs.dir, but force a full reset. This means: Don't reset nonexisting directories to HOME, rather recreate the directory. Never use backwards compatible non-translated names. Always recreate user-dirs.locale. --dummy-output PATH Write the configuration to PATH instead of the default configuration file. Also, no directories are created. --set NAME PATH Sets the XDG user dir with the given name. NAME should be one of the following: DESKTOP DOWNLOAD TEMPLATES PUBLICSHARE DOCUMENTS MUSIC PICTURES VIDEOS PATH must be an absolute path, e.g. $HOME/Some/Directory. FILES
The XDG user dirs configuration is stored in the user-dirs.dir file in the location pointed to by the XDG_CONFIG_HOME environment variable. ENVIRONMENT
The XDG_CONFIG_HOME environment variable determines where the user-dirs.dirs file is located. SEE ALSO
xdg-user-dir(1), user-dirs.dirs(5), user-dirs.defaults(5), user-dirs.conf(5). XDG
XDG-USER-DIRS-UPD(1)
All times are GMT -4. The time now is 09:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy