1.ansible劇本角色功能配置說明
角色功能有什么用:
1) 讓劇本配置更加規(guī)范
2) 可以讓劇本信息簡(jiǎn)化
3) 可以在匯總劇本中看到主機(jī)信息
如何配置角色功能:
第一個(gè)歷程: 配置好主機(jī)清單
vim /etc/ansible/roles/hosts
[rsync_server]
172.16.1.41
[rsync_client]
172.16.1.31
172.16.1.7
[nfs_server]
172.16.1.31
[nfs_client]
172.16.1.41
172.16.1.7
第二個(gè)歷程: 創(chuàng)建角色目錄
mkdir /etc/ansible/roles/rsync
mkdir /etc/ansible/roles/rsync/{tasks,files,vars,handlers,templates}
tasks: 目錄中定義任務(wù)的劇本信息
files: 保存要分發(fā)文件信息
vars: 目錄保存定義變量劇本文件
handlers: 目錄中保存觸發(fā)器劇本信息
templates: 目錄中保存模板文件(jinja2) ???
ansible-galaxy init nginx --- 創(chuàng)建角色目錄路徑信息
第三個(gè)歷程: 配置角色目錄中劇本信息
1) 編寫tasks/main.yml
編寫方式一: 直接編寫任務(wù)信息
- name: install software
yum: name=rsync state=installed
- name: push file info
copy: src={{ file_dir }}/{{ item.src }} dest={{ conf_dir }} mode={{ item.mode }}
notify:
- rsync_restart
- rsync_port
- rsync_port_info
with_items:
- {src: 'rsyncd.conf', mode: '644'}
- {src: 'rsync.password', mode: '600'}
when: ansible_eth0.ipv4.address == "10.0.0.41"
- name: create user
user: name=rsync shell=/sbin/nologin create_home=no
when: ansible_eth0.ipv4.address == "10.0.0.41"
- name: create backup dir
file: path=/backup state=directory owner=rsync group=rsync
...省略信息...
編寫方式二: 將一個(gè)完整的劇本拆分成多個(gè)劇本
# cat copy_file.yml
- name: push file info
copy: src={{ file_dir }}/{{ item.src }} dest={{ conf_dir }} mode={{ item.mode }}
notify:
- rsync_restart
- rsync_port
- rsync_port_info
with_items:
- {src: 'rsyncd.conf', mode: '644'}
- {src: 'rsync.password', mode: '600'}
# cat install_rsync.yml
- name: install software
yum: name=rsync state=installed
進(jìn)行多個(gè)任務(wù)劇本整合:
vim main.yml
- include_tasks: install_rsync.yml
- include_tasks: copy_file.yml
2) 保存files/文件信息
[root@m01 files]# ll
總用量 8
-rw-r--r-- 1 root root 409 8月 26 19:00 rsyncd.conf
-rw-r--r-- 1 root root 23 8月 26 18:23 rsync.password
3) 配置vars/main.yml
# cat ../vars/main.yml
conf_dir: /etc/
file_dir: /ansible_playbook/file
4) 配置handlers/main.yml
[root@m01 files]# cat ../handlers/main.yml
- name: rsync_restart
service: name=rsyncd state=restarted
- name: rsync_port
shell: netstat -lntup|grep rsync
register: rsync_port
- name: rsync_port_info
debug: msg={{ rsync_port.stdout_lines }}
第四個(gè)步驟: 調(diào)取角色信息
[root@m01 ansible]# cat roles/site.yml
- hosts: rsync_server,rsync_client
roles:
- rsync
第五個(gè)步驟: 執(zhí)行角色匯總劇本
ansible-playbook /etc/ansible/roles/site.yml -i /etc/ansible/roles/hosts
補(bǔ)充: templates目錄作用:
放置存儲(chǔ)模板文件
第一個(gè)歷程: 修改配置文件 變成 模板文件
vim rsyncd.conf
port = {{ prot }}
第二個(gè)歷程: 需要將模板文件移動(dòng)到templates/目錄中
mv rsync/files/rsyncd.conf rsync/templates/
第三個(gè)歷程: 修改復(fù)制數(shù)據(jù)的模塊
copy 復(fù)制文件數(shù)據(jù) == '' 所見即所得
template 復(fù)制文件數(shù)據(jù) == "" 可以解析{{}}調(diào)取變量信息
2.用戶訪問網(wǎng)站原理過程
- 進(jìn)行域名解析過程 DNS解析原理(本地查詢 遞歸查詢 迭代查詢(A記錄))
- 和網(wǎng)站服務(wù)建立連接 三次握手過程
- 發(fā)送HTTP請(qǐng)求信息 HTTP請(qǐng)求報(bào)文
- 發(fā)送HTTP響應(yīng)信息 HTTP響應(yīng)報(bào)文
- 和網(wǎng)站服務(wù)斷開連接 四次揮手過程
HTTP協(xié)議是什么? 超文本傳輸協(xié)議
HTTP請(qǐng)求報(bào)文結(jié)構(gòu)信息:
請(qǐng)求行:
> GET / HTTP/1.1
請(qǐng)求方法 GET(獲得 客戶端 -- 從 -- 服務(wù)端獲得頁面數(shù)據(jù)信息 ) POST(提交 客戶端 -- 發(fā)送數(shù)據(jù) --- 服務(wù)端)
請(qǐng)求內(nèi)容 請(qǐng)求網(wǎng)站資源信息(頁面文件 圖片 視頻 音頻) 沒有具體只需求會(huì)默認(rèn)請(qǐng)求首頁文件(index.html)
-
請(qǐng)求使用的協(xié)議 HTTP/1.0 HTTP/1.1 HTTP/2.0
TCP長(zhǎng)鏈接: HTTP/1.1 一次鏈接,可以發(fā)送多個(gè)請(qǐng)求
TCP短鏈接: HTTP/1.0 一次鏈接,可以發(fā)送一次請(qǐng)求
請(qǐng)求頭:
Hosts: www.oldboyedu.com --- 指定顯示什么網(wǎng)站頁面 www bbs blog 主機(jī)記錄信息
User-Agent: curl/7.29.0 --- 根據(jù)用戶訪問客戶端信息不同,可以顯示不同的頁面
空行:
請(qǐng)求主體: get方法沒有請(qǐng)求主體 post方法具有請(qǐng)求主體???HTTP響應(yīng)報(bào)文結(jié)構(gòu)信息:
起始行:
HTTP/1.1 302 Found- 協(xié)議信息
- 響應(yīng)狀態(tài)碼信息
響應(yīng)頭:
空行:
響應(yīng)主體: