2013-11-24 11 views
9

Niedawno zanurkował ansibl dla jednego z moich serwerów, i okazało się to naprawdę ciekawy i oszczędność czasu. Używam serwera dedykowanego Ubuntu i skonfigurowałem wiele aplikacji internetowych napisanych na Pythonie i kilka na PHP. Dla Pythona używam uwsgi jako bramy HTTP. Napisałem skrypty powłoki, aby uruchomić/ponownie uruchomić kilka procesów w celu uruchomienia instancji konkretnej aplikacji internetowej. Co muszę zrobić za każdym razem, podłącz ssh i przejdź do tej konkretnej aplikacji i uruchom skrypt.ansibl Playbook uruchomić poleceń powłoki

co muszę

Próbowałem znaleźć sposób, aby napisać ansibl playbook zrobić wszystko z mojego komputera osobistego z jednego wiersza polecenia, ale nie mam pojęcia jak to zrobić. Nie znalazłem bardzo objaśniającej (dla początkującego) dokumentacji lub pomocy w Internecie.

PYTANIE

Jak mogę ponownie uruchomić Nginx z ansibl Playbook? Jak mogę zabić proces według identyfikatora procesu?

Odpowiedz

12

Nie trzeba nawet Playbook to zrobić:

  • Ponowne uruchomienie nginx:

ansible your_host -m service -a 'name=nginx state=restarted'

(patrz service module)

  • Zabić proces proces id

ansible your_host -m command -a 'kill -TERM your_pid'

(sygnał dostosować i używać pkill/killall jeśli trzeba dopasować nazwę; zobacz command module)

Jednak nie powiedziałbym, że ansibli świeci, jeśli używasz go tylko do poleceń ad-hoc.

Jeśli potrzebujesz samouczek, aby uzyskać początek z playbooks, jest jedna over here.

Teraz, jeśli można umieścić te (oficjalna nazwa usługi, poleceń itp .. są modules) w playbook (nazwijmy to playbook.yml), można po prostu:

- hosts: webappserver 
    tasks: 
    - name: Stops whatever 
     command: kill -TERM your_pid 
     notify: 
     - Restart nginx 

    - name: Another task 
     command: echo "Do whatever you want to" 

    handlers: 
    - name: Restart nginx 
     service: name=nginx state=restarted 

Tworzenie plik zasobów (hosts) zawierający:

# webappserver should resolve ! 
webappserver 

Wywołanie z:

ansible playbook.yml -i hosts 

i powinno działać.

To wszystko jest bardzo proste i można uchwycić łatwo czytać dokumenty lub wszelkie samouczek tam.

+0

Nie mówię o poleceń doraźnych. Po ponownym uruchomieniu instancji projektu mój skrypt powłoki zabija proces o identyfikator, a następnie ponownie uruchamia proces i usuwa wszystkie dzienniki wygenerowane przez aplikację.Muszę wiedzieć, czy można to zrobić w książeczce, aby uniknąć uruchamiania skryptu powłoki za każdym razem, gdy chcę ponownie uruchomić instancję, logując się do serwera za pomocą ssh i bla bla bla. –

+0

Tak. Polecenia, o których wspomniałem, można umieścić w książeczce. Zobacz edytowaną odpowiedź. – leucos

+0

Thx za pomoc, skontaktuje się z Tobą w ciągu kilku godzin –

Powiązane problemy