Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| debian:server-install-d8 [2016/02/15 16:34] – mirocow | debian:server-install-d8 [2018/06/17 20:33] (текущий) – ↷ Операцией перемещения обновлены ссылки 5.9.158.195 | ||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ====== Скрипт установки для Debian 8 ====== | ====== Скрипт установки для Debian 8 ====== | ||
| + | <code bash> | ||
| + | $ apt install php5-cgi php5-cli php5-common php5-curl php5-dev php5-fpm php5-gd php5-intl php5-json php5-mcrypt php5-memcache php5-memcached php5-mongo php5-mysql php5-readline php5-redis php5-sqlite php5-xsl php5-geoip php5-ssh2 | ||
| + | </ | ||
| + | |||
| + | * [[develop: | ||
| ===== Описание ===== | ===== Описание ===== | ||
| - | * Автоатическая установка и обновление зависимых пакетов | + | * Автоматическая установка и обновление зависимых пакетов |
| * Автоматическая устанока и настройка серверов GIT, PHP 5.6, PHP-FPM, Nginx, Redis, MySQL (mariadb), RabbitMQ, Exim4 | * Автоматическая устанока и настройка серверов GIT, PHP 5.6, PHP-FPM, Nginx, Redis, MySQL (mariadb), RabbitMQ, Exim4 | ||
| * Автоматическое конфигурирование пакетов | * Автоматическое конфигурирование пакетов | ||
| * Установка автоматического бекапа БД MySQL (https:// | * Установка автоматического бекапа БД MySQL (https:// | ||
| * Устанока скрипта для создания сайта (https:// | * Устанока скрипта для создания сайта (https:// | ||
| + | * [[system: | ||
| ===== Установка ===== | ===== Установка ===== | ||
| Строка 24: | Строка 30: | ||
| #!/bin/sh | #!/bin/sh | ||
| distrib=" | distrib=" | ||
| + | hostname="" | ||
| + | default_pass="" | ||
| - | # Maria BD | + | check_result() { |
| - | mysql=" | + | if [ $1 -ne 0 ]; then |
| + | echo "Error: $2" | ||
| + | exit $1 | ||
| + | fi | ||
| + | } | ||
| - | # Percona | + | promptyn () |
| - | # | + | { |
| + | while true; do | ||
| + | read -p " | ||
| + | case $yn in | ||
| + | [Yy]* ) return 0;; | ||
| + | [Nn]* ) return 1;; | ||
| + | * ) echo " | ||
| + | esac | ||
| + | done | ||
| + | } | ||
| - | # === DO NOT EDIT BELOW THIS LINE === | + | prompt () |
| + | { | ||
| + | while read -p " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | echo $variable; | ||
| + | } | ||
| - | echo -e "## Automatic installation servers apps ##" | + | installpkg() |
| + | { | ||
| + | for pkg in $@ | ||
| + | do | ||
| + | if [ $(dpkg-query -W -f=' | ||
| + | then | ||
| + | echo " | ||
| + | apt-get install -y $pkg; | ||
| + | fi | ||
| + | done | ||
| + | } | ||
| - | echo " | + | set_default_value() { |
| - | deb http:// | + | eval variable=\$$1 |
| - | deb-src http:// | + | if [ -z "$variable" |
| + | eval $1=$2 | ||
| + | fi | ||
| + | if [ " | ||
| + | eval $1=$2 | ||
| + | fi | ||
| + | } | ||
| - | deb http:// | + | if [ "x$(id -u)" != ' |
| - | deb-src http:// | + | |
| + | fi | ||
| - | deb http:// | + | apt-get update && apt-get upgrade -y |
| - | deb-src http:// | + | installpkg apt apt-utils wget chkconfig sudo nano rename debconf-utils pwgen |
| - | # erlyvideo.org | + | default_pass=$(pwgen -s 7 1) |
| - | #deb http:// | + | |
| - | # php-fpm dotdeb | + | hostname=$(prompt "Enter the Internet domain name (e.g. nixcraft.com) |
| - | deb http:// | + | |
| - | deb-src http:// | + | |
| - | # nginx | + | if promptyn "Do you wish to install default programs? [mc, git, etc] " ; then |
| - | deb http:// | + | |
| - | deb-src http:// | + | echo -e " |
| + | installpkg mc git mercurial bash-completion bzip2 numactl dnsutils -y | ||
| - | # Erlang | + | fi |
| - | deb http:// | + | |
| - | # RabbitMq | + | if promptyn "Do you wish to install developers programs? [gcc, g++, etc] "; then |
| - | deb http:// | + | |
| + | echo -e " | ||
| + | installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev clang cmake -y | ||
| - | # Percona | + | fi |
| - | deb http:// | + | |
| - | deb-src http:// | + | |
| - | " > / | + | |
| - | cp / | + | if promptyn "Do you wish to install system monitors? [htop, iptraf] "; then |
| + | |||
| + | echo -e " | ||
| + | installpkg htop iptraf jnettop iftop -y | ||
| - | # Add repository keys | + | fi |
| - | wget -q http:// | + | |
| - | wget -q http:// | + | |
| - | wget -q http:// | + | |
| - | wget -q https:// | + | |
| - | # Add Percona key | + | if promptyn "Do you wish to uninstall systemd and install systemv? "; then |
| - | gpg --keyserver | + | |
| - | gpg -a --export CD2EFD2A | sudo apt-key add - | + | installpkg sysvinit-core sysvinit-utils -y |
| + | cp /usr/share/ | ||
| + | |||
| + | fi | ||
| - | echo -e "## Update OS ##" | + | if promptyn "Do you wish to install FTP Server (PRO-Ftpd)? |
| - | sleep 1 | + | installpkg proftpd |
| - | apt-get update && apt-get upgrade -y | + | fi |
| - | echo -e "## Install my app list ##" | + | if promptyn |
| - | sleep 1 | + | |
| - | apt-get | + | |
| - | echo -e "## Install PHP-FPM ##" | + | installpkg software-properties-common |
| - | sleep 1 | + | |
| - | apt-get install -u -t stable php5 php5-dev php5-sqlite php5-mcrypt php5-xsl php5-cli php5-common | + | |
| - | php5-cgi php-pear php5-curl php5-xcache php5-redis -y | + | |
| - | echo " | + | |
| - | chkconfig php5-fpm on | + | |
| - | echo -e "## Install Nginx ##" | + | if promptyn |
| - | sleep 1 | + | |
| - | apt-get install nginx -y | + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db |
| - | chkconfig nginx on | + | |
| - | echo -e "## | + | echo " |
| - | sleep 1 | + | # Percona |
| - | apt-get | + | #deb http:// |
| - | chkconfig redis-server | + | #deb-src http:// |
| + | " | ||
| + | apt-get | ||
| + | |||
| + | 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" | ||
| - | echo -e "## Install MySQL $mysql | + | mysqladmin -u root password $default_pass |
| - | sleep 1 | + | echo -e "[client]\npassword=' |
| - | apt-get install $mysql mytop -y | + | chmod 600 / |
| - | chkconfig | + | mysql -e " |
| + | mysql -e "DROP DATABASE test" >/ | ||
| + | mysql | ||
| + | mysql -e " | ||
| + | mysql -e "FLUSH PRIVILEGES" | ||
| - | echo -e "## Install | + | echo -e " |
| - | sleep 1 | + | chkconfig mysql on |
| - | apt-get install rabbitmq-server | + | set_default_value ' |
| - | chkconfig rabbitmq-server on | + | |
| + | else | ||
| + | # for sid | ||
| + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 | ||
| + | # for jessie | ||
| + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | ||
| - | echo -e "## | + | echo " |
| - | apt-get | + | # MariaDB 10.1 repository list - created 2016-08-05 19:23 UTC |
| + | # http:// | ||
| + | deb [arch=amd64, | ||
| + | deb-src http:// | ||
| + | " | ||
| + | apt-get | ||
| + | |||
| + | installpkg mariadb-server mariadb-client mariadb-common mytop -y | ||
| + | service mysql start | ||
| + | check_result $? "mysql start failed" | ||
| - | #echo -e "## Install DNS Server ##" | + | mysqladmin -u root password $default_pass |
| - | #apt-get install bind9 bind9utils bind9-libs -y | + | echo -e "[client]\npassword=' |
| - | #apt-get install pdns-server pdns-backend-mysql | + | chmod 600 / |
| + | mysql | ||
| + | mysql | ||
| + | mysql | ||
| + | mysql | ||
| + | mysql -e "FLUSH PRIVILEGES" | ||
| - | echo -e "## Install | + | echo -e " |
| - | sleep 1 | + | chkconfig mysql on |
| - | apt-get install exim4 -y | + | set_default_value ' |
| - | dpkg-reconfigure exim4-config | + | |
| + | fi | ||
| - | echo -e "## Install | + | fi |
| - | sleep 1 | + | |
| - | cd /root | + | if promptyn "Do you wish to install Nginx? "; then |
| - | git clone https:// | + | |
| + | wget -q http:// | ||
| + | |||
| + | echo " | ||
| + | # nginx | ||
| + | deb http:// | ||
| + | deb-src http:// | ||
| + | " > / | ||
| + | apt-get update | ||
| + | |||
| + | service nginx stop > /dev/null 2>& | ||
| + | installpkg nginx -y | ||
| + | service nginx start | ||
| + | check_result $? "nginx start failed" | ||
| + | |||
| + | echo -e "Install Nginx" | ||
| + | chkconfig nginx on | ||
| + | set_default_value ' | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install PHP-FPM? "; then | ||
| + | |||
| + | wget -q http:// | ||
| + | |||
| + | php_ver=$(prompt " | ||
| + | |||
| + | echo " | ||
| + | # php-fpm dotdeb | ||
| + | deb http:// | ||
| + | deb-src http:// | ||
| + | " > / | ||
| + | apt-get update | ||
| + | |||
| + | service php${php_ver}-fpm stop >/ | ||
| + | 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}-xcache php5-redis -y | ||
| + | echo " | ||
| + | service php${php_ver}-fpm start | ||
| + | check_result $? " | ||
| + | |||
| + | echo -e "Install | ||
| + | chkconfig php${php_ver}-fpm on | ||
| + | set_default_value " | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install RabbitMQ? "; then | ||
| + | |||
| + | wget -q http:// | ||
| + | wget -q https:// | ||
| + | |||
| + | echo " | ||
| + | # Erlang | ||
| + | deb http:// | ||
| + | |||
| + | # RabbitMq | ||
| + | deb http:// | ||
| + | " | ||
| + | apt-get update | ||
| + | |||
| + | service rabbitmq-server start | ||
| + | installpkg rabbitmq-server -y | ||
| + | check_result $? " | ||
| + | |||
| + | echo -e " | ||
| + | chkconfig rabbitmq-server on | ||
| + | set_default_value ' | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install Redis server? "; then | ||
| + | |||
| + | installpkg redis-server -y | ||
| + | service redis-server start | ||
| + | check_result $? " | ||
| + | |||
| + | echo -e " | ||
| + | chkconfig redis-server on | ||
| + | set_default_value ' | ||
| + | |||
| + | fi | ||
| + | |||
| + | 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 | ||
| + | service bind9 start | ||
| + | echo -e " | ||
| + | set_default_value ' | ||
| + | else | ||
| + | installpkg pdns-server pdns-backend-mysql pdns-recursor -y | ||
| + | echo -e " | ||
| + | set_default_value ' | ||
| + | fi | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install Shorewall? "; then | ||
| + | |||
| + | installpkg shorewall -y | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install Postfix/ | ||
| + | |||
| + | installpkg exim4-daemon-heavy mailutils postfix -y | ||
| + | service exim4 stop > /dev/null 2>&1 | ||
| + | gpasswd -a Debian-exim mail | ||
| + | |||
| + | touch | ||
| + | touch / | ||
| + | touch / | ||
| + | touch / | ||
| + | chmod 640 / | ||
| + | rm -rf / | ||
| + | mkdir -p / | ||
| + | |||
| + | rm -f / | ||
| + | ln -s / | ||
| + | service sendmail stop > /dev/null 2>&1 | ||
| + | service postfix stop > /dev/null 2>& | ||
| + | service exim4 start | ||
| + | |||
| + | check_result $? "exim4 start failed" | ||
| + | chkconfig exim4 on | ||
| + | set_default_value ' | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install Dovecot? "; then | ||
| + | |||
| + | gpasswd -a dovecot mail | ||
| + | chown -R root:root / | ||
| + | service dovecot stop > /dev/null 2>& | ||
| + | installpkg dovecot-imapd dovecot-pop3d dovecot-common -y | ||
| + | service dovecot start | ||
| + | |||
| + | check_result $? " | ||
| + | chkconfig dovecot on | ||
| + | set_default_value ' | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install fail2ban? "; then | ||
| + | |||
| + | installpkg fail2ban -y | ||
| + | |||
| + | if [ " | ||
| + | fline=$(cat / | ||
| + | fline=$(echo " | ||
| + | sed -i " | ||
| + | fi | ||
| + | |||
| + | chkconfig fail2ban on | ||
| + | service fail2ban start | ||
| + | check_result $? " | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install Mysql backup system? "; then | ||
| + | |||
| + | echo -e " | ||
| + | |||
| + | apt-get update | ||
| + | installpkg git -y | ||
| + | git clone https:// | ||
| + | |||
| + | echo ' | ||
| + | |||
| + | # Run MySql backup system | ||
| + | 25 6 * * * root / | ||
| + | ' >> / | ||
| + | |||
| + | fi | ||
| + | |||
| + | if promptyn "Do you wish to install create site script? "; then | ||
| + | |||
| + | echo -e " | ||
| + | wget https:// | ||
| + | |||
| + | fi | ||
| - | echo -e "## Install create site script ##" | + | rm /var/cache/apt/archives/*.deb -f |
| - | sleep 1 | + | |
| - | cd /root | + | |
| - | wget https://raw.githubusercontent.com/Mirocow/site-create/ | + | |
| - | #echo " | + | if promptyn |
| - | #rm / | + | |
| - | echo -e "## Base system configure | + | echo -e "Base system configure" |
| echo ' | echo ' | ||
| Строка 145: | Строка 387: | ||
| # My config | # My config | ||
| # | # | ||
| + | |||
| + | #search in history with arrows | ||
| + | bind '" | ||
| + | bind '" | ||
| + | |||
| alias nano=" | alias nano=" | ||
| alias ls="ls --color=always" | alias ls="ls --color=always" | ||
| Строка 168: | Строка 415: | ||
| function h(){ | function h(){ | ||
| - | | + | |
| - | } | + | |
| - | + | ||
| - | # | + | |
| - | # Функции для работы с файлами и строками: | + | |
| - | # | + | |
| - | + | ||
| - | # Поиск файла по шаблону: | + | |
| - | function ff() { find . -type f -iname ' | + | |
| - | + | ||
| - | # Поиск файла по шаблону в $1 и запуск команды в $2 с ним: | + | |
| - | function fe() { find . -type f -iname ' | + | |
| - | + | ||
| - | # поиск строки по файлам: | + | |
| - | function fstr() | + | |
| - | { | + | |
| - | OPTIND=1 | + | |
| - | local case="" | + | |
| - | local usage=" | + | |
| - | Порядок использования: | + | |
| - | while getopts :it opt | + | |
| - | do | + | |
| - | case " | + | |
| - | i) case=" | + | |
| - | *) echo " | + | |
| - | esac | + | |
| - | done | + | |
| - | shift $(( $OPTIND - 1 )) | + | |
| - | if [ " | + | |
| - | echo " | + | |
| - | return; | + | |
| - | fi | + | |
| - | local SMSO=$(tput smso) | + | |
| - | local RMSO=$(tput rmso) | + | |
| - | find . -type f -name " | + | |
| - | sed " | + | |
| } | } | ||
| # Включение магии bash | # Включение магии bash | ||
| if [ -f / | if [ -f / | ||
| - | . / | + | |
| fi | fi | ||
| Строка 216: | Строка 428: | ||
| echo ' | echo ' | ||
| set tabsize " | set tabsize " | ||
| - | ' >> ~/.nanorc | + | ' >> ~/.nanorc |
| - | + | fi | |
| - | echo ' | + | |
| - | + | ||
| - | # Run MySql backup system | + | |
| - | 25 6 * * * root / | + | |
| - | ' >> / | + | |
| - | + | ||
| - | shutdown -r now | + | |
| + | apt-get update | ||
| + | apt-get upgrade | ||
| + | apt-get autoremove -y | ||
| </ | </ | ||