Bir dizi temel otomatik dağıtım ve inşa süreci

Sorun arka planı

Şirketin herhangi bir altyapıya sahip olmayan başlangıç teknik ekibinin kod yönetimi ve otomatik dağıtım gibi bir dizi araç oluşturması gerekiyordu ... Bu nedenle, iki gün süren ve ortada çeşitli sorunlarla karşılaşan, ancak sonunda çeşitli sorunlarla karşılaşan aşağıdaki dağıtım süreci dizisi tetiklendi Tüm temel araçlar başarıyla oluşturuldu, evet ~, oluşturma sürecine bir göz atalım.

Kaynaklar

Bir sunucu, CentOS, şirket geçici bir sunucu olarak düşük konfigürasyonlu bir sunucu verdi, yolu yok, sadece yap.

Düşünme: Yüklemek için geleneksel yum kullanırsam, kesinlikle benim tarafımdan berbat olur ve kendi başıma yönetmek ve bakımını yapmak uygun olmaz. Bir ikilem içindeyken Dokcer'i seçtim. Belki bazı arkadaşlar Docker'ın ne olduğunu ve nasıl kullanılacağını soruyor. Burada panik yapmayın. Portal:

https://segmentfault.com/a/1190000016254236#articleHeader0

Test ortamı kurulumu

Bir dizi PHP test ortamını hızlı bir şekilde oluşturmak için laradock kullanmaya karar verdim. Çok sayıda dosya olmasına rağmen, kapsüllenmiş kısımlar nispeten eksiksizdir. Sonraki geliştirmede hangi teknolojinin kullanılacağını bilmediğim için önce bunu kullanmaya karar verdim ve istediğim zaman kullanmaya başlayabilirim. hizmet.

Laradock'un resmi belgelerinde verilen giriş de çok kapsamlıdır.Burada kullandığım yöntem birden çok proje kümesini dağıtmaktır. Dizin yapısı aşağıdaki gibidir:

+ laradock + proje-1 + proje-2

kullanmaya başla:

1. klon https://github.com/laradock/laradock

2.cp env-example .env

Env'deki yapılandırma kendi durumunuza göre değiştirilebilir ve ayarlanabilir

3. docker-compose up -d nginx php-fpm mysql redis

Başlamak istediğiniz programı tavşanmq, mongo vb. Arkadan ekleyebilirsiniz. Gerektiğinde sonuna ekleyerek başlatabilirsiniz.İlk başlama zamanı biraz uzundur.

4. docker-compose exec --user = laradock çalışma alanı bash

Composer, laravel gibi projeler için vazgeçilmez olmalıdır Çalışma alanına girmek için bu komutu çalıştırdıktan sonra composer'ı çalıştırabilirsiniz.

5. docker-compose exec nginx nginx -s yeniden yükleme

Nginx yapılandırmasını her değiştirdiğimde yeniden başlatmak için nginx konteynırına girmem gerekip gerekmediğini veya tüm konteyneri yeniden başlatmam gerekip gerekmediğini kesinlikle soracak. Nginx site yapılandırma dosyası nerede: ./laradock/nginx/sites/

Önce deneyin.

GitLab

Artık işletim ortamı kurulduğuna göre, kodumu nasıl depolamalıyım? Aslında, gerçek durumuma bağlı olarak GitHub, Code Cloud, GitLab vb. Gibi birçok seçenek var, GitLab'ı seçtim, ancak ilk başta bulamadım. Laradock aslında GitLab hizmetleri sağlar. . Sadece kendim atabilirim, aslında çok basit.

