ansible程序角色规则

一、 规范目录结构

[root@m01 roles]# cd /etc/ansible/roles
[root@m01 roles]# mkdir {rsync,nfs}   --- 创建相应角色目录
[root@m01 roles]# mkdir{nfs,rsync}/{vars,tasks,templates,handlers,files}  --- 创建角色目录下面的子目录
[root@m01 roles]# tree 
    .
    ├── nfs
    │   ├── files       --- 保存需要分发文件目录 
    │   ├── handlers	--- 保存触发器配置文件信息
    │   ├── tasks       --- 保存要执行的动作信息文件   ok
    │   ├── templates   --- 保存需要分发模板文件 模板文件中可以设置变量信息
    │   └── vars        --- 保存变量信息文件
    └── rsync
        ├── files
        ├── handlers
        ├── tasks
        ├── templates
        └── vars

二、 在roles目录中创建相关文件
1、 编写tasks目录中的main.yml文件

[root@m01 roles]# vim /tasks/main.yml 
	- name: 01-copy conf file
      copy: src=exports dest=/etc
      notify: restart nfs server
    - name: 02-create data dir
      file: path={{ Data_dir }} state=directory owner=nfsnobody group=nfsnobody   
      # path: ['data01','data02','data03']    
      # state: directory    
      # owner: nfsnobody    
      # group: nfsnobody
    - name: 03-boot server
      service: name={{ item }} state=started enabled=yes
      with_items:
        - rpcbind
        - nfs
  	
	vim main.yml
	- include_tasks: copy_info.yml
	- include_tasks: create_dir.yml
	- include_tasks: boot_server.yml
	
    vim copy_info.yml 	
	- name: 01-copy conf file
      copy: src=exports dest=/etc
      notify: restart nfs server

    vim create_dir.yml
    - name: 02-create data dir
      file: path={{ Data_dir }} state=directory owner=nfsnobody group=nfsnobody 

    vim boot_server.yml
    - name: 03-boot server
      service: name={{ item }} state=started enabled=yes
      with_items:
        - rpcbind
        - nfs	

2、编写vars目录中的main.yml文件

[root@m01 vars]# vim main.yml
 Data_dir: /data

3、编写files目录中的文件

[root@m01 files]# ll
total 4
-rw-r--r-- 1 root root 29 May 17 15:23 exports

4、编写handlers目录中的main.yml文件

[root@m01 files]# vim main.yml
    - name: restart nfs server
      service: name=nfs state=restarted

目录中文件编写好汇总结构
(文件加载的流程)
	[root@m01 nfs]# tree
    ├── nfs-server  (角色目录②)
    ├── files
    │   └── exports (分发文件信息③)
    ├── handlers  (一些通知的信息,触发器的配置④)
    │   └── main.yml
    ├── tasks    (在目录中先找tasks中的信息,具体干什么事①)
    │   └── main.yml
    ├── templates  ()
    └── vars
        └── main.yml  (然后找vars 其中调用了一些变量②)
    ├── rsync  (角色目录②)
    │   └── files
    │   └── handlers
    │   └── tasks
    │   └── templates
    │   └── vars
    └── site.yml    (首先读取它,根据配置信息找到角色目录①)

三、 编写一个主剧本文件

[root@m01 roles]# cat site.yml 
    - hosts: nfs_server
      roles:
        - nfs-server
    
    - hosts: rsync_server
      roles:
        - rsync
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible中,角色(Roles)是一种组织和复用任务和变量的方法。角色可以将一组相关的任务、变量和文件组织在一起,以便在多个剧本中重复使用。 一个角色通常包含以下目录结构: ``` myrole/ ├── tasks/ │ ├── main.yml │ └── ... ├── handlers/ │ ├── main.yml │ └── ... ├── templates/ │ ├── file1.j2 │ └── ... ├── files/ │ ├── file1 │ └── ... ├── vars/ │ ├── main.yml │ └── ... ├── defaults/ │ ├── main.yml │ └── ... ├── meta/ │ └── main.yml └── README.md ``` - `tasks/`目录包含角色的任务定义,通常会包含一个`main.yml`文件,其中定义了要执行的任务列表。 - `handlers/`目录包含角色的处理程序定义,用来处理由任务触发的事件。 - `templates/`目录包含角色使用的模板文件,可以在部署过程中生成配置文件等。 - `files/`目录包含角色使用的静态文件。 - `vars/`目录包含角色的变量定义,可以在任务中引用这些变量。 - `defaults/`目录包含角色的默认变量定义,这些变量可以被用户覆盖。 - `meta/`目录包含角色的元数据定义,例如作者、依赖关系等信息。 - `README.md`是角色的说明文档,描述了角色的用途和使用方法。 通过使用角色,可以将复杂的部署和配置任务分解为更小的模块,提高可维护性和复用性,并使剧本更加清晰和易于管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值