Question

I recently dived into Ansible for one of my servers, and found it really interesting and time saving. I am running an Ubuntu dedicated server and have configured number of web applications written on Python and a few on PHP. For Python I am using uwsgi as the HTTP gateway. I have written shell scripts to start/restart a few processes in order to run the instance of a specific web application. What I have to do everytime is, connect ssh and navigate to that specific application and run the script.

WHAT I NEED

I've been trying to find a way to write Ansible playbook to do all that from my personal computer with one line of command, but I have no clue how to do that. I have'nt found a very explanatory (for a beginner) documentation or help on the internet.

QUESTION

How can I restart Nginx with Ansible playbook? How can I kill a process by process id?

Était-ce utile?

La solution

You don't even need a playbook to do this :

  • Restarting nginx :

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

(see service module)

  • Kill a process by process id

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

(adjust signal, and use pkill/killall if you need to match a name; see command module)

However, I wouldn't say that ansible shines if you're just using it for ad-hoc commands.

If you need a tutorial to get you started with playbooks, there is one over here.

Now if you can to put these (the official name for service, commands, etc.. are modules) in a playbook (let's call it playbook.yml), you can just :

- 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

Create an inventory file (hosts) containing :

# webappserver should resolve !
webappserver

Invoke with :

ansible playbook.yml -i hosts

and it should work.

This is all very basic and can be grasped easily reading the docs or any tutorial out there.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top