Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
debian:server-install-d9 [2017/12/18 13:14] – создано mirocow | debian:server-install-d9 [2018/06/17 20:33] (текущий) – ↷ Операцией перемещения обновлены ссылки 5.9.158.195 | ||
---|---|---|---|
Строка 7: | Строка 7: | ||
</ | </ | ||
- | * [[php: | + | * [[develop:php: |
===== Описание ===== | ===== Описание ===== | ||
Строка 15: | Строка 16: | ||
* Установка автоматического бекапа БД MySQL (https:// | * Установка автоматического бекапа БД MySQL (https:// | ||
* Устанока скрипта для создания сайта (https:// | * Устанока скрипта для создания сайта (https:// | ||
+ | * [[system: | ||
===== Установка ===== | ===== Установка ===== | ||
Строка 25: | Строка 27: | ||
В debian-install.sh вставляем ниже следующий текст и нащимаем Ctrl-x, затем y (сохраняем и выходим) | В debian-install.sh вставляем ниже следующий текст и нащимаем Ctrl-x, затем y (сохраняем и выходим) | ||
+ | <note important> | ||
+ | < | ||
+ | deb http:// | ||
+ | deb-src http:// | ||
+ | |||
+ | deb http:// | ||
+ | deb-src http:// | ||
+ | </ | ||
<code bash> | <code bash> | ||
#!/bin/sh | #!/bin/sh | ||
- | distrib=" | + | distrib=" |
- | hostname="" | + | |
- | default_pass="" | + | function info |
- | + | { | |
- | check_result() { | + | echo " " |
+ | echo -e "--> $1" | ||
+ | echo " " | ||
+ | } | ||
+ | |||
+ | function | ||
+ | { | ||
if [ $1 -ne 0 ]; then | if [ $1 -ne 0 ]; then | ||
echo " | echo " | ||
Строка 38: | Строка 54: | ||
fi | fi | ||
} | } | ||
- | + | ||
- | promptyn () | + | function |
{ | { | ||
- | while true; do | + | |
- | | + | read -p " |
- | | + | case $yn in |
- | | + | [Yy]* ) return 0;; |
- | | + | [Nn]* ) return 1;; |
- | | + | * ) echo " |
- | | + | esac |
- | done | + | done |
} | } | ||
- | + | ||
- | installpkg() | + | function prompt () |
+ | { | ||
+ | while read -p " | ||
+ | echo " | ||
+ | done | ||
+ | |||
+ | echo $variable; | ||
+ | } | ||
+ | |||
+ | function | ||
{ | { | ||
for pkg in $@ | for pkg in $@ | ||
Строка 58: | Строка 83: | ||
then | then | ||
echo " | echo " | ||
- | apt-get install | + | apt-get install $pkg; |
fi | fi | ||
done | done | ||
} | } | ||
- | + | ||
- | set_default_value() { | + | function |
eval variable=\$$1 | eval variable=\$$1 | ||
if [ -z " | if [ -z " | ||
Строка 72: | Строка 97: | ||
fi | fi | ||
} | } | ||
+ | |||
+ | function h() | ||
+ | { | ||
+ | history| grep " | ||
+ | } | ||
+ | |||
+ | function install_elasticsearch() | ||
+ | { | ||
+ | VERSION=$1 | ||
+ | es_memory=' | ||
+ | |||
+ | apt-get install openjdk-8-jdk | ||
+ | rm / | ||
+ | ln -s / | ||
+ | |||
+ | export JAVA_HOME=/ | ||
+ | export PATH=$JAVA_HOME/ | ||
+ | |||
+ | if [ ! -f elasticsearch-$VERSION.deb ]; then | ||
+ | wget https:// | ||
+ | fi | ||
+ | |||
+ | sudo dpkg -i elasticsearch-$VERSION.deb | ||
+ | |||
+ | # be sure you add " | ||
+ | |||
+ | info " | ||
+ | |||
+ | sed -i "/ | ||
+ | sed -i " | ||
+ | sed -i " | ||
+ | sed -i " | ||
+ | sed -i " | ||
+ | sed -i " | ||
+ | |||
+ | # enabled | ||
+ | update-rc.d elasticsearch defaults | ||
+ | |||
+ | # start script | ||
+ | service elasticsearch restart | ||
+ | |||
+ | if [ -f / | ||
+ | rm / | ||
+ | fi | ||
+ | |||
+ | 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 chkconfig | + | installpkg apt apt-utils wget sudo nano rename debconf-utils pwgen mailutils curl dirmngr -y |
- | + | ||
- | default_pass=$(pwgen -s 7 1) | + | default_pass=$(pwgen -s 18 1 -n -c -s -y) |
- | + | ||
- | 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? |
- | + | | |
- | if promptyn "Do you wish to install default programs? " ; then | + | installpkg mc git mercurial bash-completion bzip2 numactl |
- | + | ||
- | echo -e " | + | |
- | installpkg mc git mercurial bash-completion bzip2 numactl -y | + | |
fi | fi | ||
- | + | ||
- | if promptyn "Do you wish to install developers programs? "; then | + | if promptyn "Do you wish to install developers programs? |
- | + | | |
- | echo -e " | + | 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? "; then | + | if promptyn "Do you wish to install system monitors? |
- | + | | |
- | echo -e " | + | 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 " |
- | + | # Percona | |
- | echo " | + | #deb http:// |
- | # Percona | + | #deb-src http:// |
- | #deb http:// | + | " > /etc/ |
- | #deb-src http:// | + | apt-get update |
- | " > etc/ | + | |
- | 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 | |
- | installpkg percona-server-server-5.7 percona-server-client-5.7 percona-server-common-5.7 percona-toolkit -y | + | check_result $? "mysql start failed" |
- | sevice mysql start | + | |
- | check_result $? "mysql start failed" | + | |
- | + | chmod 600 / | |
- | mysqladmin -u root password $default_pass | + | mysql -e "SET PASSWORD FOR ' |
- | echo -e " | + | mysql -e " |
- | chmod 600 / | + | |
- | 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" | + | |
- | + | | |
- | echo -e " | + | |
- | chkconfig | + | 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:// | + | " > /etc/ |
- | " > etc/ | + | apt-get update |
- | apt-get update | + | |
- | + | installpkg mariadb-server mariadb-client mariadb-common --allow-unauthenticated | |
- | installpkg mariadb-server mariadb-client mariadb-common | + | service mysql start |
- | service mysql start | + | check_result $? "mysql start failed" |
- | check_result $? "mysql start failed" | + | |
- | + | | |
- | mysqladmin -u root password $default_pass | + | chmod 600 / |
- | echo -e " | + | mysql -e "SET PASSWORD FOR ' |
- | chmod 600 / | + | 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" |
- | + | ||
- | echo -e " | + | |
- | chkconfig | + | |
- | set_default_value ' | + | set_default_value ' |
- | + | ||
fi | fi | ||
- | |||
fi | fi | ||
+ | |||
+ | if promptyn "Do you wish to install PostgreSql? "; then | ||
+ | installpkg postgresql-9.6 postgresql-contrib-9.6 -y | ||
+ | echo "ALTER USER postgres WITH ENCRYPTED PASSWORD ' | ||
+ | echo " | ||
+ | local all | ||
+ | " >> / | ||
+ | |||
+ | service postgresql restart | ||
+ | |||
+ | 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:// | + | " > /etc/ |
- | " > etc/ | + | 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" | + | |
- | + | | |
- | echo -e " | + | |
- | chkconfig | + | 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:// | + | |
- | + | | |
- | echo " | + | |
- | # php-fpm dotdeb | + | |
- | deb http:// | + | # php-fpm dotdeb |
- | deb-src http:// | + | deb http:// |
- | " > etc/ | + | deb-src http:// |
- | apt-get update | + | " > /etc/ |
- | + | apt-get update | |
- | service | + | |
- | installpkg -u -t stable | + | service |
- | php5-cgi php-pear | + | |
- | echo " | + | if [ " |
- | service | + | |
- | check_result $? "php5-fpm start failed" | + | fi |
- | + | ||
- | echo -e " | + | if [ " |
- | chkconfig php5-fpm on | + | 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 |
- | set_default_value | + | fi |
+ | |||
+ | if [ " | ||
+ | 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 | ||
+ | fi | ||
+ | |||
+ | | ||
+ | service | ||
+ | check_result $? "php${php_ver}-fpm start failed" | ||
+ | |||
+ | | ||
+ | | ||
+ | set_default_value | ||
+ | |||
+ | 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:// | + | " > /etc/ |
- | " > etc/ | + | 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 $? " | + | |
- | + | | |
- | echo -e " | + | |
- | chkconfig | + | 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 $? " | + | |
- | + | | |
- | echo -e " | + | |
- | chkconfig | + | set_default_value ' |
- | set_default_value ' | + | fi |
- | + | ||
- | fi | + | if promptyn "Do you wish to install Elasticsearch server? "; then |
+ | info " | ||
+ | elasticsearch_ver=$(prompt " | ||
+ | install_elasticsearch $elasticsearch_ver | ||
+ | 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 | + | |
- | echo -e " | + | 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 | + | |
- | echo -e " | + | 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 | + | 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" | + | |
- | chkconfig | + | set_default_value ' |
- | set_default_value ' | + | |
+ | 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 $? " | + | |
- | | + | 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 | + | |
- | + | update-rc.d | |
- | chkconfig | + | service fail2ban start |
- | 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 " | |
- | echo -e " | + | |
- | + | 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 " | |
- | echo -e " | + | 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 -e "Base system configure" | + | echo ' |
- | echo ' | + | ' >> ~/.bashrc |
- | + | | |
- | # | + | |
- | # My config | + | echo ' |
- | # | + | set tabsize |
- | + | ' | |
- | #search in history with arrows | + | |
- | bind '" | + | |
- | bind '" | + | |
- | + | ||
- | alias nano=" | + | |
- | 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 | + | |
- | + | ||
- | # | + | |
- | # Functions | + | |
- | # | + | |
- | + | ||
- | # | + | |
- | # Функции работы с историей комманд | + | |
- | # | + | |
- | + | ||
- | function h(){ | + | |
- | history| grep " | + | |
- | } | + | |
- | + | ||
- | # Включение магии bash | + | |
- | if [ -f /etc/ | + | |
- | | + | |
fi | fi | ||
- | + | ||
- | ' >> ~/.bashrc | + | |
- | source ~/.bashrc | + | |
- | + | ||
- | echo ' | + | |
- | set tabsize " | + | |
- | ' >> ~/ | + | |
- | fi | + | |
- | + | ||
- | apt-get update | + | |
- | apt-get upgrade | + | |
apt-get autoremove -y | apt-get autoremove -y | ||
</ | </ |