Süper pratik bir atlama sunucusu tek tıklamayla dağıtım komut dosyasını paylaşın

Genel Bakış

Atlama sunucusu dağıtım süreci bir önceki bölümde tanıtılmıştı. Daha sonra bu tek tıklamayla dağıtım komut dosyasına göre sıralandı ve değiştirildi. Aşağıdaki komut dosyası centos7 ortam testine dayanmaktadır. Diğer sistemler ise (redhat7 gibi), yum kaynağı gibi faktörler dikkate alınmalıdır.

Atlama sunucusu komut dosyasının tek tıklamayla dağıtımı

#! / bin / bash # kodlama: utf-8 # Telif hakkı hwb ################################ kullanım ################## ################ # 1, işletim sistemi centos7'dir (yum'u redhat7 için yapılandırırsanız, onu değiştirmeniz gerekir) # 2, sunucu internete gidebilir # 3, liman planlama #Protocol Sunucu adı Bağlantı Noktası #TCP Jumpserver 8080 #TCP Coco 2222, 5000 #TCP Guacamole 8081 #TCP Db 3306 #TCP Redis 6379 #TCP Nginx 80 ################################ kullanım ################## ############### set -e # Dönüş değeri 0 olmadığında, koddan çık echo "============================ 0. Sistemin bazı yapılandırmaları =============== ============ " setenforce 0 || doğru #systemctl iptables.service durdurma || true > / dev / null 2 > 1 systemctl firewalld.service durdurma || true > / dev / null 2 > 1 localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 LC_ALL = zh_CN.UTF-8'i dışa aktar echo'LANG = zh_CN.UTF-8 ' > / etc / sysconfig / i18n echo "=========================== 1. Yedekleme yum ================ ================= " { i için /etc/yum.repos.d/*.repo;do cp $ i $ {i% .repo} .bak; tamamlandı rm -rf /etc/yum.repos.d/*.repo } || { echo "yum hatası, lütfen kaynağı değiştirin ve tekrar çalıştırın" çıkış 1 } echo "=========================== 2. Ağı edinin yum ================= ============== " { wget -P /etc/yum.repos.d/ > / dev / null 2 > 1 wget -P /etc/yum.repos.d/ > / dev / null 2 > 1 sed -i's / $ releaseasever / 7 / g '/etc/yum.repos.d/CentOS7-Base-163.repo yum temiz allyum makecache yum repolist > / dev / null 2 > 1 } || { echo "yum hatası, lütfen kaynağı değiştirin ve tekrar çalıştırın" çıkış 1 } echo "=========================== 3. Kurulum temel bağımlılığı ================ ============= " { yum güncelleme -y > / dev / null yum install wget unzip epel-release nginx sqlite-devel xz gcc automake zlib-devel openssl-devel redis mariadb mariadb-devel mariadb-server supervisor -y > / dev / null 2 > 1 } || { echo "yum hatası, lütfen kaynağı değiştirin ve tekrar çalıştırın" çıkış 1 } echo "=========================== 4. python hazırlayın ================ ============== " { cd / opt / wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz -O /opt/Python-3.6.1.tar.xz > / dev / null 2 > 1 } || { echo "pyhton bağımlılık paketi indirme hatası, lütfen manuel olarak https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz indirmek için özel bir araç kullanmayı deneyin ve / opt / Python-3.6.1.tar.xz, manuel olarak indirirseniz, lütfen yukarıdaki wget komutunu yorumlayın ve sonra bu komut dosyasını çalıştırın " çıkış 1 } { tar xf Python-3.6.1.tar.xz cd Python-3.6.1 ./configure > / dev / null make > / dev / null make install > / dev / null 2 > 1 } || { echo "Python'u açarken veya derlerken bir hata oluştu, lütfen yukarıdaki komutu kullanarak manuel olarak açmayı veya derlemeyi deneyin. Manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve ardından bu komut dosyasını çalıştırın" çıkış 1 } { python3 -m venv py3 } || { echo "Bir python sanal ortamı kurarken bir hata var, lütfen manuel olarak çalıştırmayı deneyin, eğer manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve sonra bu komut dosyasını çalıştırın" çıkış 1 } echo "=========================== 5. Jummpserver paketini indirin ve açın ============= ==== " { wget https://github.com/jumpserver/jumpserver/archive/v1.4.10.zip -O /opt/jumpserver.zip > / dev / null 2 > 1 } || { echo "Atlama sunucusu paketini indirirken hata oluştu, lütfen manuel olarak çalıştırmayı deneyin, manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve ardından bu komut dosyasını çalıştırın" çıkış 1 } { wget https://github.com/jumpserver/coco/archive/1.4.10.zip -O /opt/coco.zip > / dev / null 2 > 1 } || { echo "Coco paketini indirirken bir hata oluştu, lütfen manuel olarak çalıştırmayı deneyin, manuel işlem başarılı olursa lütfen yukarıdaki kodu yorumlayın ve sonra bu komut dosyasını çalıştırın" çıkış 1 } { wget https://github.com/jumpserver/luna/releases/download/1.4.10/luna.tar.gz -O /opt/luna.tar.gz > / dev / null 2 > 1 } || { echo "luna paketini indirirken bir hata oluştu, lütfen manuel olarak çalıştırmayı deneyin, manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve sonra bu komut dosyasını çalıştırın" çıkış 1 } { cd / opt coco.zip dosyasını açın > / dev / null mv coco-1.4.10 coco unzip jumpserver.zip > / dev / null mv jumpserver-1.4.10 jumpserver tar xzf luna.tar.gz > / dev / null 2 > 1 } || { echo "Açma hatası, lütfen manuel olarak çalıştırmayı deneyin, manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve sonra bu komut dosyasını çalıştırın" çıkış 1 } echo "=========================== 6. Yum bağımlılığı kurun ================ ============== " { yum -y $ (cat /opt/jumpserver/requirements/rpm_requirements.txt) yükle > / dev / null yum -y install $ (cat /opt/coco/requirements/rpm_requirements.txt) > / dev / null 2 > 1 } || { echo "Atlama sunucusu bağımlılıklarının yüklenmesi sırasında bir hata oluştu. Lütfen bunu manuel olarak yürütmeyi deneyin. Manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve ardından bu komut dosyasını çalıştırın" çıkış 1 } # Pip sürümünü güncelleyin #python -m pip yükleme - pip yükseltme echo "=========================== 7. Pip bağımlılığını kurun =============== ============== " { python3 -m venv py3 \ source / opt / py3 / bin / activ pip install - upgrade pip > / dev / null pip install -r /opt/jumpserver/requirements/requirements.txt > / dev / null pip install -r /opt/coco/requirements/requirements.txt > / dev / null 2 > 1 } || { echo "Atlama sunucusunun bağımlılıklarının yüklenmesi sırasında bir hata oluştu, lütfen manuel olarak çalıştırmayı deneyin. Manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve ardından bu komut dosyasını çalıştırın" çıkış 1 } echo "=========================== 8. Veritabanı oluştur ================ ============== " mkdir -p / opt / mysql / share / mysql / { wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/mysql_security.sql?raw=true -O /opt/mysql/mysql_security.sql > / dev / null 2 > 1 wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/mysql.cnf?raw=true -O /etc/my.cnf > / dev / null 2 > 1 wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/errmsg.sys?raw=true -O /opt/mysql/share/mysql/errmsg.sys > / dev / null 2 > 1 } || { echo "Veritabanına bağlı dosyayı indirirken bir hata oluştu, lütfen manuel olarak çalıştırmayı deneyin, manuel işlem başarılı olursa lütfen yukarıdaki kodu yorumlayın ve sonra bu komut dosyasını çalıştırın" çıkış 1 } echo "=========================== 9. Belgeleri hazırlayın ================ ================ " { wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/nginx.conf?raw=true -O /etc/nginx/nginx.conf > / dev / null 2 > 1 wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/supervisord.conf?raw=true -O /etc/supervisord.conf > / dev / null 2 > 1 wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/jumpserver_conf.py?raw=true -O /opt/jumpserver/config.py > / dev / null 2 > 1 wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/coco_conf.py?raw=true -O /opt/coco/conf.py > / dev / null 2 > 1 wget https://github.com/jumpserver/Dockerfile/blob/mysql/alpine/start_jms.sh?raw=true -O /opt/start_jms.sh > / dev / null 2 > 1 } || { echo "Yapılandırma dosyası indirilirken hata oluştu, lütfen manuel olarak çalıştırmayı deneyin, manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve ardından bu komut dosyasını çalıştırın" çıkış 1 } echo "=========================== 10. Docker'ı yükle =================== ============= " yum kontrol güncelleme > / dev / null 2 > 1 { yum-config-manager --add-repo > / dev / null yum hepsini temizle > / dev / null yum repolist > / dev / null 2 > 1 yum -y epel-release docker-ce'yi kurun > / dev / null 2 > 1 systemctl başlangıç penceresi tee -a /etc/sysctl.conf < < -EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl -p > / dev / null 2 > 1 tee -a /etc/docker/daemon.json < < -EOF { "kayıt aynaları": } EOF } || { echo "Docker yüklenirken bir hata oluştu, lütfen manuel olarak çalıştırmayı deneyin. Manuel işlem başarılı olursa, lütfen yukarıdaki kodu yorumlayın ve ardından bu komut dosyasını çalıştırın" çıkış 1 } systemctl arka plan programı yeniden yükleme systemctl yeniden başlatma penceresi echo "=========================== 11. Guacamole yükleyin ================ ========== " host_ip = `python -c" içe aktarma soketi; yazdırma () "` docker run --name jms_guacamole -d \ - her zaman yeniden başlat \ -p 8081: 8080 -v / opt / guacamole / key: / config / guacamole / key \ -e JUMPSERVER_KEY_DIR = / config / guacamole / key \ -e JUMPSERVER_SERVER = http: // $ host_ip: 8080 \ Registry.jumpserver.org/public/guacamole:1.0.0 echo "=========================== 12. nginx'i yapılandırın ================ ============== " yum -y nginx'i yükle > / dev / null 2 > 1 kedi < < EOF > /etc/nginx/conf.d/jumpserver.conf server { 80 dinle; proxy_set_header X-Gerçek-IP $ remote_addr; proxy_set_header Ana Bilgisayar $ ana bilgisayar; proxy_set_header X-Yönlendirilmiş-$ proxy_add_x_forwarded_for için; location / luna / { try_files $ uri / /index.html; takma ad / opt / luna /; } location / media / { add_header İçerik Kodlama gzip; root / opt / jumpserver / data /; } konum / statik / { root / opt / jumpserver / data /; } location /socket.io/ { proxy_pass http: // localhost: 5000 / socket.io /; # Başka bir sunucuya coco yüklüyse, lütfen IP'sini girin proxy_buffering off; proxy_http_version 1.1; proxy_set_header Yükselt $ http_upgrade; proxy_set_header Bağlantı "yükseltme"; } location / guacamole / { proxy_pass http: // localhost: 8081 /; # Guacamole başka bir sunucuya kurulursa, lütfen IP'sini girin proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Yönlendirilmiş-$ proxy_add_x_forwarded_for için; proxy_set_header Yükselt $ http_upgrade; proxy_set_header Bağlantısı $ http_connection; erişim_ günlüğü kapalı; } yer / { proxy_pass http: // localhost: 8080; # Jumpserver başka bir sunucuya kuruluysa, lütfen IP'sini girin } } EOF systemctl mariadb başlat mkdir -p / opt / nginx / log chmod -R 777 / opt / nginx { systemctl yeniden başlat nginx systemctl nginx'i etkinleştir } || { hizmeti yeniden başlatma nginx } || { nginx -s yeniden yükle } || { echo "Lütfen nginx'in başlatma komutunu kontrol edin" çıkış 1 } chmod + x /opt/start_jms.sh echo "Kurulum tamamlandı, atlama sunucusunu başlatmak için lütfen /opt/start_jms.sh dosyasını çalıştırın"