docker \ run-d \ -p443: 443 \ -p8080: 80 \ -p222: 22 \ - namegitlab \ - restartalways \ -v / home / gitlab / config: / etc / gitlab \ -v / home / gitlab / günlükler: / var / log / gitlab \ -v / home / gitlab / data: / var / opt / gitlab \ gitlab / gitlab-ce # Parametre açıklaması: # -d: Konteynerin arka planda çalışmasına izin verin # -p: Bağlantı noktasını açığa çıkarın, koyun Konteynerin 443 numaralı bağlantı noktası, ana bilgisayarın 443 numaralı bağlantı noktasını işaret eder ve ana bilgisayar 8080'dir. > Konteyner 80, ana bilgisayar 222- > Kapsayıcı 22 # Ana bilgisayar bağlantı noktası kendi durumunuza göre özelleştirilebilir. # -Name Mevcut olanı çoğaltmadığı sürece kapsayıcınıza bir ad verin. # - yeniden başlat Kaptan çıktığında docker yeniden başlatılıyor mu? # - v Bu askıda kalıyor Diski yükleyin, ana bilgisayarın dizinini konteynere bağlayın, böylece konteyner bozuk olsa bile içeriğim kaybolmaz. #Host machine / home / gitlab / config dizini container / etc / gitlab dizinine bağlanır, ana makine dizini kendi durumunuza göre belirlenir # gitlab / gitlab-ce bu başlatılacak görüntüdür, eğer görüntü yoksa docker otomatik olarak indirecektir yeni

Konteyner başarılı bir şekilde başlatıldıktan sonra GitLab'ı başlatmak için bir süre olacaktır.Başlatmanın başarılı olduğunu görürseniz hemen erişemezsiniz. Biraz bekleyin. Yapılandırma dosyaları belirttiğiniz ana bilgisayar dizininde değiştirilebilir. Değiştirilecek içerik aşağıdaki gibidir :

gitlab_rails = 'Ana Bilgisayar IP'si' # Ana bilgisayarın IP adresi gitlab_rails = 222 # Ana makineye açık ssh bağlantı noktası external_url'domain adı '# gitlab'a atanan etki alanı adı, nginx'i 8080 bağlantı noktasına ters proxy olarak kullanabilirsiniz

Jenkins

Otomatik dağıtımı elde etmenin birçok yolu vardır, örneğin: webhook, Jenkins, Travis CI, vb. Seçimim Jenkins, çünkü onu dağıtımdan önce kullandım, bu yüzden hala burada kullanıyorum. Laradock hala Jenkins hizmeti veriyor ve bunun sebebi onu kendi başıma oluşturulmuş bulmadığım için. Bir. . . Görünüşe göre bir dahaki sefere daha yakından bakmak zorundasın.

dockerrun-d \ - namemyjenkins \ -p8181: 8080 \ -p50000: 50000 \ -v / home / jenkins /: / var / jenkins_home \ jenkins / jenkins # Parametre açıklaması # -d: Konteyner arka planda çalışsın # -p: Expose Bağlantı noktası, ana bilgisayar 8181 > Konteyner 8080, ana bilgisayar 50000- > Konteyner 50000 # -v Bu, diski takmak içindir.Kapsayıcı bozuk olsa bile içeriğim kaybolmayacak şekilde ana bilgisayarın dizinini konteynere bağlayın. #Host machine / home / jenkins / dizini container / var / jenkins_home dizinine monte edilir, ana makine dizini kendi durumunuza göre belirlenir

Çok basit değil mi ~. ~, Ancak, Jenkins başarıyla kurulduktan sonra bir başlatma şifresi olacaktır.Başlatma şifresi nasıl kontrol edilir? İki yol vardır:

# Dockerlog'ların ilk yolu < Kapsayıcı adınız > # Böylece, kapsayıcı çıktısının içeriğini görüntüleyebilirsiniz # İkinci yol cat / home / jenkins / secrets / initialAdminPassword # Buradaki good / home / jenkins'in, bağladığınız dizinle değiştirilmesi gerekir

jenkins yapılandırması

başlatma

Yukarıda edindiğiniz başlatma şifresini girin, seçtiğim bir sonraki adım önerilen kurulumdur, daha sonra ihtiyacınız olursa yüklemek için eklenti kitaplığına gidebilirsiniz.

Eklenti kurulumu

Başarılı başlatmadan sonra, sistem ayarlarına gidin. > Eklenti yönetimi birkaç gerekli eklentiyi kurar:

