centos.sh 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. #!/bin/bash
  2. set -e
  3. Version=2.3
  4. #if (( $EUID != 0 )); then
  5. # echo -e "$(tput setaf 11)This must be run as root. Try 'sudo $0'.$(tput sgr0)"
  6. # exit 1
  7. #fi
  8. function print_centered {
  9. [[ $# == 0 ]] && return 1
  10. declare -i TERM_COLS="$(tput cols)"
  11. declare -i str_len="${#1}"
  12. [[ $str_len -ge $TERM_COLS ]] && {
  13. echo "$1";
  14. return 0;
  15. }
  16. declare -i filler_len="$(( (TERM_COLS - str_len) / 2 ))"
  17. [[ $# -ge 2 ]] && ch="${2:0:1}" || ch=" "
  18. filler=""
  19. for (( i = 0; i < filler_len; i++ )); do
  20. filler="${filler}${ch}"
  21. done
  22. printf "%s%s%s" "$filler" "$1" "$filler"
  23. [[ $(( (TERM_COLS - str_len) % 2 )) -ne 0 ]] && printf "%s" "${ch}"
  24. printf "\n"
  25. return 0
  26. }
  27. function intro_ {
  28. clear
  29. print_centered "$(tput setaf 1)"
  30. print_centered "██████╗ ██╗ █████╗ ██████╗ ███████╗"
  31. print_centered "██╔══██╗██║ ██╔══██╗██╔══██╗██╔════╝"
  32. print_centered "██████╔╝██║ ███████║██║ ██║█████╗ "
  33. print_centered "██╔══██╗██║ ██╔══██║██║ ██║██╔══╝ "
  34. print_centered "██████╔╝███████╗██║ ██║██████╔╝███████╗"
  35. print_centered "╚═════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝"
  36. print_centered " "
  37. echo -n "$(tput sgr0)$(tput setaf 7)"
  38. print_centered "Server installation script v$Version"
  39. print_centered "Special Dell R640"
  40. echo -n "$(tput sgr0)"
  41. echo -e "\n"
  42. #print_centered "(ne pas activer le login automatique...)"
  43. sleep 3
  44. }
  45. function update_ {
  46. echo -e "$(tput setaf 10)\nLibraries update:$(tput sgr0)"
  47. sudo dnf -y update
  48. sudo dnf install -y epel-release
  49. sudo dnf group install -y "Development Tools"
  50. sudo dnf install -y cmake gmp-devel numactl-devel perl lynx perl-Encode-Detect perl-Time-Piece perl-open perl-encoding perl-Filter
  51. sudo dnf install -y perl-Digest-SHA git htop python-devel gparted
  52. sudo dnf install -y cmake3 libsodium libsodium-static git make cmake gcc gcc-c++ hwloc-devel openssl-devel automake libtool autoconf
  53. sudo dnf --enablerepo=crb install -y libstdc++-static
  54. echo -e "\nDone"
  55. }
  56. function tigervnc_ {
  57. echo -e "$(tput setaf 10)\nInstall TigerVnc:$(tput sgr0)"
  58. wget -c http://folivier.homelinux.org/cube/pack/alma.tar.xz
  59. sudo cp -r -f alma.tar.xz /
  60. rm alma.tar.xz
  61. cd /
  62. sudo tar xvfJ alma.tar.xz
  63. sudo rm alma.tar.xz
  64. sudo dnf groupinstall -y "Server with GUI"
  65. sudo systemctl set-default graphical.target
  66. sudo systemctl default
  67. sudo dnf config-manager --set-enabled crb
  68. sudo dnf install -y epel-release
  69. sudo dnf update -y
  70. sudo dnf install -y tigervnc-server
  71. sudo chmod 777 /home/wareck/.vnc
  72. sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
  73. sudo systemctl daemon-reload
  74. sudo systemctl start vncserver@:1
  75. sudo systemctl enable vncserver@:1
  76. sudo firewall-cmd --permanent --add-service=vnc-server
  77. sudo firewall-cmd --reload
  78. sudo firewall-cmd --add-port=5901/tcp --permanent
  79. sudo firewall-cmd --reload
  80. echo -e "\nDone"
  81. }
  82. function chia_ {
  83. echo -e "$(tput setaf 10)\nInstall Chia:$(tput sgr0)"
  84. cd /home/wareck/Build_Cube/other_arch/
  85. cp /home/wareck/Build_Cube/options/chia.sh .
  86. sed -i "s/Gui=Yes/Gui=No/g" chia.sh
  87. sed -i "s/ChiaPos=Yes/ChiaPos=No/g" chia.sh
  88. sed -i "s/Miner=Yes/Miner=No/g" chia.sh
  89. sed -i "s/ChiaService=Yes/ChiaService=No/g" chia.sh
  90. sed -i "s/Miner=Yes/Miner=No/g" chia.sh
  91. sed -i "s/ChiaProxy=Yes/ChiaProxy=No/g" chia.sh
  92. sed -i "s/Toolkit for Chia v$Version/Toolkit for Chia AlmaLinux /g" chia.sh
  93. sed -i "s/sudo apt-get install/#sudo apt-get install/g" chia.sh
  94. sh chia.sh
  95. rm chia.sh
  96. #cp /home/wareck/Build_Cube/options/flexfarmer.sh .
  97. #sed -i "s/Flexpool mining software/Flexpool mining software AlmaLinux/g" flexfarmer.sh
  98. #sed -i "s/build_service/#build_service/g" flexfarmer.sh
  99. #sed -i "s/function #build_service/function build_service/g" flexfarmer.sh
  100. #./flexfarmer.sh
  101. #rm flexfarmer.sh
  102. echo -e "\nDone"
  103. }
  104. function miner_ {
  105. echo -e "$(tput setaf 10)\nInstall Miners:$(tput sgr0)"
  106. cp /home/wareck/Build_Cube/pack/xmrig.tar.xz /home/wareck/
  107. cd /home/wareck
  108. if ! [ -d miners ]; then mkdir -p miners;fi
  109. cd miners
  110. if ! [ -d xmrig ]
  111. then
  112. git clone https://github.com/xmrig/xmrig.git
  113. echo -e ""
  114. fi
  115. echo -e "$(tput setaf 10)\nUncompress xmr files:$(tput sgr0)"
  116. tar xfJ /home/wareck/xmrig.tar.xz --checkpoint=.100
  117. rm /home/wareck/xmrig.tar.xz
  118. echo "Done."
  119. echo -n -e "\n"
  120. echo -e "$(tput setaf 10)\nBuild xmrig:$(tput sgr0)"
  121. cd xmrig
  122. sed -i "s/kDefaultDonateLevel = 5;/kDefaultDonateLevel = 0;/g" src/donate.h
  123. sed -i "s/kMinimumDonateLevel = 1;/kMinimumDonateLevel = 0;/g" src/donate.h
  124. cd scripts
  125. ./build_deps.sh
  126. cd ..
  127. cd build
  128. #rm -r Cm*
  129. cmake .. -DXMRIG_DEPS=scripts/deps
  130. make -j$((`nproc`+1))
  131. cd /home/wareck/miners
  132. sudo rm -r -f xmr-stak-rx
  133. sudo rm -r -f xmrig-upx
  134. sudo dnf install -y msr-tools-1.3-17.el9.x86_64
  135. echo -e "\nDone."
  136. }
  137. function webmin_ {
  138. echo -e "$(tput setaf 10)\nInstall Webmin:$(tput sgr0)"
  139. cd /tmp/
  140. curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
  141. chmod +x setup-repos.sh
  142. sudo ./setup-repos.sh
  143. sudo dnf install -y webmin
  144. }
  145. function lvm2_ {
  146. echo -e "$(tput setaf 10)\nInstall Lvm2:$(tput sgr0)"
  147. sudo dnf install libaio-devel -y
  148. cd /home/wareck
  149. git clone https://github.com/lvmteam/lvm2.git
  150. cd /home/wareck/lvm2
  151. ./configure
  152. make -j 32
  153. sudo make install
  154. sudo ldconfig
  155. echo -e "Done"
  156. }
  157. function wol_ {
  158. echo -e "$(tput setaf 10)\nWake on lan modification:$(tput sgr0)"
  159. iface=$(ip link | awk -F: '$0 !~ "lo|vir|^[^0-9]"{print $2a;getline}')
  160. ether=$(which ethtool)
  161. echo "[Unit]" >>/tmp/wol.service
  162. echo "Description=Enable Wake On Lan" >>/tmp/wol.service
  163. echo "" >>/tmp/wol.service
  164. echo "[Service]" >>/tmp/wol.service
  165. echo "Type=oneshot" >>/tmp/wol.service
  166. echo "ExecStart = $ether --change eno1 wol g" >>/tmp/wol.service
  167. echo "ExecStart = $ether --change eno2 wol g" >>/tmp/wol.service
  168. echo "ExecStart = $ether --change eno3 wol g" >>/tmp/wol.service
  169. echo "ExecStart = $ether --change eno4 wol g" >>/tmp/wol.service
  170. echo "" >>/tmp/wol.service
  171. echo "[Install]" >>/tmp/wol.service
  172. echo "WantedBy=basic.target" >>/tmp/wol.service
  173. sudo cp /tmp/wol.service /etc/systemd/system/wol.service
  174. sudo systemctl daemon-reload
  175. sudo systemctl enable wol.service
  176. sudo systemctl start wol.service
  177. echo -e "\nDone"
  178. }
  179. function drive_ {
  180. echo -e "$(tput setaf 10)\nBuild folder and mount drives:$(tput sgr0)"
  181. if ! [ -r /ramdisk/ ];then sudo mkdir /ramdisk/ ;fi
  182. if ! grep "tmpfs /ramdisk tmpfs defaults,size=110G 0 0" /etc/fstab >/dev/null
  183. then
  184. cp /etc/fstab /tmp/fstab
  185. cat <<'EOF'>> /tmp/fstab
  186. tmpfs /ramdisk tmpfs defaults,size=110G 0 0
  187. #/dev/farmer/raid /raid xfs nofail,defaults,noatime,nodiratime 0 0
  188. EOF
  189. sudo cp /tmp/fstab /etc/fstab
  190. fi
  191. if [ ! -r /raid/ ];then mkdir /raid/;fi
  192. echo -e "Done"
  193. }
  194. function config_ {
  195. echo -e "$(tput setaf 10)\nTuning:$(tput sgr0)"
  196. sudo sed -i -e "s/# set constantshow/set constantshow/g" /etc/nanorc
  197. if ! sudo grep "wareck" /etc/sudoers >/dev/null
  198. then
  199. sudo sh -c "echo \"wareck ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers"
  200. fi
  201. cat <<'EOF'>> /tmp/wakemeup.sh
  202. #!/bin/bash
  203. set -e
  204. if ! [ -x "$(command -v ether-wake)" ];then sudo dnf install etherwake -y;fi
  205. clear
  206. echo -e "$(tput setaf 10)Wake On Lan v1.0:$(tput sgr0)"
  207. PS3="Select : "
  208. items=("Nzxt" "Garage")
  209. select item in "${items[@]}" Quit
  210. do
  211. case $REPLY in
  212. 1) sudo ether-wake -i eno1 E0:D5:5E:2D:9E:CB ; break;;
  213. 2) sudo ether-wake -i eno1 58:11:22:CD:FC:7A ; break;;
  214. $((${#items[@]}+1))) echo "We're done!"; break 2;;
  215. *) echo "Ooops - unknown choice $REPLY"; break;
  216. esac
  217. done
  218. echo -e ""
  219. EOF
  220. sudo chmod +x /tmp/wakemeup.sh
  221. sudo cp /tmp/wakemeup.sh /usr/local/bin
  222. echo "Done."
  223. git config --global core.editor "nano"
  224. }
  225. intro_
  226. lvm2_
  227. exit
  228. update_
  229. drive_
  230. wol_
  231. #tigervnc_
  232. chia_
  233. miner_
  234. config_
  235. webmin_
  236. echo -e "\n\n"
  237. echo -e "\n\n$(tput setaf 10)VNC password:$(tput sgr0)"
  238. vncpasswd
  239. echo -e "\nProcess finished !! \nhappy plotting."