Quantcast
Viewing all articles
Browse latest Browse all 1318

Скрипт установки для Debian 10

Скрипт установки для Debian 10

Описание

Установка

# nano debian-install.sh
# bash ./debian-install.sh

В debian-install.sh вставляем ниже следующий текст и нащимаем Ctrl-x, затем y (сохраняем и выходим)

deb http://mirror.selectel.ru/debian buster main non-free contrib
deb-src http://mirror.selectel.ru/debian buster main non-free contrib

deb http://mirror.selectel.ru/debian-security buster/updates main contrib non-free
deb-src http://mirror.selectel.ru/debian-security buster/updates main contrib non-free
#!/bin/shdistrib="buster" 
function info 
{echo" "echo-e"--> $1"echo" "} 
function check_result(){if[$1-ne0]; thenecho"Error: $2"exit$1fi} 
function promptyn (){whiletrue; doread-p"$1" yn
        case$ynin[Yy]*)return0;;[Nn]*)return1;;*)echo"Please answer yes or no.";;esacdone} 
function prompt (){whileread-p"$1" variable &&[[-z"$variable"]] ; doecho"$1"done 
    echo$variable;
} 
function installpkg(){for pkg in $@doif[ $(dpkg-query -W-f='${Status}'$pkg2>/dev/null |grep-c"ok installed")-eq0];
  thenecho"Install $pkg ..."apt-get install$pkg;
  fidone} 
function set_default_value(){evalvariable=\$$1if[-z"$variable"]; theneval$1=$2fiif["$variable"!= 'yes']&&["$variable"!= 'no']; theneval$1=$2fi} 
function h(){history|grep"$@";
} 
function install_elasticsearch(){VERSION=$1es_memory='1024m' 
    apt-get install openjdk-8-jdk
    rm/etc/alternatives/javaln-s/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java/etc/alternatives/java 
    exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    exportPATH=$JAVA_HOME/bin:$PATH 
    if[!-f elasticsearch-$VERSION.deb ]; thenwget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$VERSION.deb  
    fi 
    sudodpkg-i elasticsearch-$VERSION.deb
 
    # be sure you add "action.disable_delete_all_indices" : true to the config!! 
    info "Configuring ElasticSearch ${VERSION}" 
    sed-i"/LimitFSIZE=infinity/a LimitMEMLOCK=infinity"/usr/lib/systemd/system/elasticsearch.service
    sed-i"s/#bootstrap.memory_lock: true/bootstrap.memory_lock: true/"/etc/elasticsearch/elasticsearch.yml
    sed-i"s/#network.host: 192.168.0.1/network.host: 0.0.0.0/"/etc/elasticsearch/elasticsearch.yml
    sed-i"s/#MAX_LOCKED_MEMORY=unlimited/MAX_LOCKED_MEMORY=unlimited/"/etc/default/elasticsearch
    sed-i"s/-Xms2g/-Xms${es_memory}/"/etc/elasticsearch/jvm.options
    sed-i"s/-Xmx2g/-Xmx${es_memory}/"/etc/elasticsearch/jvm.options
 
    # enabled
    update-rc.d elasticsearch defaults
 
    # start script
    service elasticsearch restart
 
    if[-f/usr/bin/plugin ]; thenrm/usr/bin/plugin
    fi 
    sudoln-s/usr/share/elasticsearch/bin/elasticsearch-plugin /usr/bin/plugin
} 
if["x$(id -u)"!= 'x0']; then
    check_result 1"Script can be run executed only by root"fi 
apt-get update&&apt-get upgrade-y
installpkg apt apt-utils wgetsudonano rename debconf-utils pwgen mailutils curl dirmngr -y 
default_pass=$(pwgen -s181-n-c-s -y) 
hostname=$(prompt "Enter the Internet domain name (e.g. nixcraft.com) : ");
 
if promptyn "Do you wish to install default programs? [mc, git, etc] " ; then
    info "Install default programs";
    installpkg mc git mercurial bash-completion bzip2 numactl dnsutils -yfi 
if promptyn "Do you wish to install developers programs? [gcc, g++, etc] "; then
    info "Install development soft";
    installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev clang cmake -yfi 
if promptyn "Do you wish to install system monitors? [htop, iptraf] "; then
    info "Install system monitors";
    installpkg htop iptraf jnettop iftop -yfi 
if promptyn "Do you wish to uninstall systemd and install systemv? "; then
    installpkg sysvinit-core sysvinit-utils -ycp/usr/share/sysvinit/inittab /etc/inittab
fi 
if promptyn "Do you wish to install FTP Server (PRO-Ftpd)? "; then
    installpkg proftpd -yfi 
