Quantcast
Channel: Библиотека знаний
Viewing all articles
Browse latest Browse all 1318

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

$
0
0

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

Описание

  • Автоматическая установка и обновление зависимых пакетов
  • Автоматическая устанока и настройка серверов GIT, PHP 5.6, PHP-FPM, Nginx, Redis, MySQL (mariadb), RabbitMQ, Exim4
  • Автоматическое конфигурирование пакетов
  • Установка автоматического бекапа БД MySQL (https://github.com/Mirocow/mysql_utils.git)
  • Устанока скрипта для создания сайта (https://github.com/Mirocow/site-create)

Установка

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

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

#!/bin/shdistrib="jessie"hostname=""default_pass="" 
check_result(){if[$1-ne0]; thenecho"Error: $2"exit$1fi} 
promptyn (){whiletrue; doread-p"$1" yn
	    case$ynin[Yy]*)return0;;[Nn]*)return1;;*)echo"Please answer yes or no.";;esacdone} 
installpkg(){for pkg in $@doif[ $(dpkg-query -W-f='${Status}'$pkg2>/dev/null |grep-c"ok installed")-eq0];
  thenecho"Install $pkg ..."apt-get install-y$pkg;
  fidone} 
set_default_value(){evalvariable=\$$1if[-z"$variable"]; theneval$1=$2fiif["$variable"!= 'yes']&&["$variable"!= 'no']; theneval$1=$2fi} 
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 wget chkconfig sudonano rename debconf-utils pwgen
 
default_pass=$(pwgen -s71) 
whileread-p'Enter the Internet domain name (e.g. nixcraft.com) : 'hostname&&[[-z"$hostname"]] ; doecho"No, please, no blank hostname!"done 
if promptyn "Do you wish to install default programs? " ; then 
	echo-e"Install default programs";
	installpkg mc git mercurial bash-completion bzip2 numactl -y 
fi 
if promptyn "Do you wish to install developers programs? "; then 
	echo-e"Install development soft";
	installpkg checkinstall gcc build-essential g++ libboost-dev libboost-program-options-dev libboost-all-dev libevent-dev uuid-dev -y 
fi 
if promptyn "Do you wish to install system monitors? "; then 
	echo-e"Install system monitors";
	installpkg htop iptraf jnettop iftop -y 
fi 
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 MySql? "; 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
 
		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" 
		mysqladmin -u root password $default_passecho-e"[client]\npassword='$f'\n">/root/.my.cnf
		chmod600/root/.my.cnf
                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" 
		echo-e"Install MySQL (Percona)"
		chkconfig mysql on
		set_default_value 'mysql''true' 
	else 
		installpkg software-properties-common
		apt-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 mytop -y
		sevice mysql start
		check_result $?"mysql start failed" 
		mysqladmin -u root password $default_passecho-e"[client]\npassword='$default_pass'\n">/root/.my.cnf
		chmod600/root/.my.cnf
                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" 
		echo-e"Install MySQL (Mariadb)"
		chkconfig mysql on
		set_default_value 'mysql''true' 
  fi 
fi 
if promptyn "Do you wish to install Nginx? "; then 
	wget-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" 
	echo-e"Install Nginx"
	chkconfig nginx on
	set_default_value 'nginx''true' 
fi 
if promptyn "Do you wish to install PHP-FPM? "; then 
	wget-q http://www.dotdeb.org/dotdeb.gpg -O-|apt-key add -
 
	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 php5-fpm stop >/dev/null 2>&1
	installpkg -u-t stable php5 php5-dev php5-sqlite php5-mcrypt php5-xsl php5-cli php5-common php5-mysql php5-gd php5-fpm \
	        php5-cgi php-pear php5-curl php5-xcache php5-redis -yecho"cgi.fix_pathinfo = 0">>/etc/php5/fpm/php.ini
	service php5-fpm start
	check_result $?"php5-fpm start failed" 
	echo-e"Install PHP-FPM"
	chkconfig php5-fpm on
	set_default_value 'php5-fpm''true' 
fi 
if promptyn "Do you wish to install RabbitMQ? "; then 
	wget-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" 
	echo-e"Install RabbitMQ"
	chkconfig rabbitmq-server on
	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" 
	echo-e"Install Redis"
	chkconfig redis-server on
	set_default_value 'redis-server''true' 
fi 
if promptyn "Do you wish to install DNS server? "; then 
	if promptyn "Do you wish to install bind (y) or pdns (n) server?"; then
		installpkg bind9 bind9utils bind9-libs -y
		service bind9 start
		echo-e"Install DNS Server"
		set_default_value 'bind''true'else
		installpkg pdns-server pdns-backend-mysql pdns-recursor -yecho-e"Install DNS Server"
		set_default_value 'pdns''true'fi 
fi 
if promptyn "Do you wish to install Shorewall? "; then 
	installpkg shorewall -y 
fi 
if promptyn "Do you wish to install Postfix/Exim4? "; then 
	installpkg exim4-daemon-heavy mailutils postfix -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"
        chkconfig exim4 on
	set_default_value 'exim''true' 
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"
        chkconfig dovecot on
	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 
        chkconfig fail2ban on
        service fail2ban start
        check_result $?"fail2ban start failed" 
fi 
if promptyn "Do you wish to install Mysql backup system? "; then 
	echo-e"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 
	echo-e"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 
	echo-e"Base system configure"echo'
 
	#
	# My config
	#
	alias nano="nano -u -w "
	alias ls="ls --color=always"
	alias grep='grep--color=auto'
	alias fgrep='fgrep--color=auto'
	alias egrep='egrep--color=auto'
	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(){
	        history| grep "$@";
	}
 
	# Включение магии bash
	if [ -f /etc/bash_completion ]; then
	. /etc/bash_completion
	fi
 
	'>> ~/.bashrc
	source ~/.bashrc
 
	echo'
	set tabsize "2"
	'>> ~/.nanorc		
fi 
apt-get updateapt-get upgrade

Viewing all articles
Browse latest Browse all 1318

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Long Distance Relationship Tagalog Love Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Tiwala Quotes and Selos Quotes Collections


Love with Heart Breaking Quotes


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Maganda Quotes – tagalog Quotes – Inggit Quotes