11.ansible 角色

第一个历程: 规范目录结构

cd /etc/ansible/roles
mkdir {rsync,nfs}   #--- 创建相应角色目录
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文件
- 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	
  1. 编写vars目录中的main.yml文件
[root@m01 vars]# vim main.yml
Data_dir: /data
  1. 编写files目录中的文件
[root@m01 files]# ll
total 4
-rw-r--r-- 1 root root 29 May 17 15:23 exports
  1. 编写handlers目录中的main.yml文件
    vim main.yml
- name: restart nfs server
service: name=nfs state=restarted

目录中文件编写好汇总结构

[root@m01 nfs]# tree
    .
    ├── files
    │?? └── exports
    ├── handlers
    │?? └── main.yml
    ├── tasks
    │?? └── main.yml
    ├── templates
    └── vars
        └── main.yml

第三个历程: 编写一个主剧本文件
[root@m01 roles]# cat site.yml

- hosts: nfs_server
  roles:
    - nfs-server
    
- hosts: rsync_server
  roles:
    - rsync
  1. 一键化部署完成流程:
    第一个历程:每个服务剧本编写完毕
    第二个历程:主机清单配置完毕
    第三个历程:多个剧本进行合并
    第四个历程:进行剧本执行测试

  2. 课程知识总结
    1)ansible主机清单编写方法 5种方式
    单独编写主机清单 ansible-playbook -i 主机清单
    2)ansible模块信息
    ansible-doc -l/-s
    ping command(默认)shell(万能) script copy fetch file user cron mount yum service
    setup debug template
    3)ansible剧本编写
    剧本编写规范 3点
    剧本编写内容 hosts tasks--(- name)模块
    剧本编写扩展:
    1)变量设置
    2)判断功能
    3)循环功能
    4)忽略错误
    5)标签功能
    6)注册功能
    7)触发功能
    8)忽略采集(了解)
    剧本如何汇总:2种 include import_playbook

    1. ansible剧本规范编写:roles 5个目录

作业:

  1. 取出setup指定信息中的部分信息
    [root@m01 ansible_playbook]# ansible 172.16.1.7 -m setup -a "filter=ansible_default_ipv4"
    172.16.1.7 | SUCCESS => {
    "ansible_facts": {
    "ansible_default_ipv4": {
    "address": "10.0.0.7",
    "alias": "eth0",
    "broadcast": "10.0.0.255",
    "gateway": "10.0.0.254",
    "interface": "eth0",
    "macaddress": "00:0c:29:b2:e3:7e",
    "mtu": 1500,
    "netmask": "255.255.255.0",
    "network": "10.0.0.0",
    "type": "ether"
    },
    "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false
    }
    只取出address地址信息

  2. 如何搭建yum仓库
    第一个历程:收集软件信息 软件包
    第二个历程:将软件放置到仓库目录
    find /var/cache/yum/$basearch/$releasever -type f -name "*.rpm"|xargs -i mv {} /yum
    第三个历程:执行命令创建仓库目录清单列表
    第四个历程:搭建web服务
    第五个历程:编写yum源文件

  3. 预习 实时同步服务 nginx web服务 LNMP

原文地址:https://www.cnblogs.com/yangtao416/p/14596858.html