PublishOverSSHGitLabPlugin # Gitlab kullandığı için, bu NodeJSPlugin # The Vue'yi ön uçta kurmamız gerekiyor, bu yüzden node kullanmamız gerekiyor

Yolculuğa başlayın

1. Temel yapılandırma

Eklentiyi kurduktan sonra, jdk, node, ssh vb. Gibi bazı temel içerikleri yapılandırmanız gerekir.

1.ssh kurulumu

Girin: Jenkins'i Yönetin- > Sistemi Yapılandır

Gelişmiş'i tıklayın:

Bağlantının başarılı olup olmadığını test etmek için Yapılandırmayı Test Et'e tıklayın

2.jdk, git

Girin: Jenkins'i Yönetin- > Global Araç Yapılandırması

Burada jdk ve git'in otomatik kurulumunu kullanıyorum. Jdk kurulduğunda, bir hesap gerekiyor. Sadece kayıt ol.

3. nodejs kurulumu

İki, bir proje yarat

  • Yeni bir proje oluştur
  • Serbest stil seçin

Üç, konfigürasyon mühendisliği

Oluşturulacak birkaç sürümü saklamak için ayarlayın

Git kaynak kodu aracını kullanın, git adresini girin, git kullanıcısı ekleyin

eğer; thenrmtestv.tar.gzfitar-zcvftest.tar.gz ./*

Projeyi neden burada paketleyelim, çünkü aşağıda yapılandırılacak ssh klasör aktarımını desteklemiyor, bu nedenle önce içeriği paketlemeniz ve ardından paketi açmak için sunucuya gitmeniz gerekiyor

Her şeyi kaydedin ve inşa etmeye gidebilirsiniz. Evet ~

Java'da eşzamanlı ve eşzamansız programlama, orijinal on arabirim artık yalnızca bir arabirime ihtiyaç duymaktadır
önceki
SpringBoot; filtreler, önleyiciler ve dilimler uygular
Sonraki
Zhou Yutong'un sık sık görünüşü yükseldi! Küçük yeşil bir takım elbise giymek bir erkek çocuktan daha yakışıklı, gerçekten kıyaslanamaz
Song Yanfei'nin tatil yeri tarzı giyinmesi nefreti çekiyor! Tropiklerde böyle giyiyoruz, üşüyoruz
En yeni Japon sanatçı Yuko Shinki'nin en son özel sunucusu, yumuşak ve sevimli tarzı çok hoş ve model popüler.
Şımarık ve sıcak katmanlı kıyafetler 2020 bahar sezonu için hazır, sadece gökyüzünün açılmasını bekleyin
Jin Zhini, aylık W2 dergisinin Kore versiyonunun kapağındaydı, ancak etli yüzünün bu kadar kız gibi olmasını beklemiyordu.
Park Caiying'in sarı saçları ana akım değil mi? Ne kadar saf bir Koreli kadın sanatçı, bu ana akım maç
Zhou Dongyu "kırmızı kumaştan" bir şerit sararak Bahar Şenliği Galasına gitti. Bu yaramaz küçük kırmızı ördeğin kırmızı kutsamaları var. Gerçekten şenlikli
Zheng Shuang ve ailesi aynı sahnede sevimli şarkı söylediler. Bu yakışıklı babanın çıkış yapmaması üzücü ve annesi de son derece güzel
Angelababy, Pekin'deki Bahar Şenliği Galasında göründü, tüp üst etek düşmek üzere ve batı kıyafetleri çok havalı
Tong Liya büyüleyici kadınların temsilcisi olmaya değer. 3 set CCTV Bahar Şenliği Gala stilleri aşırı değil
Tao Hong 48 yaşında ve seksi oynamaya cesaret ediyor! Küçük çiğ omuzlar, yarı güzel bacaklar, bu kadınsı
O Suinin yeni yılın istifleme kuralları gerçekten keskin ve sonra büyük bir rüzgar kırıcı takıyor, aura saniyeler içinde kazanıyor, süper model olmayı hak ediyor
To Top