if promptyn "Do you wish to install MySql? "; then
    installpkg software-properties-common -yif promptyn "Do you wish to install MySql (Percona) (y) or Mariadb (n)?"; then 
        apt-key adv--recv-keys--keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
 
        echo"
        # Percona
        #deb http://repo.percona.com/apt ${distrib} testing
        #deb-src http://repo.percona.com/apt ${distrib} testing
        ">/etc/apt/sources.list.d/mysql.list
        apt-get update 
        installpkg percona-server-server-5.7 percona-server-client-5.7 percona-server-common-5.7 percona-toolkit -y
        sevice mysql start
        check_result $?"mysql start failed" 
        info "[client]\npassword='$f'\n">/root/.my.cnf
        chmod600/root/.my.cnf
        mysql -e"SET PASSWORD FOR 'root'@'localhost' = PASSWORD('${default_pass}');"
        mysql -e"UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';"
        mysql -e"DELETE FROM mysql.user WHERE User=''"
        mysql -e"DROP DATABASE test">/dev/null 2>&1
        mysql -e"DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
        mysql -e"DELETE FROM mysql.user WHERE user='' or password='';"
        mysql -e"FLUSH PRIVILEGES" 
        info "Install MySQL (Percona)"
        update-rc.d mysql defaults
        set_default_value 'mysql''true' 
    else# for sid       apt-key adv--recv-keys--keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
        # for jessieapt-key adv--recv-keys--keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
 
        echo"
        # MariaDB 10.1 repository list - created 2016-08-05 19:23 UTC
        # http://downloads.mariadb.org/mariadb/repositories/
        deb [arch=amd64,i386] http://mirror.timeweb.ru/mariadb/repo/10.1/debian ${distrib} main
        deb-src http://mirror.timeweb.ru/mariadb/repo/10.1/debian ${distrib} main
        ">/etc/apt/sources.list.d/mysql.list
        apt-get update 
        installpkg mariadb-server mariadb-client mariadb-common --allow-unauthenticated
        service mysql start
        check_result $?"mysql start failed" 
        info "[client]\npassword='${default_pass}'\n">/root/.my.cnf
        chmod600/root/.my.cnf
        mysql -e"SET PASSWORD FOR 'root'@'localhost' = PASSWORD('${default_pass}');"
        mysql -e"UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';"
        mysql -e"DELETE FROM mysql.user WHERE User=''"
        mysql -e"DROP DATABASE test">/dev/null 2>&1
        mysql -e"DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
        mysql -e"DELETE FROM mysql.user WHERE user='' or password='';"
        mysql -e"FLUSH PRIVILEGES" 
        info "Install MySQL (Mariadb)"
        update-rc.d mysql defaults
        set_default_value 'mysql''true'fifi 
if promptyn "Do you wish to install PostgreSql? "; then
    installpkg postgresql-9.6 postgresql-contrib-9.6-yecho"ALTER USER postgres WITH ENCRYPTED PASSWORD '${default_pass}';"|sudo-u postgres psql
    echo"
local      all     postgres     md5
">>/etc/postgresql/9.6/main/pg_hba.conf
 
    service postgresql restart
 
fi 
if promptyn "Do you wish to install Nginx? "; thenwget-q http://nginx.org/keys/nginx_signing.key -O-|apt-key add -
 
    echo"
    # nginx
    deb http://nginx.org/packages/debian ${distrib} nginx
    deb-src http://nginx.org/packages/debian ${distrib} nginx
    ">/etc/apt/sources.list.d/nginx.list
    apt-get update 
    service nginx stop >/dev/null 2>&1
    installpkg nginx -y
    service nginx start
    check_result $?"nginx start failed" 
    info "Install Nginx"
    update-rc.d nginx defaults
    set_default_value 'nginx''true'fi 
if promptyn "Do you wish to install PHP-FPM? "; thenwget-q http://www.dotdeb.org/dotdeb.gpg -O-|apt-key add -
 
    php_ver=$(prompt "Please select php version like 5, 7.0, 7.1, 7.2, 7.3: ") 
    echo"
    # php-fpm dotdeb
    deb http://packages.dotdeb.org ${distrib} all
    deb-src http://packages.dotdeb.org ${distrib} all
    ">/etc/apt/sources.list.d/php-fpm.list
    apt-get update 
    service php${php_ver}-fpm stop >/dev/null 2>&1 
    if["$php_ver" == 5]; then
          installpkg -u-t stable php${php_ver} php${php_ver}-dev php${php_ver}-sqlite php${php_ver}-mcrypt php${php_ver}-xsl php${php_ver}-cli php${php_ver}-common php${php_ver}-mysql php${php_ver}-gd php${php_ver}-fpm php${php_ver}-cgi php-pear php${php_ver}-curl php${php_ver}-pgsql php${php_ver}-mbstring-yelse
          installpkg -u-t stable php${php_ver} php${php_ver}-dev php${php_ver}-sqlite php${php_ver}-mcrypt php${php_ver}-xsl php${php_ver}-cli php${php_ver}-common php${php_ver}-mysql php${php_ver}-gd php${php_ver}-fpm php${php_ver}-cgi php-pear php${php_ver}-curl php${php_ver}-redis php${php_ver}-pgsql php${php_ver}-mbstring-yfi 
    echo"cgi.fix_pathinfo = 0">>/etc/php/${php_ver}/fpm/php.ini
    service php${php_ver}-fpm start
    check_result $?"php${php_ver}-fpm start failed" 
    info "Install PHP-FPM"
    update-rc.d php${php_ver}-fpm defaults
    set_default_value "php${php_ver}-fpm"'true' 
    curl -sS https://getcomposer.org/installer | php ----install-dir=/usr/local/bin --filename=composer