Komut dosyası hata ayıklama süreci

Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~

Meituan Didi bunu birbiri ardına yaptı! Sübvansiyon savaşı sonunda bizi terk edecek mi?
önceki
CB Richard Ellis "2019'un İlk Yarısında Chengdu Emlak Piyasasının İncelenmesi ve Beklentisi" ni yayınladı
Sonraki
Oracle Experiment - Beş SQL'den itibaren nasıl kullanılacağını tartışın
Luckin Coffee'nin istekleri ortaya çıktı: Starbucks'tan iki kat fazla açılan mağaza sayısı sadece bir başlangıç
Oracle veritabanı yapılandırması - geçersiz uygulamaları otomatik olarak temizler
Açık kaynak burç makinesi atlama sunucusu, ışınlanma, geçit, CrazyEye'ye giriş
Ne satın almaya değer, gerçekten almaya değer mi?
Tongzhou yıkım haneleri, kiracıları, sadece yolda olan 11.500 poliçe evine bakmalı
Centos7 sistem bölümü üç altındaki sıçrama tahtasını temel alan atlama sunucusunun kurulum ve dağıtım öğreticisi
Yerli ürünler çok iyi! Tmallın 61,8 milyar kulübünün yarısı, listedeki en yeni marka Perfect Diary'den oluşuyordu
Atipik Bir Ebeveynin Mektubuna Dayalı İnternet Üzerindeki Yerli Halkın Yeni Tüketim Görünümü
Shunyi'nin bu 3 ana yolun elden geçirilmesi önümüzdeki ayın sonunda tamamlanacak ve trafiğe açılacak
Wall Streetin en endişeli şeyi oldu: Ali'nin Hong Kong hisselerine dönüşü
Kuru mallar Bilgi güvenliği seviyesi 3 korumasına ilişkin üç temel bilgi
To Top