mirror of
				https://github.com/ansible-collections/community.general.git
				synced 2025-10-24 21:14:00 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| # this is an annotated example of some features available in playbooks
 | |
| # it shows how to make sure packages are updated, how to make sure
 | |
| # services are running, and how to template files.  It also demos
 | |
| # change handlers that can restart things (or trigger other actions)
 | |
| # when resources change.  For more advanced examples, see example2.yml
 | |
| 
 | |
| # on all hosts, run as the user root...
 | |
| 
 | |
| - name: example play
 | |
|   hosts: all
 | |
|   user: root
 | |
| 
 | |
| # could have also have done:
 | |
| #  user: mdehaan
 | |
| #  sudo: True
 | |
| 
 | |
|   # make these variables available inside of templates
 | |
|   # for when we use the 'template' action/module later on...
 | |
| 
 | |
|   vars:
 | |
|     http_port: 80
 | |
|     max_clients: 200
 | |
| 
 | |
|   # define the tasks that are part of this play...
 | |
| 
 | |
|   tasks:
 | |
| 
 | |
|   # task #1 is to run an arbitrary command
 | |
|   # we'll simulate a long running task, wait for up to 45 seconds, poll every 5
 | |
|   # obviously this does nothing useful but you get the idea
 | |
| 
 | |
|   - name: longrunner
 | |
|     action: command /bin/sleep 15
 | |
|     async: 45
 | |
|     poll: 5
 | |
| 
 | |
|   # let's demo file operations.
 | |
|   #
 | |
|   # We can 'copy' files or 'template' them instead, using jinja2
 | |
|   # as the templating engine.  This is done using the variables
 | |
|   # from the vars section above mixed in with variables bubbled up
 | |
|   # automatically from tools like facter and ohai.  'copy'
 | |
|   # works just like 'template' but does not do variable subsitution.
 | |
|   #
 | |
|   # If and only if the file changes, restart apache at the very
 | |
|   # end of the playbook run
 | |
| 
 | |
|   - name: write some_random_foo configuration
 | |
|     action: template src=templates/foo.j2 dest=/etc/some_random_foo.conf
 | |
|     notify:
 | |
|     - restart apache
 | |
| 
 | |
|   # make sure httpd is installed at the latest version
 | |
| 
 | |
|   - name: install httpd
 | |
|     action: yum pkg=httpd state=latest
 | |
| 
 | |
|   # make sure httpd is running
 | |
| 
 | |
|   - name: httpd start
 | |
|     action: service name=httpd state=running
 | |
| 
 | |
|   # handlers are only run when things change, at the very end of each
 | |
|   # play.  Let's define some.  The names are significant and must
 | |
|   # match the 'notify' sections above
 | |
| 
 | |
|   handlers:
 | |
| 
 | |
|     # this particular handler is run when some_random_foo.conf
 | |
|     # is changed, and only then
 | |
| 
 | |
|     - name: restart apache
 | |
|       action: service name=httpd state=restarted
 | |
| 
 | |
| 
 |