123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401 |
- #!/bin/bash
- set -e
- Version=3.0.0
- #if (( $EUID != 0 )); then
- # echo -e "$(tput setaf 11)This must be run as root. Try 'sudo $0'.$(tput sgr0)"
- # exit 1
- #fi
- function print_centered {
- [[ $# == 0 ]] && return 1
- declare -i TERM_COLS="$(tput cols)"
- declare -i str_len="${#1}"
- [[ $str_len -ge $TERM_COLS ]] && {
- echo "$1";
- return 0;
- }
- declare -i filler_len="$(( (TERM_COLS - str_len) / 2 ))"
- [[ $# -ge 2 ]] && ch="${2:0:1}" || ch=" "
- filler=""
- for (( i = 0; i < filler_len; i++ )); do
- filler="${filler}${ch}"
- done
- printf "%s%s%s" "$filler" "$1" "$filler"
- [[ $(( (TERM_COLS - str_len) % 2 )) -ne 0 ]] && printf "%s" "${ch}"
- printf "\n"
- return 0
- }
- function intro_ {
- clear
- print_centered "$(tput setaf 1)"
- print_centered "██████╗ ██╗ █████╗ ██████╗ ███████╗"
- print_centered "██╔══██╗██║ ██╔══██╗██╔══██╗██╔════╝"
- print_centered "██████╔╝██║ ███████║██║ ██║█████╗ "
- print_centered "██╔══██╗██║ ██╔══██║██║ ██║██╔══╝ "
- print_centered "██████╔╝███████╗██║ ██║██████╔╝███████╗"
- print_centered "╚═════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝"
- print_centered " "
- echo -n "$(tput sgr0)$(tput setaf 7)"
- print_centered "Server installation script v$Version"
- print_centered "Special Dell R640"
- echo -n "$(tput sgr0)"
- echo -e "\n"
- #print_centered "(ne pas activer le login automatique...)"
- sleep 3
- }
- function update_ {
- echo -e "$(tput setaf 10)\nLibraries update:$(tput sgr0)"
- sudo dnf -y update
- sudo dnf install -y epel-release
- sudo dnf group install -y "Development Tools"
- sudo dnf install -y cmake gmp-devel numactl-devel perl lynx perl-Encode-Detect perl-Time-Piece perl-open perl-encoding perl-Filter
- sudo dnf install -y perl-Digest-SHA git htop python-devel gparted
- sudo dnf install -y cmake3 libsodium libsodium-static git make cmake gcc gcc-c++ hwloc-devel openssl-devel automake libtool autoconf
- sudo dnf install -y msr-tools-1.3-17.el9.x86_64
- sudo dnf --enablerepo=crb install -y libstdc++-static
- echo -e "\nDone"
- }
- function tigervnc_ {
- echo -e "$(tput setaf 10)\nInstall TigerVnc:$(tput sgr0)"
- if [ ! -f /opt/.alreadyvnc ]
- then
- wget -c http://folivier.homelinux.org/cube/pack/alma.tar.xz
- sudo cp -r -f alma.tar.xz /
- rm alma.tar.xz
- cd /
- sudo tar xvfJ alma.tar.xz
- sudo rm alma.tar.xz
- sudo dnf groupinstall -y "Server with GUI"
- sudo systemctl set-default graphical.target
- sudo systemctl default
- sudo dnf config-manager --set-enabled crb
- sudo dnf install -y epel-release
- sudo dnf update -y
- sudo dnf install -y tigervnc-server
- sudo chmod 777 /home/wareck/.vnc
- sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
- sudo systemctl daemon-reload
- sudo systemctl start vncserver@:1
- sudo systemctl enable vncserver@:1
- sudo touch /opt/.alreadyvnc
- fi
- sudo firewall-cmd --permanent --add-service=vnc-server
- sudo firewall-cmd --reload
- sudo firewall-cmd --add-port=5901/tcp --permanent
- sudo firewall-cmd --reload
- echo -e "\nDone"
- }
- function chia_ {
- echo -e "$(tput setaf 10)\nInstall Chia:$(tput sgr0)"
- cd /home/wareck/Build_Cube/other_arch/
- cp /home/wareck/Build_Cube/options/chia.sh .
- sed -i "s/Gui=Yes/Gui=No/g" chia.sh
- sed -i "s/ChiaPos=Yes/ChiaPos=No/g" chia.sh
- sed -i "s/Miner=Yes/Miner=No/g" chia.sh
- sed -i "s/ChiaService=Yes/ChiaService=No/g" chia.sh
- sed -i "s/Miner=Yes/Miner=No/g" chia.sh
- sed -i "s/ChiaProxy=Yes/ChiaProxy=No/g" chia.sh
- sed -i "s/Toolkit for Chia v$Version/Toolkit for Chia AlmaLinux /g" chia.sh
- sed -i "s/sudo apt-get install/#sudo apt-get install/g" chia.sh
- sed -i "s/-j 6/-j 32/g" chia.sh
- sh chia.sh
- rm chia.sh
- #cp /home/wareck/Build_Cube/options/flexfarmer.sh .
- #sed -i "s/Flexpool mining software/Flexpool mining software AlmaLinux/g" flexfarmer.sh
- #sed -i "s/build_service/#build_service/g" flexfarmer.sh
- #sed -i "s/function #build_service/function build_service/g" flexfarmer.sh
- #./flexfarmer.sh
- #rm flexfarmer.sh
- echo -e "\nDone"
- }
- function miner_ {
- echo -e "$(tput setaf 10)\nInstall Miners:$(tput sgr0)"
- cp /home/wareck/Build_Cube/pack/xmrig.tar.xz /home/wareck/
- cd /home/wareck
- if ! [ -d miners ]; then mkdir -p miners;fi
- cd miners
- if ! [ -d xmrig ]
- then
- git clone https://github.com/xmrig/xmrig.git
- echo -e ""
- fi
- echo -e "$(tput setaf 10)\nUncompress xmr files:$(tput sgr0)"
- tar xfJ /home/wareck/xmrig.tar.xz --checkpoint=.100
- rm /home/wareck/xmrig.tar.xz
- echo "Done."
- echo -n -e "\n"
- echo -e "$(tput setaf 10)\nBuild xmrig:$(tput sgr0)"
- cd xmrig
- sed -i "s/kDefaultDonateLevel = 5;/kDefaultDonateLevel = 0;/g" src/donate.h
- sed -i "s/kMinimumDonateLevel = 1;/kMinimumDonateLevel = 0;/g" src/donate.h
- cd scripts
- ./build_deps.sh
- cd ..
- cd build
- #rm -r Cm*
- cmake .. -DXMRIG_DEPS=scripts/deps
- make -j$((`nproc`+1))
- cd /home/wareck/miners
- wget -c http://folivier.homelinux.org/alma/miners_alma.tar.xz
- tar xvfJ miners_alma.tar.xz
- sudo rm -r -f miners_alma.tar.xz
- sudo rm -r -f xmr-stak-rx
- sudo rm -r -f xmrig-upx
- #sudo dnf install -y msr-tools-1.3-17.el9.x86_64
- echo -e "\nDone."
- }
- function webmin_ {
- echo -e "$(tput setaf 10)\nInstall Webmin:$(tput sgr0)"
- cd /tmp/
- curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
- chmod +x setup-repos.sh
- sudo ./setup-repos.sh
- sudo dnf install -y webmin
- }
- function lvm2_ {
- echo -e "$(tput setaf 10)\nInstall Lvm2:$(tput sgr0)"
- sudo dnf install libaio-devel -y
- cd /home/wareck
- git clone https://github.com/lvmteam/lvm2.git
- cd /home/wareck/lvm2
- ./configure
- sleep 5
- make -j$((`nproc`))
- sudo make install
- sudo ldconfig
- echo -e "Done"
- }
- function wol_ {
- echo -e "$(tput setaf 10)\nWake on lan modification:$(tput sgr0)"
- iface=$(ip link | awk -F: '$0 !~ "lo|vir|^[^0-9]"{print $2a;getline}')
- ether=$(which ethtool)
- echo "[Unit]" >>/tmp/wol.service
- echo "Description=Enable Wake On Lan" >>/tmp/wol.service
- echo "" >>/tmp/wol.service
- echo "[Service]" >>/tmp/wol.service
- echo "Type=oneshot" >>/tmp/wol.service
- echo "ExecStart = $ether --change eno1 wol g" >>/tmp/wol.service
- echo "ExecStart = $ether --change eno2 wol g" >>/tmp/wol.service
- echo "ExecStart = $ether --change eno3 wol g" >>/tmp/wol.service
- echo "ExecStart = $ether --change eno4 wol g" >>/tmp/wol.service
- echo "" >>/tmp/wol.service
- echo "[Install]" >>/tmp/wol.service
- echo "WantedBy=basic.target" >>/tmp/wol.service
- sudo cp /tmp/wol.service /etc/systemd/system/wol.service
- sudo systemctl daemon-reload
- sudo systemctl enable wol.service
- sudo systemctl start wol.service
- echo -e "\nDone"
- }
- function drive_ {
- echo -e "$(tput setaf 10)\nBuild folder and mount drives:$(tput sgr0)"
- if ! [ -r /ramdisk/ ];then sudo mkdir /ramdisk/ ;fi
- if ! [ -r /raid/ ];then sudo mkdir /raid/ ;fi
- if ! [ -r /store/ ];then sudo mkdir /store/ ;fi
- if ! [ -r /temp/ ];then sudo mkdir /temp/ ;fi
- if ! grep "tmpfs /ramdisk tmpfs defaults,size=110G 0 0" /etc/fstab >/dev/null
- then
- cp /etc/fstab /tmp/fstab
- cat <<'EOF'>> /tmp/fstab
- tmpfs /ramdisk tmpfs defaults,size=110G 0 0
- UUID=46391a14-63ec-4b59-824e-789d2945d8c1 /raid xfs nofail,defaults,noatime,nodiratime 0 0
- UUID=185a6ef0-f15b-431f-ab16-328050295ea1 /temp xfs nofail,defaults,noatime,nodiratime 0 0
- UUID=52080b57-ae47-4cd2-81b2-d82c269b03b0 /store xfs nofail,defaults,noatime,nodiratime 0 0
- EOF
- sudo cp /tmp/fstab /etc/fstab
- fi
- #sudo mount /raid
- #sudo mount /store
- #sudo chmod 777 /raid
- #sudo chmod 777 /store
- echo -e "Done"
- }
- function crontab_ {
- echo -e "$(tput setaf 10)\nInstall crontab:$(tput sgr0)"
- if ! sudo grep "uploader_chia.sh" /etc/crontab >/dev/null
- then
- cp /etc/crontab /tmp/
- sudo sh -c "echo '*/15 * * * * wareck /usr/local/bin/uploader_chia.sh'" >>/tmp/crontab
- sudo sh -c "echo '@reboot wareck /usr/local/bin/boot_up.sh'" >> /tmp/crontab
- sudo cp /tmp/crontab /etc/crontab
- fi
- if ! [ -f /usr/local/bin/uploader_chia.sh ]
- then
- wget -c -q http://folivier.homelinux.org/alma/uploader_chia.sh -O /tmp/uploader_chia.sh
- sudo cp /tmp/uploader_chia.sh /usr/local/bin/uploader_chia.sh
- sudo chmod +x /usr/local/bin/uploader_chia.sh
- fi
- if ! [ -f /usr/local/bin/boot_up.sh ]
- then
- wget -c -q http://folivier.homelinux.org/alma/boot_up.sh -O /tmp/boot_up.sh
- sudo cp /tmp/boot_up.sh /usr/local/bin/boot_up.sh
- sudo chmod +x /usr/local/bin/boot_up.sh
- fi
- sudo service crond restart
- echo "Done."
- }
- function config_ {
- echo -e "$(tput setaf 10)\nTuning:$(tput sgr0)"
- sudo sed -i -e "s/# set constantshow/set constantshow/g" /etc/nanorc
- if ! sudo grep "wareck" /etc/sudoers >/dev/null
- then
- sudo sh -c "echo \"wareck ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers"
- fi
- cat <<'EOF'>> /tmp/wakemeup.sh
- #!/bin/bash
- set -e
- if ! [ -x "$(command -v ether-wake)" ];then sudo dnf install etherwake -y;fi
- clear
- echo -e "$(tput setaf 10)Wake On Lan v1.0:$(tput sgr0)"
- PS3="Select : "
- items=("Nzxt" "Garage")
- select item in "${items[@]}" Quit
- do
- case $REPLY in
- 1) sudo ether-wake -i eno1 E0:D5:5E:2D:9E:CB ; break;;
- 2) sudo ether-wake -i eno1 58:11:22:CD:FC:7A ; break;;
- $((${#items[@]}+1))) echo "We're done!"; break 2;;
- *) echo "Ooops - unknown choice $REPLY"; break;
- esac
- done
- echo -e ""
- EOF
- sudo chmod +x /tmp/wakemeup.sh
- sudo cp /tmp/wakemeup.sh /usr/local/bin
- echo "Done."
- git config --global core.editor "nano"
- }
- function bash_ {
- echo -e "$(tput setaf 10)\nInstall script plotter:$(tput sgr0)"
- if [ -f /home/wareck/chia/bladebit/build/h9.sh ];then rm /home/wareck/chia/bladebit/build/h9.sh;fi
- cat <<'EOF'>> /home/wareck/chia/bladebit/build/h9.sh
- #!/bin/bash
- POOL=a99e72c49c5ed39bf793caab9e074a80dd61011a859e975842874aab47b783f9ce84282febe2ca275c0930149b67990a
- FARM=8ba5acd276b45fd0f749ce195dcddcf0e63c3bf2e751e9e273faa0125075c36a11f2ee231e7cf74abed2920be97fc373
- OUT=/store/
- rm /raid/plotting/*
- for i in {1..4}
- do
- echo "$(tput setaf 10)Build Plot N°$i$(tput sgr0)"
- ./bladebit -v -t 32 -p $POOL -f $FARM -z 7 diskplot --f1-threads 16 --c-threads 16 --p2-threads 8 --cache 110G -t1 /raid/plotting $OUT
- done
- uploader_chia.sh stop
- sudo init 0
- EOF
- chmod +x /home/wareck/chia/bladebit/build/h9.sh
- #if [ -f /home/wareck/chia/bladebit/build/snap.sh ];then rm /home/wareck/chia/bladebit/build/snap.sh;fi
- #cat <<'EOF'>> /home/wareck/chia/bladebit/build/snap.sh
- ##!/bin/bash
- #POOL=a99e72c49c5ed39bf793caab9e074a80dd61011a859e975842874aab47b783f9ce84282febe2ca275c0930149b67990a
- #FARM=8ba5acd276b45fd0f749ce195dcddcf0e63c3bf2e751e9e273faa0125075c36a11f2ee231e7cf74abed2920be97fc373
- #OUT=/store/
- #
- #die(){
- # local m="$1" # the first arg
- # local e=$2 # the second arg
- # echo "$m"
- # exit $e
- #}
- #[ $# -eq 0 ] && die "Usage: $0 number_of_plots" 1
- #
- #function plotting {
- #for (( $start ; $number ; $Z ))
- #do
- #echo "$(tput setaf 10)Build Plots $c $(tput sgr0)"
- #./bladebit -w -t 30 -p $POOL -f $FARM -z 7 diskplot --f1-threads 16 --c-threads 16 --p2-threads 8 --cache 110G -t1 /raid/plotting $OUT
- #done
- #sudo init 0
- #}
- #
- #if [ $1 = "i" ]
- #then
- #number="c<=1000"
- #else
- #number="c<=$1"
- #fi
- #start="c=1";Z="c++"
- #
- #rm /raid/plotting/*
- #plotting
- #
- #if [[ ! -z $2 || $2 = "stop" ]]
- #then
- #uploader_chia.sh stop
- #fi
- #EOF
- #chmod +x /home/wareck/chia/bladebit/build/snap.sh
- if [ -f /home/wareck/chia/chia-gigahorse/cpu-plotter/linux/x86_64/go.sh ];then rm /home/wareck/chia/chia-gigahorse/cpu-plotter/linux/x86_64/go.sh;fi
- cat <<'EOF'>> /home/wareck/chia/chia-gigahorse/cpu-plotter/linux/x86_64/go.sh
- #!/bin/bash
- POOL=a99e72c49c5ed39bf793caab9e074a80dd61011a859e975842874aab47b783f9ce84282febe2ca275c0930149b67990a
- FARM=8ba5acd276b45fd0f749ce195dcddcf0e63c3bf2e751e9e273faa0125075c36a11f2ee231e7cf74abed2920be97fc373
- OUT=/store/
- rm /raid/plotting/*
- for i in {1..1}
- do
- echo "$(tput setaf 10)Build Plot N°$i$(tput sgr0)"
- ./bladebit -v -t 32 -p $POOL -f $FARM -z 7 diskplot --f1-threads 16 --c-threads 16 --p2-threads 8 --cache 110G -t1 /raid/plotting $OUT
- done
- #sudo init 0
- EOF
- chmod +x /home/wareck/chia/chia-gigahorse/cpu-plotter/linux/x86_64/go.sh
- if [ -f /home/wareck/chia/chia-plotter/build/h9.sh];then rm /home/wareck/chia/chia-plotter/build/h9.sh;fi
- cat <<'EOF'>> /home/wareck/chia/chia-plotter/build/h9.sh
- #!/bin/bash
- POOL=a99e72c49c5ed39bf793caab9e074a80dd61011a859e975842874aab47b783f9ce84282febe2ca275c0930149b67990a
- FARM=8ba5acd276b45fd0f749ce195dcddcf0e63c3bf2e751e9e273faa0125075c36a11f2ee231e7cf74abed2920be97fc373
- OUT=/store/
- ./chia_plot -p $POOL -f $FARM -n 6 -r 32 -t /raid/plotting/ -2 /ramdisk/ -d $OUT
- uploader_chia.sh stop
- sudo init 0
- EOF
- chmod +x /home/wareck/chia/chia-plotter/build/h9.sh
- echo "Done."
- }
- function wallpaper_ {
- wget -c -q http://folivier.homelinux.org/alma/nebula_cloud.jpg -O /home/wareck/Images/nebula_cloud.jpg
- }
- intro_
- update_
- lvm2_
- drive_
- wol_
- chia_
- miner_
- crontab_
- bash_
- config_
- wallpaper_
- webmin_
- echo -e "\n"
- echo -e "$(tput setaf 10)VNC install:$(tput sgr0)"
- tigervnc_
- vncpasswd
- echo -e "\nProcess finished !! \nhappy plotting."
|