Linux之ansible的角色基本使用
Posted 江湖有缘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之ansible的角色基本使用相关的知识,希望对你有一定的参考价值。
Linux之ansible的角色基本使用
一、测试ansible的连通性
[root@192 ~]# ansible all -m ping
192.168.200.135 | SUCCESS =>
"ansible_facts":
"discovered_interpreter_python": "/usr/libexec/platform-python"
,
"changed": false,
"ping": "pong"
192.168.200.136 | SUCCESS =>
"ansible_facts":
"discovered_interpreter_python": "/usr/libexec/platform-python"
,
"changed": false,
"ping": "pong"
192.168.200.133 | SUCCESS =>
"ansible_facts":
"discovered_interpreter_python": "/usr/libexec/platform-python"
,
"changed": false,
"ping": "pong"
二、创建角色的各级目录
1.新建角色目录
mkdir -p /ansible/roles
mkdir -p /ansible/roles/webserver
2.新增webserver的下各级目录
[root@192 ~]# cd /ansible/roles/webserver/
[root@192 webserver]#
[root@192 webserver]# mkdir files
[root@192 webserver]# mkdir handlers
[root@192 webserver]# mkdir meta
[root@192 webserver]# mkdir tasks
[root@192 webserver]# mkdir teamplates
[root@192 webserver]# mkdir vars
[root@192 webserver]#
3.各级目录的解释
role的基本构成——
◆files: 用于存放一些非模板文件的文件,如https证书等。
tempaltes:用于存放角色相关的Jinja2模板文件,当使用角色相关的模板时,如未明确指定模板路径,
则默认使用此目录中的模板
◆tasks: 角色所要执行的所有任务文件都存放于此,包含一个主文件main.yml,可以在主文件中通过
include的方式引|入其他任务文件
◆handlers: 用于定义角色中需要调用的handlers, 包含-一个主配置文件main.yml,可通过include引入
其他的handlers文件。
◆vars: 用于定义此角色用到的变量,包含一 个主文件main.yml
◆meta:用于存储角色的元数据信息,这些元数据用于描述角色的相关属性,包括作者,角色的主要作用,
角色的依赖关系等。默认这些信息会写入到当前目录下的main.ym|文件中
◆defaults: 除了vars目录,defaults 目录也用于定义此角色用到的变量,与vars不同的是, defaults中定
义的变量的优先级最低。
三、创建httpd相关文件
1.创建/ansible/roles/webserver/tasks下相关文件
[root@192 webserver]# cat tasks/main.yml
---
- name: create apache group
group: name=apache system=yes gid=80
- name: create apache user
user: name=apache system=yes shell=/sbin/nologin home=/var/www/ uid=80 group=apache
- name: install httpd package
yum: name=httpd
- name: config file
copy: src=httpd.conf dest=/etc/httpd/conf/ backup=yes
notify: restart
- name: index.html
copy: src=index.html dest=/var/www/html/
- name: start service
service: name=httpd state=started enabled=yes
2.创建 /ansible/roles/webserver/handlers/main.yml
[root@192 tasks]# cat /ansible/roles/webserver/handlers/main.yml
- name: restart
service: name=httpd state=restarted
3.创建 /ansible/roles/webserver/files下文件
[root@192 webserver]# cat files/index.html
<h1> Welcome to http website </h1>
[root@192 webserver]# cp /etc/httpd/conf/httpd.conf files/httpd.conf
[root@192 webserver]#
四、调用角色
[root@192 webserver]# cat /ansible/httpd.yml
---
# httpd role
- hosts: webserver
name: install httpd
remote_user: root
roles:
- webserver
五、目录结构
[root@192 tasks]# tree /ansible/
/ansible/
├── httpd.yml
└── role
└── webserver
├── files
│ ├── httpd.conf
│ └── index.html
├── handlers
│ └── main.yml
├── meta
├── tasks
│ └── main.yml
├── teamplates
├── vars
└── vim
六、运行yaml
[root@192 ansible]# ansible-playbook -C httpd.yml
PLAY [install httpd] *********************************************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************************************************
ok: [192.168.200.133]
ok: [192.168.200.135]
ok: [192.168.200.136]
TASK [webserver : create apache group] ***************************************************************************************************************************************************
changed: [192.168.200.135]
changed: [192.168.200.136]
changed: [192.168.200.133]
TASK [webserver : create apache user] ****************************************************************************************************************************************************
changed: [192.168.200.133]
changed: [192.168.200.136]
changed: [192.168.200.135]
TASK [webserver : install httpd package] *************************************************************************************************************************************************
changed: [192.168.200.133]
changed: [192.168.200.135]
changed: [192.168.200.136]
TASK [webserver : config file] ***********************************************************************************************************************************************************
changed: [192.168.200.135]
changed: [192.168.200.136]
changed: [192.168.200.133]
TASK [webserver : index.html] ************************************************************************************************************************************************************
changed: [192.168.200.133]
changed: [192.168.200.135]
changed: [192.168.200.136]
TASK [webserver : start service] *******************************************************************************************************************************Linux九阴真经之九阴白骨爪残卷5(ansible用法二之template及roles 角色)