Binbiriz devops işlemleri¶
Ön hazırlık¶
- Subdomain (dev olarak kullanılacak subdomain) dev-xyz.binbiriz.com şeklinde olacak xyz'nin ne olacağını belirleyin, yazın.
- Host name ya da IP - Uzak sunucunun hostname'ini ya da IP'ini yazın.
- Siteye erişim için HTTP basic authentication için gerekli kullanıcı adı ve şifreyi belirleyin, yazın. Password 16 haneli olacak. Secure Password Generator
Aşağıdaki gibi bir tabloyu önceden hazır ediniz:
Dev sunucusunun / sitesinin yaratılması¶
Subdomain tanımlanması¶
-
Subdomain tanımlanması işleminin yapılması için
binbiriz.com
alan adının DNS yönetimi paneline erişilir. Digital Ocean Yönetim Paneli -
Dev sunucusunun IP adresi önceden bilinmelidir. Şimdilik dev sunucusu olarak kullanılan sunucu Hetzner'de bulunan sunucudur. IP adresi
159.69.178.13
-
Önceden kullanılacak subdomain adına karar verilir. Bu örneğimizde
dev-xyz.binbiriz.com
kullanılacak. -
Menüden Networking Domains linkinden binbiriz'in DNS yönetimi sayfasına gidilir.
-
Sırasıyla
A
record türü seçilir.- Subdomain ana domain olmaksızın
HOSTNAME
kısmına yazılır. Sonda ve başta hiç boşluk olmadığından emin olunuz. - IP adresi
WILL DIRECT TO
kısmına yazılır. Create Record
tuşuna basılır.-
Kaydın
DNS records
tablosuna eklendiğinden emin olunur.
Sunucuda uygulamanın çalışma dizini¶
Drupal 8 vb bir web uygulamasının ya da HTML vb gibi web sayfalarının bulunduğu dizin
uygulamanın çalıştığı dizin
olarak adlandırılmıştır.
- Terminalde
ssh [email protected]
ile sunucuya erişim sağlanır. sudo mkdir /var/www/vhosts/binbiriz.com/dev-xyz.binbiriz.com
ile site dizini oluşturulur.- Dizin izinleri için aşağıdaki iki komut çalıştırılır:
sudo chown -R binbiriz:www-data /var/www/vhosts/binbiriz.com/dev-xyz.binbiriz.com
sudo chown -R binbiriz:www-data /var/www/vhosts/binbiriz.com/dev-xyz.binbiriz.com/
Apache Virtual Host dosyasının oluşturulması¶
Varolan bir Apache virtual host dosyası yeni subdomain adına uygun olarak kopyalanır:
sudo cp /etc/apache2/sites-available/dev-mim.binbiriz.com.conf /etc/apache2/sites-available/dev-xyz.binbiriz.com.conf
Dosyadaki fazlalıklar (kırmızı işaretli) silinir, en alt kısımdaki rewrite kuralları ile ilgili olan 3 satır silinir ve dosya kaydedilir:
Dosya nihai olarak aşağıdaki gibi olmalıdır:
HTTP Basic Authentication Dosyasının oluşturulması¶
Aşağıdaki komutu çalıştırarak ilgili yere bir şifre dosyası oluşturulur ve bu dosyaya kullanıcı adı da konur:
sudo htpasswd -c /etc/apache2/.htpasswdxyz dev-xyz-user
Bu komut çalıştırıldığında 2 kez şifre girmenizi ister. İlkinde HTTP Basic Authentication kullanıcı için şifre belirlemenizi, ikinci ise belirlenen şifrenin kontrol edilmesi içindir.
Kullanılan şifreler en az 16 haneli olmalıdır. https://passwordsgenerator.net/
Dizin oluşturulur:
Test dosyası konur:
echo "this is a test" > /var/www/vhosts/binbiriz.com/dev-xyz.binbiriz.com/drupal/web/index.html
sudo chown -R binbiriz:www-data /var/www/vhosts/binbiriz.com/dev-xyz.binbiriz.com
sudo chown -R binbiriz:www-data /var/www/vhosts/binbiriz.com/dev-xyz.binbiriz.com/
Apache'de Virtual Host'un aktifleştirilmesi¶
Sitenin ziyaret edilerek çalıştığının kontrol edilmesi¶
Buraya kadar olan kısım için otomatik script¶
Script'in nasıl çalıştığı anlatılmalı. Bu kısım henüz yapılmadı. Screenshotlar filan konulmalı.
Let's Encrypt SSL Sertifikasının Yüklenmesi¶
Aşağıdaki komut çalıştırılarak terminaldeki gerekli yönergeler uygulanır:
Let's Encrypt SSL Sertifikaları 3 ay süre ile geçerlidir. Sunucudaki tüm sertifikaların güncellenmesi için
sudo certbot renew
komutunu çalıştırabilirsiniz. Sertifika yenilemesi için sunucuyaroot
user olarak crontab konmuştur ve her Pazartesi geceyarısı çalışır.
Sitenin SSL ile çalışıp çalışmadığını kontrol ediniz:
Drupal VM Oluşturulması¶
Bitbucket'ta Yeni Repository Yaratılması¶
dev-xyz
adında bir repository yaratınız.
Bu kısım henüz yapılmadı. Screenshotlar filan konulmalı.
Drupal VM reposunun lokale alınması¶
Aşağıdaki bölümdeki kodları çalıştırmadan önce Drupal VM GitHub sayfasına giderek en son
tag
nedir ona bakınız?
cd /home/$USER/works
git clone https://github.com/geerlingguy/drupal-vm.git dvm-xyz
cd ./dvm-xyz
# Lütfen yukarıdaki resimden aldığınız tag ile işlem yapınız.
# Repoda en son tag'a checkout yapılması gerekir.
git checkout tags/4.9.0
rm -rf .git/
# vm'in kendi readme.md'si rename edilir.
mv /home/$USER/works/dvm-binbiriz/README.md /home/$USER/works/dvm-binbiriz/dvm-org-README.md
# lokalde git repo oluşturulması
git init
git add .
git commit -m "initial commit - tag 4.9.0 - detached"
#reponun Bitbucket yaratılmış remote repo ile ilişkilenmesi ve push edilmesi
git remote add origin [email protected]:binbiriz/dvm-xyz.git
git push -u origin master
git tag -a github-detached -m "GitHub'dan indirilerek yaratılmış checkout tags ile detached hali"
git push --tags
dvm ilk vagrant up oncesi¶
config.yml hazırlanır.
ilk aşamada 1. çakışma olmaması için bu değişkenler değiştirilir.
- bu değişkenler true yapılır.
nihai dosya yml
olarak konsun.
repo root .gitignore düzeltilir
nihai dosya .gitignore
olarak konsun.
git add .gitignore
git commit -m "gitignore dosyası düzenlendi"
git add config.yml
git commit -m "config.yml dosyası eklendi"
daha sonra vagrant up yapılır
config.yml
düzeltilir.
git add config.yml
git commit -m "ilk vagrant up sonrası config.yml D8 tekrar kurulmasın diye düzeltildi."
git add .
git commit -m "D8 kuruldu."
git push
git tag -a d8-ilk-kurulu-hali -m "vagrant up sonrası D8'in ilk kurulu hali"
git push --tags
Notlar:
- sonra drush cex ile config export ve bir adet commit yapılır. konfigürasyonun export edilmesi
vagrant ssh
cd ..
drush cex --yes
exit
git add .
git commit -m "drush aracılığıyla ilk konfigurasyon export"
git tag -a first-config-exp -m "D8 kurulu iken ilk drush cex"
git push --tags
Sonra meld ile karşılaştır setting.php ve trusted host trusted_host_patterns eklenir 730. satır galiba
$settings['trusted_host_patterns'] = [
'^yediagac\.local$',
'^.+\.yediagac\.local$',
'^binbiriz\.com',
'^.+\.binbiriz\.com',
];
775, 776 ve 777'inci satırlar uncomment edilir.
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
./drupal/web/sites/default/ içine settings.local.php konur
cd /home/$USER/works/dvm-yediagac/drupal/web/sites
sudo cp example.settings.local.php ./default/settings.local.php
meld ile karşılaştır settings.local.php
commit yok çünkü bu dosyalar .gitignore'da
bunlar open.project'e ilgili yere yüklenir.
sonra development.services.yml
adlı dosya aşağıdaki şekilde düzeltilir.
içerik
# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: null
cache: false
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
git add drupal/web/sites/development.services.yml
git commit -m "development.services twig debug configuration"
git push
sonra drush aliases yapılır.
bu dosya bir yere konuyor mu dokümantasyona bak.
aslında iki tane drush alias dosyası var 1.
drupal/drush/binbiriz.aliases.drushrc.php
(manual konur) 2.drupal/drush/sites/self.site.yml
bu dosyayı Drupal VM'in >kendisi üretir, üzerinde değişiklik yapılır.
- manual konacak dosyayı koy ve içeriğini düzelt.
git add drupal/drush/binbiriz.aliases.drushrc.php
git commit -m "manual drush alias dosyası eklendi."
drupal/drush/sites/self.site.yml dosyası düzeltilir.
aşağıdaki eklenir.
dev:
host: 159.69.178.13
user: binbiriz
root: /var/www/vhosts/binbiriz.com/dev-yediagac.binbiriz.com/drupal/web
uri: https://dev-yediagac.binbiriz.com
paths:
- files: sites/default/files
README.md¶
#readme.md yaratılır.
touch /home/$USER/works/dvm-binbiriz/README.md
#documantasyon ve drush alias tablosu yapılır
git add README.md
git commit -m "Bu proje için README.md dosyası eklendi."
git push
dev repo yaratılır
burada readme.md dosyasına şu not düşülür
git add README.md
git commit -m "README.md güncellendi."
git tag -a dev-branch-created -m "dev branch yaratıldı"
git push --tags
bitbucket'da reponun default branch'i dev yapılır ve yapıldı 10.10.2018 08:30'da
15.ekim.2018 02:29 başla
sunucuya git reponun deploy edilmesi (ilk deploy)¶
git repo to dev server¶
sunucuya ssh ile erişilir
cd /var/www/vhosts/binbiriz.com/
mv ./dev-binbiriz.binbiriz.com/ ./dev-binbiriz.binbiriz.com-old/
git clone [email protected]:binbiriz/dvm-binbiriz.git dev-binbiriz.binbiriz.com
cd ./dev-binbiriz.binbiriz.com/
git checkout dev
cd ..
rm -rf ./dev-binbiriz.binbiriz.com-old/
local vagrant'ta sql-dump oluşturulması¶
# cd to vagrant folder
vagrant up
vagrant ssh
cd ..
mkdir -p /vagrant/.vscode
drush sql-dump --result-file=/vagrant/.vscode/sql_yedek_to_dev_server_one_time_only_$(date +%Y%m%d_%H%M%S).sql
exit
sunucuda veritabanı oluşturulması¶
mysql -u username -p -e "CREATE DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci";
database creation¶
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#CREATE USER dbuser@localhost IDENTIFIED BY 'strong_password';
# GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON dbname.* TO 'drupal'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON dbname.* TO 'drupal'@'localhost' IDENTIFIED BY 'strong_password';
sql dump sunucuya konur¶
/home/binbiriz/scripts içine
restore sql dump¶
mysql -u dbuser -pstrong_password dbname < /home/binbiriz/scripts/sql_yedek_to_dev_server_one_time_only_20181014_235131.sql
rm /home/binbiriz/scripts/sql_yedek_to_dev_server_one_time_only_20181014_235131.sql
composer install and drush cim on dev¶
composer install komutundan sonra sites/default/files ile ilgili uyarıya bakmaya gerek yok. o bir uyarı değil.
cd /var/www/vhosts/binbiriz.com/dev-yediagac.binbiriz.com/drupal
composer install
### settings.local.php dosyalarını yerlerine koy
#/var/www/vhosts/binbiriz.com/dizin_for_dev_domain/drupal/web/sites/default dizinine koy
#setting.php composer install tarafından yaratıldığından şimdi credential düzeltilir setting.php'de
##burayı iyi kontrol et
drush cim
kontrol site çalışıyor ise¶
siteye login olarak
admin/reports/status
böyle bir error var. dikkate alma ama araştır.
REBUILD ACCESS
Enabled
The rebuild_access setting is enabled in settings.php. It is recommended to have this setting disabled unless you are performing a rebuild.
kontrol edilir.
özellikle settings.php dosyasının permissionları
chmod 644 sites/default/settings.php
proje planlama dokümanına konulacak olanlar¶
bunlar dosyanın ilk (aciklama) sayfasina konur.
deploy to server¶
dev sunucusunda