- Ansible Playbook Essentials
- Gourav Shah
- 278字
- 2021-07-16 20:47:49
Creating the www playbook
We created a site-wide playbook and used an include statement to call another playbook by the name www.yml
. We will now create this file with one play, which maps our web server hosts to the Nginx role:
--- #www.yml : playbook for web servers - hosts: www remote_user: vagrant sudo: yes roles: - nginx
The above code works as follows:
- Run this code on any host that maps to the
[www]
group specified in the hosts file. - For each directory inside the
roles/nginx/*
file, includeroles/nginx/*/main.yml
to the play. This includestasks
,handlers
,vars
,meta
,default,
and so on. This is where the auto include rules apply.
The default and custom role paths
By default, Ansible looks inside the roles/
subdirectory of the project that we create playbooks for. Being top-class devops engineers, we will follow the best practice to have a centralized, version-controlled repository to store all your roles. We may also end up reusing the roles created by community. Once we do this, we can reuse these roles across multiple projects. In such cases, we will check out the code at one or more locations, for example:
/deploy/ansible/roles
/deploy/ansible/community/roles
For nondefault paths, we will need to add the roles_path
parameter to ansible.cfg
as shown in the following command:
roles_path = /deploy/ansible/roles:/deploy/ansible/community/roles
Parameterizing the roles
At times, we may need to override default parameters specified inside vars or the default directory of a role, for example, running web servers on port 8080 instead of 80. In such cases, we can also pass parameters to roles in the preceding playbook, as follows:
--- #www.yml : playbook for web servers - hosts: www roles: - { role: nginx, port: 8080 }
- 深入理解Django:框架內幕與實現原理
- 名師講壇:Java微服務架構實戰(SpringBoot+SpringCloud+Docker+RabbitMQ)
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- Python機器學習基礎教程
- Python開發基礎
- 一步一步跟我學Scratch3.0案例
- 一覽眾山小:ASP.NET Web開發修行實錄
- SaaS攻略:入門、實戰與進階
- Socket.IO Cookbook
- 軟件再工程:優化現有軟件系統的方法與最佳實踐
- Learn C Programming
- TensorFlow.NET實戰
- Cocos2D Game Development Essentials
- Flutter for Beginners
- Mastering Responsive Web Design