zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Shiro结合配置文件实战实现权限验证
    Shiro的一些概念解释以及配置了解
    jedis工具类
    【转载】redis的主从复制
    Redis的事务
    redis的持久化
    SSM框架-SpringMVC 实例文件上传下载
    如何设置CentOS 7获取动态及静态IP地址
    阿里云linux centos 一键部署web环境--图文详解
    SVN使用教程总结
  • 原文地址:https://www.cnblogs.com/yangtao416/p/14596858.html
Copyright © 2011-2022 走看看