Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Automatyzacja developmentu, Produkcja -> Serwer testowy -> Serwer produkcyjny
markonix
post 19.03.2017, 18:44:35
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Zastanawiam się nad aktualnymi metodami zarządzania developmentem z którego Wy korzystanie lub korzysta się w firmach i jego uproszczeniem przy projekcie PHP.
Obecnie, przy ręcznym uploadzie prac zrobionych na localu (Vagrant) jest troszkę pracy bo każdą paczkę zmian w postaci już pushniętych commitów muszę wrzucać najpierw na test co wiąże się z:
- zalogowanie się do SSH
- wyłączaniem strony (funkcja wbudowany w FW)
- pobraniu zmian (git pull) z zdalnego repo
- wykonaniem composer update jeżeli zmienił composer lock
- wykonaniem migracji jeżeli są potrzebne
- wykonaniem kilka operacji typowych dla FW (np. w przypadku L5 dobrze jest odświeżyć cache itp)
- może jakieś testy automatyczne
- włączeniem strony.
Potem przy akceptacji zmian, to samo tylko z większą ostrożnością (zwłaszcza przy migracjach) trzeba wykonać dla serwera docelowego.

Na pewno da się to jakoś uprościć jakimiś narzędziami. Nie muszą być koniecznie darmowe. Repo trzymam na bitbucket. Jak tu u Was wygląda? Jak to zrobić przyjemnym aby nie tęsknić za starym, szybkim grzebaniem w projekcie via FTP i PHPMyAdmin? smile.gif


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Pyton_000
post 19.03.2017, 21:30:03
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Jenkins, Deployer, Rocketeer,
http://jonathannicol.com/blog/2013/11/19/a...from-bitbucket/

i wieeele wieeeele innych... wystarczy poszukać, poczytać≤ wybrać co Ci się podoba
Go to the top of the page
+Quote Post
markonix
post 19.03.2017, 23:18:24
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Tak jak przejrzałem pokrótce po samej analizie przykładów to najbardziej przystępny wydaje mi się Deployer. Na plus widzę gotowe schematy dla Laravel.
Może jakaś rekomendacja? Używałeś/używasz?


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 20.03.2017, 08:21:15
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Używam Deployer. Na potrzeby prywatnych projektów jest ok. Miałem plan również go zastosować do dużego projektu produkcyjnego w Firmie ze względu właśnie na wersjonowanie wydań. Dla Laravela działa dobrze.

Rocketeer można zintegrować z Laravelem i robić deploy bezpośrednio z Artisana.
Go to the top of the page
+Quote Post
markonix
post 20.03.2017, 19:53:18
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Gdzie zainstalować Deployera?

Na serwerze developerskim (Vagrant) czy lokalnie (Windows)?
Czy na produkcji wymagany też on jest (tak jak git'a potrzebuje tu i tu)? Czy to wszystko się dzieje przez SSH?
Te takie release'y rozumiem, że trzyma już na docelowym serwerze aby łatwo się między nimi przełączać?

Kod
vagrant@homestead:~$ php vendor/bin/dep pwd -vvv
➤ Executing task pwd
[production] > pwd
  SSH multiplexing initialization
Enter passphrase for key '/home/vagrant/.ssh/id_rsa':
root@ebizo.pl's password:
Permission denied, please try again.
root@ebizo.pl's password:

Dość szybko stanąłem :/ Po wpisaniu prawidłowego hasła nic się nie dzieje (przy wpisaniu błędnego zwraca prawidłowo Access denied więc się łączy).


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 20.03.2017, 21:07:28
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Klucz ssh z vagrant wrzucony na serwer?
Pokaż plik z taskami.
Go to the top of the page
+Quote Post
markonix
post 20.03.2017, 22:50:20
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Nie, nie wrzucałem klucza bo właśnie nie wiem jaki klucz gdzie wrzucić poza tym myślałem, że póki co mogę się logować na login i hasło.
Na serwerze docelowym rozumiem, że mam wrzucić w root /.ssh authorized_keys klucz publiczny tylko który to jest?
C:\Users\[NAZWA_USERA_WINDOWS]\.ssh\id_rsa.pub ten?

Co do pliku z instrukcjami daleko nie zaszedłem, na razie stoję po prostu na takim hello world sprawdzającym czy się łączy zgodnie z dokumentacją.

  1. <?php
  2. namespace Deployer;
  3. require 'recipe/laravel.php';
  4.  
  5. // Configuration
  6.  
  7. set('ssh_type', 'native');
  8. set('ssh_multiplexing', true);
  9.  
  10. set('repository', 'git@domain.com:username/repository.git');
  11.  
  12. add('shared_files', []);
  13. add('shared_dirs', []);
  14.  
  15. add('writable_dirs', []);
  16.  
  17. // Servers
  18.  
  19. server('production', 'DOMENA', PORT)
  20. ->user('root')
  21. ->password(null)
  22. // ->set('deploy_path', '/home/ebizo/domains/abc.pl')
  23. ->pty(true);
  24.  
  25.  
  26. // Tasks
  27.  
  28. desc('Restart PHP-FPM service');
  29. task('php-fpm:restart', function () {
  30. // The user must have rights for restart service
  31. // /etc/sudoers: username ALL=NOPASSWD:/bin/systemctl restart php-fpm.service
  32. run('sudo systemctl restart php-fpm.service');
  33. });
  34. after('deploy:symlink', 'php-fpm:restart');
  35.  
  36. // [Optional] if deploy fails automatically unlock.
  37. after('deploy:failed', 'deploy:unlock');
  38.  
  39. // Migrate database before symlink new release.
  40.  
  41. before('deploy:symlink', 'artisan:migrate');
  42.  
  43. task('pwd', function() {
  44. $result = run('pwd');
  45. writeln("Current dir: $result");
  46. });


Ten post edytował markonix 20.03.2017, 22:51:17


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 15:17