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

2019-08-27  本文已影响0人  麟之趾a

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)响应状态码信息
上一篇下一篇

猜你喜欢

热点阅读