salt-config.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/bash
  2. ############################################################################
  3. # Commandline Help
  4. ############################################################################
  5. display_help() {
  6. echo "################################################################"
  7. echo "Salt Minion Configuration Script"
  8. echo
  9. echo "Use this script to configure the minion id as well as the master"
  10. echo "the minion should connect to. The settings will be changed and"
  11. echo "the service will be restarted. Must be run as sudo"
  12. echo
  13. echo "This script accepts the following parameters:"
  14. echo
  15. echo " -i, --minion-id The ID to assign this minion"
  16. echo " -m, --master The hostname/IP address of the master"
  17. echo " -h, --help Display this help message"
  18. echo
  19. echo "Examples:"
  20. echo
  21. echo " sudo salt-config -i mac_minion -m master.apple.com"
  22. echo
  23. echo " sudo salt-config --minion-id mac_minion --master 10.10.1.10"
  24. echo
  25. echo "################################################################"
  26. exit 1
  27. }
  28. ############################################################################
  29. # Parameters
  30. ############################################################################
  31. # Initialize Parameters
  32. master=''
  33. minion_id=''
  34. changed=0
  35. ############################################################################
  36. # Check for parameters
  37. ############################################################################
  38. # Check for no parameters
  39. if [ $# -eq 0 ] ; then
  40. echo "ERROR: No Parameters Passed"
  41. echo " To see help use --help"
  42. exit 1
  43. fi
  44. # Check for valid parameters
  45. while [ $# -gt 0 ]; do
  46. case "$1" in
  47. -i | --minion-id)
  48. minion_id="$2"
  49. shift 2
  50. ;;
  51. -m | --master)
  52. master="$2"
  53. shift 2
  54. ;;
  55. -h | --help) # Display Help
  56. display_help
  57. ;;
  58. *)
  59. break
  60. esac
  61. done
  62. # Check for additional parameters
  63. if [ ! -z "$1" ] ; then
  64. echo "ERROR: Unknown Parameter Passed: $1"
  65. echo " To see help use --help"
  66. exit 1
  67. fi
  68. ############################################################################
  69. # minion.d directory
  70. ############################################################################
  71. if [ ! -d "/etc/salt/minion.d" ]; then
  72. mkdir /etc/salt/minion.d
  73. fi
  74. ############################################################################
  75. # Minion ID
  76. ############################################################################
  77. if [ ! -z "$minion_id" ]; then
  78. echo "Changing minion ID: $minion_id"
  79. sed -i '' -e '/id:/ s/^#*/#/' /etc/salt/minion
  80. echo "id: $minion_id" > /etc/salt/minion.d/minion_id.conf
  81. changed=1
  82. fi
  83. ############################################################################
  84. # Master ID
  85. ############################################################################
  86. if [ ! -z "$master" ]; then
  87. echo "Changing master: $master"
  88. sed -i '' -e '/master:/ s/^#*/#/' /etc/salt/minion
  89. echo "master: $master" > /etc/salt/minion.d/master_id.conf
  90. changed=1
  91. fi
  92. ############################################################################
  93. # Restart Minion
  94. ############################################################################
  95. if (( changed == 1 )); then
  96. echo "Restarting the minion service..."
  97. launchctl kickstart -k system/com.saltstack.salt.minion
  98. fi
  99. exit 0