ansible(自动化运维下)——yaml语言,Role-角色扮演
生活随笔
收集整理的這篇文章主要介紹了
ansible(自动化运维下)——yaml语言,Role-角色扮演
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
yaml語言
通過yaml編寫劇本,完成web的部署,配置,啟動的全過程。ansible服務(wù)器(master)
清理一下環(huán)境
準備配置文件
yum install -y httpd創(chuàng)建文件夾(存放httpd配置文件和劇本)
mkdir apache cd apache把配置文件拷進來
cp -rf /etc/httpd/conf/httpd.conf .更改配置文件監(jiān)聽8080端口
vim httpd.conf
編寫劇本(注意空格與縮進)
vim apache.yaml - hosts: host2tasks:- name: install apache packagesyum: name=httpd state=present- name: copy apache confcopy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf- name: ensure apache is runningservice: name=httpd state=started enabled=yes測試語法是否有誤
[root@ansible apache]# ansible-playbook apache.yaml --syntax-checkplaybook: apache.yaml執(zhí)行
[root@ansible apache]# ansible-playbook apache.yamlPLAY [host2] *******************************************************************************************************************TASK [Gathering Facts] ********************************************************************************************************* ok: [host2]TASK [install apache packages] ************************************************************************************************* ok: [host2]TASK [copy apache conf] ******************************************************************************************************** ok: [host2]TASK [ensure apache is running] ************************************************************************************************ ok: [host2]PLAY RECAP ********************************************************************************************************************* host2 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0打開瀏覽器測試是否成功
如果配置文件發(fā)生變化(Listen 9090)
再次執(zhí)行劇本,命令成功,但是配置不會生效,所以要增加處理程序。設(shè)置觸發(fā)器。
再次執(zhí)行,生效
Role-角色扮演
意義
roles是在ansible中,playbooks的目錄組織結(jié)構(gòu)。將代碼或文件進行模塊化,成為roles的文件目錄組織結(jié)構(gòu),易讀,代碼可重用,層次清晰。
利用role遠程部署nginx并配置
需要的目錄結(jié)構(gòu)
nginx 角色名
files 普通文件
handlers 觸發(fā)器程序
tasks 主任務(wù)
templates 金甲模板(有變量的文件)
vars 自定義變量
創(chuàng)建所需的環(huán)境
mkdir roles/nginx/{files,handlers,tasks,templates,vars} -p touch roles/site.yaml roles/nginx/{handlers,tasks,vars}/main.yaml echo "hello world" > roles/nginx/files/index.html yum install -y nginx && cp /etc/nginx/nginx.conf roles/nginx/templates/nginx.conf.j2編寫任務(wù)
vim roles/nginx/tasks/main.yaml --- - name: install epel-release packgeyum: name=epel-release state=latest- name: install nginx packgeyum: name=nginx state=latest- name: copy index.htmlcopy: src=index.html dest=/usr/share/nginx/html/index.html- name: copy nginx.conf templatetemplate: src=nginx.conf.j2 dest=/etc/nginx/nginx.confnotify: restart nginx- name: make sure nginx service runningservice: name=nginx state=started enabled=yes #準備配置文件 vim roles/nginx/templates/nginx.conf.j2{{ ansible_processor_cores }}內(nèi)部變量,查看內(nèi)核數(shù)
默認先調(diào)用后copy
編寫處理程序
vim roles/nginx/handlers/main.yaml - hosts: host3roles:- nginx實施
cd roles ansible-playbook site.yaml --syntax-check #測試語法是否有誤 ansible-playbook site.yaml #實施劇本驗證host3
成功!
總結(jié)
以上是生活随笔為你收集整理的ansible(自动化运维下)——yaml语言,Role-角色扮演的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ansible(自动化运维中)——ans
- 下一篇: 微软必应聊天每轮对话次数限制提高到 20