Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| debian:server-install-d8 [2016/08/07 17:14] – [Установка] 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: | ||
| ===== Установка ===== | ===== Установка ===== | ||
| Строка 25: | Строка 31: | ||
| distrib=" | distrib=" | ||
| hostname="" | hostname="" | ||
| + | default_pass="" | ||
| + | |||
| + | check_result() { | ||
| + | if [ $1 -ne 0 ]; then | ||
| + | echo " | ||
| + | exit $1 | ||
| + | fi | ||
| + | } | ||
| promptyn () | promptyn () | ||
| Строка 36: | Строка 50: | ||
| esac | esac | ||
| done | done | ||
| + | } | ||
| + | |||
| + | prompt () | ||
| + | { | ||
| + | while read -p " | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | echo $variable; | ||
| } | } | ||
| Строка 44: | Строка 67: | ||
| if [ $(dpkg-query -W -f=' | if [ $(dpkg-query -W -f=' | ||
| then | then | ||
| - | echo " | + | |
| apt-get install -y $pkg; | apt-get install -y $pkg; | ||
| fi | fi | ||
| Строка 50: | Строка 73: | ||
| } | } | ||
| - | replacetext() | + | set_default_value() { |
| - | { | + | eval variable=\$$1 |
| - | sed -ie "s/$1/$2/" $3 | + | if [ -z "$variable" |
| + | eval $1=$2 | ||
| + | fi | ||
| + | if [ "$variable" | ||
| + | eval $1=$2 | ||
| + | fi | ||
| } | } | ||
| + | |||
| + | if [ "x$(id -u)" != ' | ||
| + | check_result 1 " | ||
| + | fi | ||
| apt-get update && apt-get upgrade -y | apt-get update && apt-get upgrade -y | ||
| - | installpkg apt apt-utils wget chkconfig sudo nano rename debconf-utils | + | installpkg apt apt-utils wget chkconfig sudo nano rename debconf-utils |
| + | |||
| + | default_pass=$(pwgen -s 7 1) | ||
| - | while read -p 'Enter the Internet domain name (e.g. nixcraft.com) : ' hostname && [[ -z "$hostname" | + | hostname=$(prompt "Enter the Internet domain name (e.g. nixcraft.com) : "); |
| - | echo "No, please, no blank hostname!" | + | |
| - | done | + | |
| - | if promptyn "Do you wish to install default programs? " ; then | + | if promptyn "Do you wish to install default programs? |
| echo -e " | echo -e " | ||
| - | installpkg mc git mercurial bash-completion bzip2 numactl -y | + | installpkg mc git mercurial bash-completion bzip2 numactl |
| fi | fi | ||
| - | if promptyn "Do you wish to install developers programs? "; then | + | if promptyn "Do you wish to install developers programs? |
| echo -e " | echo -e " | ||
| - | installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev -y | + | installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev |
| fi | fi | ||
| - | if promptyn "Do you wish to install system monitors? "; then | + | if promptyn "Do you wish to install system monitors? |
| echo -e " | echo -e " | ||
| Строка 88: | Строка 120: | ||
| cp / | cp / | ||
| + | fi | ||
| + | |||
| + | 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 | ||
| - | installpkg software-properties-common | ||
| apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | ||
| Строка 101: | Строка 138: | ||
| #deb http:// | #deb http:// | ||
| #deb-src http:// | #deb-src http:// | ||
| - | " > etc/ | + | " > /etc/ |
| apt-get update | apt-get update | ||
| - | echo -e " | ||
| 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 | ||
| + | check_result $? "mysql start failed" | ||
| + | |||
| + | mysqladmin -u root password $default_pass | ||
| + | echo -e " | ||
| + | chmod 600 / | ||
| + | mysql -e " | ||
| + | mysql -e "DROP DATABASE test" >/ | ||
| + | mysql -e " | ||
| + | mysql -e " | ||
| + | mysql -e "FLUSH PRIVILEGES" | ||
| + | |||
| + | echo -e " | ||
| chkconfig mysql on | chkconfig mysql on | ||
| + | set_default_value ' | ||
| else | else | ||
| - | + | # for sid | |
| - | installpkg software-properties-common | + | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 |
| + | # for jessie | ||
| apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db | ||
| Строка 118: | Строка 169: | ||
| deb [arch=amd64, | deb [arch=amd64, | ||
| deb-src http:// | deb-src http:// | ||
| - | " > etc/ | + | " > /etc/ |
| apt-get update | apt-get update | ||
| - | echo -e " | ||
| installpkg mariadb-server mariadb-client mariadb-common mytop -y | installpkg mariadb-server mariadb-client mariadb-common mytop -y | ||
| - | chkconfig mysql on | + | service mysql start |
| + | check_result $? "mysql start failed" | ||
| + | |||
| + | mysqladmin -u root password $default_pass | ||
| + | echo -e " | ||
| + | chmod 600 / | ||
| + | mysql -e " | ||
| + | mysql -e "DROP DATABASE test" >/ | ||
| + | mysql -e " | ||
| + | mysql -e " | ||
| + | mysql -e "FLUSH PRIVILEGES" | ||
| + | |||
| + | echo -e " | ||
| + | chkconfig mysql on | ||
| + | set_default_value ' | ||
| fi | fi | ||
| Строка 137: | Строка 201: | ||
| deb http:// | deb http:// | ||
| deb-src http:// | deb-src http:// | ||
| - | " > etc/ | + | " > /etc/ |
| apt-get update | apt-get update | ||
| - | echo -e " | + | service nginx stop > /dev/null 2>&1 |
| installpkg nginx -y | installpkg nginx -y | ||
| - | chkconfig nginx on | + | service nginx start |
| + | check_result $? "nginx start failed" | ||
| + | |||
| + | echo -e " | ||
| + | chkconfig nginx on | ||
| + | set_default_value ' | ||
| fi | fi | ||
| Строка 149: | Строка 218: | ||
| wget -q http:// | wget -q http:// | ||
| + | |||
| + | php_ver=$(prompt " | ||
| echo " | echo " | ||
| Строка 154: | Строка 225: | ||
| deb http:// | deb http:// | ||
| deb-src http:// | deb-src http:// | ||
| - | " > etc/ | + | " > /etc/ |
| apt-get update | apt-get update | ||
| - | echo -e "+ Install PHP-FPM" | + | service php${php_ver}-fpm stop >/ |
| - | installpkg -u -t stable | + | installpkg -u -t stable |
| - | | + | |
| - | echo " | + | echo " |
| - | chkconfig | + | service php${php_ver}-fpm start |
| + | check_result $? " | ||
| + | |||
| + | echo -e " | ||
| + | chkconfig | ||
| + | set_default_value " | ||
| fi | fi | ||
| Строка 176: | Строка 252: | ||
| # RabbitMq | # RabbitMq | ||
| deb http:// | deb http:// | ||
| - | " > etc/ | + | " > /etc/ |
| apt-get update | apt-get update | ||
| - | echo -e " | + | service rabbitmq-server start |
| installpkg rabbitmq-server -y | installpkg rabbitmq-server -y | ||
| + | check_result $? " | ||
| + | |||
| + | echo -e " | ||
| chkconfig rabbitmq-server on | chkconfig rabbitmq-server on | ||
| + | set_default_value ' | ||
| fi | fi | ||
| Строка 187: | Строка 267: | ||
| if promptyn "Do you wish to install Redis server? "; then | if promptyn "Do you wish to install Redis server? "; then | ||
| - | echo -e "## Install Redis ##" | ||
| installpkg redis-server -y | installpkg redis-server -y | ||
| - | chkconfig redis-server on | + | service redis-server start |
| - | + | check_result $? " | |
| + | |||
| + | echo -e " | ||
| + | chkconfig redis-server on | ||
| + | set_default_value ' | ||
| fi | fi | ||
| if promptyn "Do you wish to install DNS server? "; then | if promptyn "Do you wish to install DNS server? "; then | ||
| - | |||
| - | echo -e " | ||
| if promptyn "Do you wish to install bind (y) or pdns (n) server?"; | 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 | ||
| + | echo -e " | ||
| + | set_default_value ' | ||
| else | else | ||
| installpkg pdns-server pdns-backend-mysql pdns-recursor -y | installpkg pdns-server pdns-backend-mysql pdns-recursor -y | ||
| + | echo -e " | ||
| + | set_default_value ' | ||
| fi | fi | ||
| Строка 209: | Строка 296: | ||
| installpkg shorewall -y | 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>& | ||
| + | service postfix stop > /dev/null 2>&1 | ||
| + | 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>&1 | ||
| + | installpkg dovecot-imapd dovecot-pop3d dovecot-common -y | ||
| + | service dovecot start | ||
| + | |||
| + | check_result $? " | ||
| + | chkconfig dovecot on | ||
| + | set_default_value ' | ||
| + | |||
| fi | fi | ||
| Строка 214: | Строка 341: | ||
| installpkg fail2ban -y | installpkg fail2ban -y | ||
| + | |||
| + | if [ " | ||
| + | fline=$(cat / | ||
| + | fline=$(echo " | ||
| + | sed -i " | ||
| + | fi | ||
| + | |||
| + | chkconfig fail2ban on | ||
| + | service fail2ban start | ||
| + | check_result $? " | ||
| fi | fi | ||
| Строка 236: | Строка 373: | ||
| echo -e " | echo -e " | ||
| - | |||
| wget https:// | wget https:// | ||
| Строка 245: | Строка 381: | ||
| if promptyn "Do you wish to set default shell settings? "; then | if promptyn "Do you wish to set default shell settings? "; then | ||
| + | echo -e "Base system configure" | ||
| + | echo ' | ||
| - | #echo -e "## Install DNS Server ##" | + | # |
| - | #apt-get install bind9 bind9utils bind9-libs -y | + | # My config |
| - | #apt-get install pdns-server pdns-backend-mysql pdns-recursor -y | + | # |
| - | #echo " | + | #search in history with arrows |
| - | #rm /var/cache/apt/archives/ | + | bind '"\e[A": history-search-backward' |
| + | bind '" | ||
| - | echo -e "Base system configure" | + | alias nano=" |
| - | echo ' | + | alias ls="ls --color=always" |
| + | alias grep='grep --color=auto' | ||
| + | alias fgrep=' | ||
| + | alias egrep=' | ||
| + | HISTSIZE=50000 | ||
| + | HISTFILESIZE=50000 | ||
| + | export HISTCONTROL=ignoreboth | ||
| + | shopt -s cmdhist | ||
| + | shopt -s histappend | ||
| + | shopt -s checkwinsize | ||
| + | shopt -s extglob | ||
| + | ulimit -c 0 | ||
| - | # | + | # |
| - | # My config | + | # Functions |
| - | # | + | # |
| - | alias nano=" | + | |
| - | alias ls="ls --color=always" | + | |
| - | alias grep=' | + | |
| - | alias fgrep=' | + | |
| - | alias egrep=' | + | |
| - | HISTSIZE=50000 | + | |
| - | HISTFILESIZE=50000 | + | |
| - | export HISTCONTROL=ignoreboth | + | |
| - | shopt -s cmdhist | + | |
| - | shopt -s histappend | + | |
| - | shopt -s checkwinsize | + | |
| - | shopt -s extglob | + | |
| - | ulimit -c 0 | + | |
| - | # | + | #----------------------------------- |
| - | # Functions | + | # Функции работы с историей комманд |
| - | # | + | #----------------------------------- |
| - | # | + | function h(){ |
| - | # Функции работы с историей комманд | + | |
| - | # | + | } |
| - | function h(){ | + | # Включение магии bash |
| - | history| grep " | + | if [ -f / |
| - | } | + | . / |
| + | fi | ||
| - | # Включение магии bash | + | ' >> ~/.bashrc |
| - | if [ -f /etc/ | + | source ~/.bashrc |
| - | . / | + | |
| - | fi | + | |
| - | ' >> ~/.bashrc | + | echo ' |
| - | source ~/.bashrc | + | set tabsize " |
| - | + | ' >> ~/ | |
| - | echo ' | + | fi |
| - | set tabsize " | + | |
| - | ' >> ~/.nanorc | + | |
| - | + | ||
| - | + | ||
| - | fi | + | |
| apt-get update | apt-get update | ||
| apt-get upgrade | apt-get upgrade | ||
| + | apt-get autoremove -y | ||
| </ | </ | ||