美文网首页
2019-08-27 ansible角色及http开头

2019-08-27 ansible角色及http开头

作者: 麟之趾a | 来源:发表于2019-08-27 21:22 被阅读0次

    ansible

    剧本循环功能
    with_items/loop
    ansible剧本角色功能说明

    1 .让剧本配置更加规范
    2 .让剧本信息更加简化
    3 .可以在剧本信息汇总中,看到主机信息

    如何配置角色信息

    第一个里程:配置主机清单

    /etc/ansible/roles/hosts

    二个里程:创建角色目录

    mkdir -p /etc/ansible/roles/nfs/{tasks,templetates,vars,handlers,files}

    目录 说明
    tasks 目录中定义任务的剧本信息
    files 保存要分发的文件信息
    vars 目录中保存自定义变量的文件
    handlers 目录中保存触发器剧本信息
    templates 目录中保存的模板信息(jinja2)

    自动定义,角色的方法

    [root@m01 /etc/ansible/roles/nfs]# ansible-galaxy init nfs
    [root@m01 /etc/ansible/roles/nfs]# tree /etc/ansible/roles/nfs/
    /etc/ansible/roles/nfs/
    ├── defaults
    │   └── main.yml
    ├── files
    ├── handlers
    │   └── main.yml
    ├── meta
    │   └── main.yml
    ├── README.md
    ├── tasks
    │   └── main.yml
    ├── templates
    ├── tests
    │   ├── inventory
    │   └── test.yml
    └── vars
        └── main.yml
    8 directories, 8 files
    
    第三个里程:配置角色目录剧本信息

    1)编写tasks/main.yml
    编写方式一:将任务写成一个整体文件

    [root@m01 /etc/ansible/roles]# cat nfs/tasks/main.yml 
    ---
    # tasks file for nfs
    - name: installl sofware
      yum: 
        name: ['rpcbind','nfs-utils'] 
        state: installed
    - name: copy config
      copy: src=exports dest=/etc
      notify: restart nfs
      when: (ansible_nodename == 'nfs01')
    - name: create dir
      file: path=/data state=directory owner=nfsnobody group=nfsnobody
      when: (ansible_nodename == 'nfs01')
    - name: boot server
      service: name={{ item }} state=started
      with_items:
        - rpcbind
        - nfs
      when: (ansible_nodename == 'nfs01')
    - name: check
      shell: ps aux|egrep "rpcbind|nfs"
      register: state
    - name: client mount
      mount: src=172.16.1.31:/data path=/mnt fstype=nfs state=mounted
      when: (ansible_nodename == 'web01')
    - name: check mount
      shell: df -h
      register: mount
    - name: stdout 
      debug: msg={{ mount.stdout_lines,state.stdout_lines }}
    

    编写方法二:将一个完整的剧本拆开整合

    copy.yml  install.yml  ....
    然后进行多个任务整合
    cat main.yml
      - include_tasks: copy.yml
      - include_tasks: install.yml
    

    2)保存file文件信息

    [root@m01 /etc/ansible/roles/nfs]# ls files/
    exports
    

    3)配置vars/main.yml
    4)配置handlers/main.yml

    [root@m01 /etc/ansible/roles]# cat nfs/handlers/main.yml 
    ---
    # handlers file for nfs
    - name: restart nfs
      service: name=nfs state=restarted
    
    

    5)调取角色信息

    [root@m01 /etc/ansible/roles]# cat site.yml 
    - hosts: nfs
      roles:
        - nfs
    

    6)测试执行

    [root@m01 /etc/ansible/roles]# ansible-playbook -C site.yml -i hosts 
    

    补充templates作用

    放置模板目录,存放经常变化的变量
    defaults 放置不经常变化的目录

    templates

    第一个里程修改配置文件,变成模板文件

    例: vim rsyncd.conf
    port: {{ port }}
    

    第二个里程:将里程移动到模板文件中
    第三个里程:修改复制数据的模块

    copy模块:所见即所得
    template模块:可以调用模板中的变量

    初始化角色

    ansible-galaxy init zookeeper
    

    HTTP原理

    用户访问网站的原理

    1 .进行域名解析过程 DNS解析原理
    2 .和网站建立连接 TCP三次握手
    3 .发送HTTP请求连接 HTTP请求报文
    4 .接收HTTP响应信息 HTTP响应信息

    5 .和网站服务进行断开连接 四次挥手

    HTTP协议:超文本传输协议
    HTTP请求报文结构

    1 .请求行
    GET /HTTP/1.1
    1)请求方法:GET POST ....
    GET: 获得: 客户端从服务端服务器获得页面数据信息
    POST:提交: 客户端发送数据到服务端
    2)请求内容: 请求网站资源信息(页面文件,图片,视频,音频),如果没有具体的需求,直接请求首页文件(index.html)
    3)请求使用的协议 HTTP/1.0 HTTP/1.1 HTTP/2.0
    TCP长链接: HTTP/1.1使用一次连接,发送多个请求
    TCP短连接:HTTP1.0使用,发送一个请求
    2 .请求头
    Host: www.oldboyedu.com  指定显示什么页面
    User-Agent: Curl/7.29.0  根据客户端不同,访问不同的页面
    3 .空行 
    告诉服务端,在往下面就没有请求头信息
    4 /请求报文主体:
    GET 方法没有请求报文主体
    POST 方法才有请求包文主体
    

    HTTP响应信息

    1 起始行
    HTTP/1.1 302 Found
    1)响应报文协议
    2)响应状态码信息
    

    相关文章

      网友评论

          本文标题:2019-08-27 ansible角色及http开头

          本文链接:https://www.haomeiwen.com/subject/kcyyectx.html