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