fi 
if promptyn "Do you wish to install RabbitMQ? "; thenwget-q http://packages.erlang-solutions.com/debian/erlang_solutions.asc -O-|apt-key add -
    wget-q https://www.rabbitmq.com/rabbitmq-signing-key-public.asc -O-|apt-key add -
 
    echo"
    # Erlang
    deb http://packages.erlang-solutions.com/debian ${distrib} contrib
 
    # RabbitMq
    deb http://www.rabbitmq.com/debian/ testing main
    ">/etc/apt/sources.list.d/rabbitmq.list
    apt-get update 
    service rabbitmq-server start
    installpkg rabbitmq-server -y
    check_result $?"rabbitmq-server start failed" 
    info "Install RabbitMQ"
    update-rc.d rabbitmq-server defaults
    set_default_value 'rabbitmq-server''true'fi 
if promptyn "Do you wish to install Redis server? "; then
    installpkg redis-server -y
    service redis-server start
    check_result $?"redis-server start failed" 
    info "Install Redis"
    update-rc.d redis-server defaults
    set_default_value 'redis-server''true'fi 
if promptyn "Do you wish to install Elasticsearch server? "; then
    info "Elasticsearch versions you can see here: https://github.com/elastic/elasticsearch"elasticsearch_ver=$(prompt "Please select Elasticsearch version like 5.6.4, 5.6.6, 5.6.16, 6.1.1: ")
    install_elasticsearch $elasticsearch_verfi 
if promptyn "Do you wish to install DNS server? "; thenif promptyn "Do you wish to install bind (y) or pdns (n) server?"; then
        installpkg bind9 bind9utils bind9-libs -y
        service bind9 start
        info "Install DNS Server"
        set_default_value 'bind''true'else
        installpkg pdns-server pdns-backend-mysql pdns-recursor -y
        info "Install DNS Server"
        set_default_value 'pdns''true'fifi 
if promptyn "Do you wish to install Shorewall? "; then
    installpkg shorewall -yfi 
if promptyn "Do you wish to install Postfix/Exim4? "; then
    installpkg exim4-daemon-heavy mailutils -y
    service exim4 stop >/dev/null 2>&1
    gpasswd -a Debian-exim mail
 
    touch/etc/exim4/exim4.conf.template
    touch/etc/exim4/dnsbl.conf
    touch/etc/exim4/spam-blocks.conf
    touch/etc/exim4/white-blocks.conf
    chmod640/etc/exim4/exim4.conf.template
    rm-rf/etc/exim4/domains
    mkdir-p/etc/exim4/domains
 
    rm-f/etc/alternatives/mta
    ln-s/usr/sbin/exim4 /etc/alternatives/mta
    service sendmail stop >/dev/null 2>&1 
    service postfix stop >/dev/null 2>&1
    service exim4 start
 
    check_result $?"exim4 start failed"
    update-rc.d exim4 defaults
    set_default_value 'exim''true' 
    dpkg-reconfigure exim4-config
fi 
if promptyn "Do you wish to install Dovecot? "; then
    gpasswd -a dovecot mail
    chown-R root:root /etc/dovecot*
    service dovecot stop >/dev/null 2>&1
    installpkg dovecot-imapd dovecot-pop3d dovecot-common -y
    service dovecot start
 
    check_result $?"dovecot start failed"
    update-rc.d dovecot defaults
    set_default_value 'dovecot''true'fi 
if promptyn "Do you wish to install fail2ban? "; then
    installpkg fail2ban -y 
    if["$exim" = 'no']; thenfline=$(cat/etc/fail2ban/jail.local |grep-n exim-iptables -A2)fline=$(echo"$fline"|grep enabled |tail-n1|cut-f1-d -)sed-i"${fline}s/true/false/"/etc/fail2ban/jail.local
    fi 
   update-rc.d fail2ban defaults
    service fail2ban start
    check_result $?"fail2ban start failed"fi 
if promptyn "Do you wish to install Mysql backup system? "; then
    info "Install MySql backup system";
 
    apt-get update
    installpkg git-ygit clone https://github.com/Mirocow/mysql_utils.git /root/mysql_utils
 
    echo'
 
    # Run MySql backup system
    25 6    * * * root /bin/bash  ~/mysql_utils/backup.sh --dir="/var/backups/mysql" --compress=bzip2 --exclude="mysql" --lifetime="3 day ago"
    '>>/etc/crontab   
fi 
if promptyn "Do you wish to install create site script? "; then
    info "Install create site scriptm";
    wget https://raw.githubusercontent.com/Mirocow/site-create/master/site-create.sh -O/root/site-create.sh
fi 
rm/var/cache/apt/archives/*.deb -f 
if promptyn "Do you wish to set default shell settings? "; then
    info "Base system configure"echo'
    '>> ~/.bashrc
    source ~/.bashrc
 
    echo'
    set tabsize "2"
    '>> ~/.nanorc
fi 
apt-get autoremove-y

Viewing all articles
Browse latest Browse all 1318

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.