init.sh 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/bin/bash
  2. cmd() {
  3. local info="${2:-$1}"
  4. echo -e "\n\033[1;34m💡 $info\033[0m"
  5. eval "$1"
  6. }
  7. cp -r /home/admmdw/ssh/* /etc/ssh
  8. sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
  9. sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config
  10. rm -f /var/run/nologin /etc/nologin
  11. sed -i 's/account required pam_nologin.so/# account required pam_nologin.so/g' /etc/pam.d/sshd
  12. killall sshd
  13. /usr/sbin/sshd
  14. export PATH=$PATH:/opt/mqm/bin
  15. cfg="/home/admmdw/config.yaml"
  16. # sudo yum -y install openssh-server && sudo ssh-keygen -A && echo "+:ALL:ALL" | sudo tee /etc/security/access.conf && sudo rm -rf /run/nologin && sudo /usr/sbin/sshd
  17. if [ "$(yq '.init' ~/config.yaml)" = "true" ]; then
  18. QInit() {
  19. mkdir -m 775 -p "/MQHA/$(echo "$1" | tr -d '.')/data" >/dev/null 2>&1
  20. mkdir -m 775 -p "/MQHA/$(echo "$1" | tr -d '.')/log" >/dev/null 2>&1
  21. crtmqm -md "/MQHA/$(echo "$1" | tr -d '.')/data" -ld "/MQHA/$(echo "$1" | tr -d '.')/log" "$1" >/dev/null 2>&1
  22. strmqm "$1" >/dev/null 2>&1
  23. echo "DEFINE LISTENER($1.QM) TRPTYPE(TCP) PORT ($2) CONTROL(STARTONLY)" | runmqsc "$1" >/dev/null 2>&1
  24. echo "DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN)" | runmqsc "$1" >/dev/null 2>&1
  25. echo "ALTER QMGR CHLAUTH(DISABLED)" | runmqsc "$1" >/dev/null 2>&1
  26. echo "START CHANNEL(SYSTEM.ADMIN.SVRCONN)" | runmqsc "$1" >/dev/null 2>&1
  27. echo "START LISTENER($1.QM)" | runmqsc "$1" >/dev/null 2>&1
  28. echo "ALTER QMGR CONNAUTH(' ')" | runmqsc "$1" >/dev/null 2>&1
  29. echo "REFRESH SECURITY TYPE(CONNAUTH)" | runmqsc "$1" >/dev/null 2>&1
  30. echo "SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)" | runmqsc "$1" >/dev/null 2>&1
  31. echo "SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)" | runmqsc "$1" >/dev/null 2>&1
  32. echo "SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)" | runmqsc "$1" >/dev/null 2>&1
  33. echo "ALTER CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('admmdw')" | runmqsc "$1" >/dev/null 2>&1
  34. echo "Queue Manager $1 has been created."
  35. }
  36. QScript() {
  37. local QMDIR=${1%.QM}
  38. runmqsc "$1" <"/home/admmdw/QueueManager/$QMDIR/queue.mqsc" >/dev/null 2>&1
  39. }
  40. for qm in $(yq '.queue_manager[].name' "$cfg" | tr -d '"'); do
  41. port=$(yq ".queue_manager[] | select(.name == \"$qm\") | .port" "$cfg")
  42. createqm=$(yq ".queue_manager[] | select(.name == \"$qm\") | .deploy" "$cfg")
  43. if [[ $createqm ]]; then
  44. QInit "$qm" "$port"
  45. QScript "$qm"
  46. fi
  47. done
  48. for broker in $(yq '.server_ace[].name' "$cfg" | tr -d '"'); do
  49. port=$(yq ".server_ace[] | select(.name == \"$broker\") | .port" "$cfg")
  50. executiongroups=$(yq ".server_ace[] | select(.name == \"$broker\") | .executiongroup[]" "$cfg")
  51. IFS=$'\n'
  52. cmd "mkdir -m 775 -p /MQHA/$broker"
  53. cmd "mqsicreatebroker $broker -q ${broker}.QM -e /MQHA/$broker"
  54. cmd "mqsichangeproperties $broker -b webadmin -o HTTPConnector -n port -v $port"
  55. cmd "mqsistart $broker"
  56. for executiongroup in $executiongroups; do
  57. for eg in $executiongroup; do
  58. iserver="$(echo "$eg" | tr -d '"')"
  59. cmd "mqsicreateexecutiongroup $broker -e $iserver"
  60. cmd "mqsichangeflowstats $broker -e $iserver -s -c inactive"
  61. cmd "mqsichangeresourcestats $broker -e $iserver -c inactive"
  62. cmd "mqsichangeproperties $broker -e $iserver -o ComIbmJVMManager -n jvmMaxHeapSize -v 1073741824"
  63. cmd "mqsichangeproperties $broker -e $iserver -o ComIbmJVMManager -n jvmJavaOSStackSize -v 1048576"
  64. cmd "mqsichangeproperties $broker -e $iserver -o ComIbmJVMManager -n jvmSystemProperty -v \"-Dlogback.configurationFile=/opt/IBM/ace-12.0.9.0/server/jplugin/logback.xml\""
  65. cmd "mqsireload -i $broker -e $iserver"
  66. # stop
  67. for file in /MQHA/bar/"$broker"/"$iserver"/*.bar; do
  68. cmd "mqsideploy $broker -e $iserver -a $file"
  69. done
  70. done
  71. done
  72. if [[ $broker == "BDSBROKER" ]]; then
  73. cmd "mqsisetdbparms BDSBROKER -n odbc::MDW -u db2inst1 -p mdw4dm1n"
  74. cmd "mqsisetdbparms BDSBROKER -n odbc::MWCONFIG -u db2inst1 -p mdw4dm1n"
  75. cmd "mqsichangeproperties BDSBROKER -e BDS_MT -o HTTPConnector -n ListenerPort -v 7081"
  76. cmd "mqsichangeproperties BDSBROKER -e BDS_CD -o HTTPConnector -n ListenerPort -v 7082"
  77. cmd "mqsichangeproperties BDSBROKER -e BDS_CF -o HTTPConnector -n ListenerPort -v 7083"
  78. cmd "mqsichangeproperties BDSBROKER -e BDS_DD -o HTTPConnector -n ListenerPort -v 7084"
  79. cmd "mqsichangeproperties BDSBROKER -e BDS_GL -o HTTPConnector -n ListenerPort -v 7085"
  80. cmd "mqsichangeproperties BDSBROKER -e BDS_LN -o HTTPConnector -n ListenerPort -v 7086"
  81. cmd "mqsichangeproperties BDSBROKER -e BDS_OT -o HTTPConnector -n ListenerPort -v 7087"
  82. cmd "mqsichangeproperties BDSBROKER -e BDS_RM -o HTTPConnector -n ListenerPort -v 7088"
  83. cmd "mqsichangeproperties BDSBROKER -e BDS_BP -o HTTPConnector -n ListenerPort -v 7092"
  84. cmd "mqsichangeproperties BDSBROKER -e BDS_VP -o HTTPConnector -n ListenerPort -v 7093"
  85. cmd "mqsichangeproperties BDSBROKER -e BDS_BILLPAYMENT -o HTTPConnector -n ListenerPort -v 7095"
  86. cmd "mqsistop BDSBROKER"
  87. cmd "mqsichangeproperties BDSBROKER -f -e BDS_MT -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  88. cmd "mqsichangeproperties BDSBROKER -f -e BDS_CD -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  89. cmd "mqsichangeproperties BDSBROKER -f -e BDS_CF -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  90. cmd "mqsichangeproperties BDSBROKER -f -e BDS_GL -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  91. cmd "mqsichangeproperties BDSBROKER -f -e BDS_DD -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  92. cmd "mqsichangeproperties BDSBROKER -f -e BDS_LN -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  93. cmd "mqsichangeproperties BDSBROKER -f -e BDS_OT -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  94. cmd "mqsichangeproperties BDSBROKER -f -e BDS_RM -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  95. cmd "mqsichangeproperties BDSBROKER -f -e BDS_BP -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  96. cmd "mqsichangeproperties BDSBROKER -f -e BDS_VP -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  97. cmd "mqsichangeproperties BDSBROKER -f -e BDS_BILLPAYMENT -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true"
  98. cmd "mqsistart BDSBROKER"
  99. fi
  100. done
  101. # echo "$(sed 's/\(init:\) true/\1 false/' "$cfg")" > "$cfg"
  102. fi