Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| debian:server-install-d9 [2018/01/20 22:36] – старая версия восстановлена (2018/01/21 01:21) mirocow | debian:server-install-d9 [2018/06/17 20:33] (текущий) – ↷ Операцией перемещения обновлены ссылки 5.9.158.195 | ||
|---|---|---|---|
| Строка 7: | Строка 7: | ||
| </ | </ | ||
| - | * [[php: | + | * [[develop:php: |
| ===== Описание ===== | ===== Описание ===== | ||
| Строка 16: | Строка 16: | ||
| * Установка автоматического бекапа БД MySQL (https:// | * Установка автоматического бекапа БД MySQL (https:// | ||
| * Устанока скрипта для создания сайта (https:// | * Устанока скрипта для создания сайта (https:// | ||
| + | * [[system: | ||
| ===== Установка ===== | ===== Установка ===== | ||
| Строка 38: | Строка 39: | ||
| #!/bin/sh | #!/bin/sh | ||
| distrib=" | distrib=" | ||
| + | |||
| function info | function info | ||
| { | { | ||
| Строка 45: | Строка 46: | ||
| echo " " | echo " " | ||
| } | } | ||
| + | |||
| function check_result() | function check_result() | ||
| { | { | ||
| Строка 53: | Строка 54: | ||
| fi | fi | ||
| } | } | ||
| + | |||
| function promptyn () | function promptyn () | ||
| { | { | ||
| - | while true; do | + | |
| - | | + | read -p " |
| - | | + | case $yn in |
| - | | + | [Yy]* ) return 0;; |
| - | | + | [Nn]* ) return 1;; |
| - | | + | * ) echo " |
| - | | + | esac |
| - | done | + | done |
| } | } | ||
| + | |||
| function prompt () | function prompt () | ||
| { | { | ||
| - | while read -p " | + | |
| - | echo " | + | echo " |
| - | done | + | done |
| - | + | ||
| - | echo $variable; | + | echo $variable; |
| } | } | ||
| + | |||
| function installpkg() | function installpkg() | ||
| { | { | ||
| Строка 82: | Строка 83: | ||
| then | then | ||
| echo " | echo " | ||
| - | apt-get install | + | apt-get install $pkg; |
| fi | fi | ||
| done | done | ||
| } | } | ||
| + | |||
| function set_default_value() { | function set_default_value() { | ||
| eval variable=\$$1 | eval variable=\$$1 | ||
| Строка 96: | Строка 97: | ||
| fi | fi | ||
| } | } | ||
| + | |||
| function h() | function h() | ||
| { | { | ||
| history| grep " | history| grep " | ||
| } | } | ||
| + | |||
| function install_elasticsearch() | function install_elasticsearch() | ||
| { | { | ||
| - | VERSION=$1 | + | |
| - | es_memory=' | + | es_memory=' |
| - | + | ||
| - | apt-get install openjdk-8-jdk | + | apt-get install openjdk-8-jdk |
| - | rm / | + | rm / |
| - | ln -s / | + | ln -s / |
| - | + | ||
| - | export JAVA_HOME=/ | + | export JAVA_HOME=/ |
| - | export PATH=$JAVA_HOME/ | + | export PATH=$JAVA_HOME/ |
| - | + | ||
| - | if [ ! -f elasticsearch-$VERSION.deb ]; then | + | if [ ! -f elasticsearch-$VERSION.deb ]; then |
| - | | + | wget https:// |
| - | fi | + | fi |
| - | + | ||
| - | sudo dpkg -i elasticsearch-$VERSION.deb | + | sudo dpkg -i elasticsearch-$VERSION.deb |
| - | + | ||
| - | # be sure you add " | + | # be sure you add " |
| - | + | ||
| - | info " | + | info " |
| - | + | ||
| - | sed -i "/ | + | sed -i "/ |
| - | sed -i " | + | sed -i " |
| - | sed -i " | + | sed -i " |
| - | sed -i " | + | sed -i " |
| - | sed -i " | + | sed -i " |
| - | sed -i " | + | sed -i " |
| - | + | ||
| - | # enabled | + | # enabled |
| - | update-rc.d elasticsearch defaults | + | update-rc.d elasticsearch defaults |
| - | + | ||
| - | # start script | + | # start script |
| - | service elasticsearch restart | + | service elasticsearch restart |
| - | + | ||
| - | if [ -f / | + | if [ -f / |
| - | | + | rm / |
| - | fi | + | fi |
| - | + | ||
| - | sudo ln -s / | + | sudo ln -s / |
| } | } | ||
| + | |||
| if [ "x$(id -u)" != ' | if [ "x$(id -u)" != ' | ||
| check_result 1 " | check_result 1 " | ||
| fi | fi | ||
| + | |||
| apt-get update && apt-get upgrade -y | apt-get update && apt-get upgrade -y | ||
| - | installpkg apt apt-utils wget sudo nano rename debconf-utils pwgen mailutils curl | + | installpkg apt apt-utils wget sudo nano rename debconf-utils pwgen mailutils curl dirmngr -y |
| + | |||
| default_pass=$(pwgen -s 18 1 -n -c -s -y) | default_pass=$(pwgen -s 18 1 -n -c -s -y) | ||
| + | |||
| hostname=$(prompt "Enter the Internet domain name (e.g. nixcraft.com) : "); | hostname=$(prompt "Enter the Internet domain name (e.g. nixcraft.com) : "); | ||
| + | |||
| if promptyn "Do you wish to install default programs? [mc, git, etc] " ; then | if promptyn "Do you wish to install default programs? [mc, git, etc] " ; then | ||
| - | info " | + | |
| - | installpkg mc git mercurial bash-completion bzip2 numactl dnsutils -y | + | installpkg mc git mercurial bash-completion bzip2 numactl dnsutils -y |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install developers programs? [gcc, g++, etc] "; then | if promptyn "Do you wish to install developers programs? [gcc, g++, etc] "; then | ||
| - | info " | + | |
| - | installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev clang cmake -y | + | installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev clang cmake -y |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install system monitors? [htop, iptraf] "; then | if promptyn "Do you wish to install system monitors? [htop, iptraf] "; then | ||
| - | info " | + | |
| - | installpkg htop iptraf jnettop iftop -y | + | installpkg htop iptraf jnettop iftop -y |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to uninstall systemd and install systemv? "; then | if promptyn "Do you wish to uninstall systemd and install systemv? "; then | ||
| - | installpkg sysvinit-core sysvinit-utils -y | + | |
| - | cp / | + | cp / |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install FTP Server (PRO-Ftpd)? "; then | if promptyn "Do you wish to install FTP Server (PRO-Ftpd)? "; then | ||
| - | installpkg proftpd | + | |
| - | fi | + | fi |
| + | |||
| if promptyn "Do you wish to install MySql? "; then | if promptyn "Do you wish to install MySql? "; then | ||
| - | installpkg software-properties-common | + | |
| - | if promptyn "Do you wish to install MySql (Percona) (y) or Mariadb (n)?"; then | + | if promptyn "Do you wish to install MySql (Percona) (y) or Mariadb (n)?"; then |
| - | + | ||
| - | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db |
| - | + | ||
| - | echo " | + | echo " |
| - | # Percona | + | # Percona |
| - | #deb http:// | + | #deb http:// |
| - | #deb-src http:// | + | #deb-src http:// |
| - | " > / | + | " > / |
| - | apt-get update | + | apt-get update |
| - | + | ||
| - | installpkg percona-server-server-5.7 percona-server-client-5.7 percona-server-common-5.7 percona-toolkit -y | + | installpkg percona-server-server-5.7 percona-server-client-5.7 percona-server-common-5.7 percona-toolkit -y |
| - | sevice mysql start | + | sevice mysql start |
| - | check_result $? "mysql start failed" | + | check_result $? "mysql start failed" |
| - | + | ||
| - | info " | + | info " |
| - | chmod 600 / | + | chmod 600 / |
| - | mysql -e "SET PASSWORD FOR ' | + | mysql -e "SET PASSWORD FOR ' |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e "DROP DATABASE test" >/ | + | mysql -e "DROP DATABASE test" >/ |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e "FLUSH PRIVILEGES" | + | mysql -e "FLUSH PRIVILEGES" |
| - | + | ||
| - | info " | + | info " |
| - | update-rc.d mysql defaults | + | update-rc.d mysql defaults |
| - | set_default_value ' | + | set_default_value ' |
| - | + | ||
| - | else | + | else |
| - | # for sid | + | # for sid |
| - | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 | + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 |
| - | # for jessie | + | # for jessie |
| - | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db |
| - | + | ||
| - | echo " | + | echo " |
| - | # MariaDB 10.1 repository list - created 2016-08-05 19:23 UTC | + | # MariaDB 10.1 repository list - created 2016-08-05 19:23 UTC |
| - | # http:// | + | # http:// |
| - | deb [arch=amd64, | + | deb [arch=amd64, |
| - | deb-src http:// | + | deb-src http:// |
| - | " > / | + | " > / |
| - | apt-get update | + | apt-get update |
| - | + | ||
| - | installpkg mariadb-server mariadb-client mariadb-common --allow-unauthenticated | + | installpkg mariadb-server mariadb-client mariadb-common --allow-unauthenticated |
| - | service mysql start | + | service mysql start |
| - | check_result $? "mysql start failed" | + | check_result $? "mysql start failed" |
| - | + | ||
| - | info " | + | info " |
| - | chmod 600 / | + | chmod 600 / |
| - | mysql -e "SET PASSWORD FOR ' | + | mysql -e "SET PASSWORD FOR ' |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e "DROP DATABASE test" >/ | + | mysql -e "DROP DATABASE test" >/ |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e " | + | mysql -e " |
| - | mysql -e "FLUSH PRIVILEGES" | + | mysql -e "FLUSH PRIVILEGES" |
| - | + | ||
| - | info " | + | info " |
| - | update-rc.d mysql defaults | + | update-rc.d mysql defaults |
| - | set_default_value ' | + | set_default_value ' |
| fi | fi | ||
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install PostgreSql? "; then | if promptyn "Do you wish to install PostgreSql? "; then | ||
| - | installpkg postgresql-9.6 postgresql-contrib-9.6 | + | |
| - | echo "ALTER USER postgres WITH ENCRYPTED PASSWORD ' | + | echo "ALTER USER postgres WITH ENCRYPTED PASSWORD ' |
| - | echo " | + | echo " |
| local all | local all | ||
| " >> / | " >> / | ||
| - | + | ||
| - | service postgresql restart | + | service postgresql restart |
| + | |||
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Nginx? "; then | if promptyn "Do you wish to install Nginx? "; then | ||
| - | wget -q http:// | + | |
| - | + | ||
| - | echo " | + | echo " |
| - | # nginx | + | # nginx |
| - | deb http:// | + | deb http:// |
| - | deb-src http:// | + | deb-src http:// |
| - | " > / | + | " > / |
| - | apt-get update | + | apt-get update |
| - | + | ||
| - | service nginx stop > /dev/null 2>& | + | service nginx stop > /dev/null 2>& |
| - | installpkg nginx -y | + | installpkg nginx -y |
| - | service nginx start | + | service nginx start |
| - | check_result $? "nginx start failed" | + | check_result $? "nginx start failed" |
| - | + | ||
| - | info " | + | info " |
| - | update-rc.d nginx defaults | + | update-rc.d nginx defaults |
| - | set_default_value ' | + | set_default_value ' |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install PHP-FPM? "; then | if promptyn "Do you wish to install PHP-FPM? "; then | ||
| - | wget -q http:// | + | |
| - | + | ||
| - | php_ver=$(prompt " | + | php_ver=$(prompt " |
| - | + | ||
| - | echo " | + | echo " |
| - | # php-fpm dotdeb | + | # php-fpm dotdeb |
| - | deb http:// | + | deb http:// |
| - | deb-src http:// | + | deb-src http:// |
| - | " > / | + | " > / |
| - | apt-get update | + | apt-get update |
| - | + | ||
| - | service php${php_ver}-fpm stop >/ | + | service php${php_ver}-fpm stop >/ |
| - | + | ||
| - | if [ $php_ver | + | 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 -y |
| - | fi | + | fi |
| - | + | ||
| - | if [ $php_ver | + | if [ "$php_ver" == " |
| - | | + | 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 -y |
| - | fi | + | fi |
| - | + | ||
| - | if [ $php_ver | + | if [ "$php_ver" == " |
| - | | + | 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 |
| - | fi | + | fi |
| - | + | ||
| - | echo " | + | echo " |
| - | service php${php_ver}-fpm start | + | service php${php_ver}-fpm start |
| - | check_result $? " | + | check_result $? " |
| - | + | ||
| - | info " | + | info " |
| - | update-rc.d php${php_ver}-fpm defaults | + | update-rc.d php${php_ver}-fpm defaults |
| - | set_default_value " | + | set_default_value " |
| - | + | ||
| - | curl -sS https:// | + | curl -sS https:// |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install RabbitMQ? "; then | if promptyn "Do you wish to install RabbitMQ? "; then | ||
| - | wget -q http:// | + | |
| - | wget -q https:// | + | wget -q https:// |
| - | + | ||
| - | echo " | + | echo " |
| - | # Erlang | + | # Erlang |
| - | deb http:// | + | deb http:// |
| - | + | ||
| - | # RabbitMq | + | # RabbitMq |
| - | deb http:// | + | deb http:// |
| - | " > / | + | " > / |
| - | apt-get update | + | apt-get update |
| - | + | ||
| - | service rabbitmq-server start | + | service rabbitmq-server start |
| - | installpkg rabbitmq-server -y | + | installpkg rabbitmq-server -y |
| - | check_result $? " | + | check_result $? " |
| - | + | ||
| - | info " | + | info " |
| - | update-rc.d rabbitmq-server defaults | + | update-rc.d rabbitmq-server defaults |
| - | set_default_value ' | + | set_default_value ' |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Redis server? "; then | if promptyn "Do you wish to install Redis server? "; then | ||
| - | installpkg redis-server -y | + | |
| - | service redis-server start | + | service redis-server start |
| - | check_result $? " | + | check_result $? " |
| - | + | ||
| - | info " | + | info " |
| - | update-rc.d redis-server defaults | + | update-rc.d redis-server defaults |
| - | set_default_value ' | + | set_default_value ' |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Elasticsearch server? "; then | if promptyn "Do you wish to install Elasticsearch server? "; then | ||
| - | info " | + | |
| - | elasticsearch_ver=$(prompt " | + | elasticsearch_ver=$(prompt " |
| - | install_elasticsearch $elasticsearch_ver | + | install_elasticsearch $elasticsearch_ver |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install DNS server? "; then | if promptyn "Do you wish to install DNS server? "; then | ||
| - | if promptyn "Do you wish to install bind (y) or pdns (n) server?"; | + | |
| - | installpkg bind9 bind9utils bind9-libs -y | + | installpkg bind9 bind9utils bind9-libs -y |
| - | service bind9 start | + | service bind9 start |
| - | info " | + | info " |
| - | set_default_value ' | + | set_default_value ' |
| - | else | + | else |
| - | installpkg pdns-server pdns-backend-mysql pdns-recursor -y | + | installpkg pdns-server pdns-backend-mysql pdns-recursor -y |
| - | info " | + | info " |
| - | set_default_value ' | + | set_default_value ' |
| - | fi | + | fi |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Shorewall? "; then | if promptyn "Do you wish to install Shorewall? "; then | ||
| - | installpkg shorewall -y | + | |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Postfix/ | if promptyn "Do you wish to install Postfix/ | ||
| - | installpkg exim4-daemon-heavy mailutils -y | + | |
| - | service exim4 stop > /dev/null 2>& | + | service exim4 stop > /dev/null 2>& |
| - | gpasswd -a Debian-exim mail | + | gpasswd -a Debian-exim mail |
| - | + | ||
| - | touch / | + | touch / |
| - | touch / | + | touch / |
| - | touch / | + | touch / |
| - | touch / | + | touch / |
| - | chmod 640 / | + | chmod 640 / |
| - | rm -rf / | + | rm -rf / |
| - | mkdir -p / | + | mkdir -p / |
| - | + | ||
| - | rm -f / | + | rm -f / |
| - | ln -s / | + | ln -s / |
| - | service sendmail stop > /dev/null 2>&1 | + | service sendmail stop > /dev/null 2>&1 |
| - | service postfix stop > /dev/null 2>& | + | service postfix stop > /dev/null 2>& |
| - | service exim4 start | + | service exim4 start |
| - | + | ||
| - | check_result $? "exim4 start failed" | + | check_result $? "exim4 start failed" |
| - | update-rc.d exim4 defaults | + | update-rc.d exim4 defaults |
| - | set_default_value ' | + | set_default_value ' |
| - | + | ||
| - | dpkg-reconfigure exim4-config | + | dpkg-reconfigure exim4-config |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Dovecot? "; then | if promptyn "Do you wish to install Dovecot? "; then | ||
| - | gpasswd -a dovecot mail | + | |
| - | chown -R root:root / | + | chown -R root:root / |
| - | service dovecot stop > /dev/null 2>& | + | service dovecot stop > /dev/null 2>& |
| - | installpkg dovecot-imapd dovecot-pop3d dovecot-common -y | + | installpkg dovecot-imapd dovecot-pop3d dovecot-common -y |
| - | service dovecot start | + | service dovecot start |
| - | + | ||
| - | check_result $? " | + | check_result $? " |
| - | update-rc.d dovecot defaults | + | update-rc.d dovecot defaults |
| - | set_default_value ' | + | set_default_value ' |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install fail2ban? "; then | if promptyn "Do you wish to install fail2ban? "; then | ||
| - | installpkg fail2ban -y | + | |
| - | + | ||
| - | if [ " | + | if [ " |
| - | fline=$(cat / | + | fline=$(cat / |
| - | fline=$(echo " | + | fline=$(echo " |
| - | sed -i " | + | sed -i " |
| - | fi | + | fi |
| + | |||
| | | ||
| - | service fail2ban start | + | |
| - | check_result $? " | + | check_result $? " |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install Mysql backup system? "; then | if promptyn "Do you wish to install Mysql backup system? "; then | ||
| - | info " | + | |
| - | + | ||
| - | apt-get update | + | apt-get update |
| - | installpkg git -y | + | installpkg git -y |
| - | git clone https:// | + | git clone https:// |
| - | + | ||
| - | echo ' | + | echo ' |
| - | + | ||
| - | # Run MySql backup system | + | # Run MySql backup system |
| - | 25 6 * * * root / | + | 25 6 * * * root / |
| - | ' >> / | + | ' >> / |
| fi | fi | ||
| + | |||
| if promptyn "Do you wish to install create site script? "; then | if promptyn "Do you wish to install create site script? "; then | ||
| - | info " | + | |
| - | wget https:// | + | wget https:// |
| fi | fi | ||
| + | |||
| rm / | rm / | ||
| + | |||
| if promptyn "Do you wish to set default shell settings? "; then | if promptyn "Do you wish to set default shell settings? "; then | ||
| - | info "Base system configure" | + | |
| - | echo ' | + | echo ' |
| - | ' >> ~/.bashrc | + | ' >> ~/.bashrc |
| - | source ~/.bashrc | + | source ~/.bashrc |
| - | + | ||
| - | echo ' | + | echo ' |
| - | set tabsize " | + | set tabsize " |
| - | ' >> ~/.nanorc | + | ' >> ~/.nanorc |
| fi | fi | ||
| + | |||
| apt-get autoremove -y | apt-get autoremove -y | ||
| </ | </ | ||