青春期13分钟床戏被删减片段_看性生活片_在线看黄的网站_护士日本乳挤奶水_免费黄色录像片_啊啊啊好大好深_亚洲91在线视频_91污秽视频_欧美高清精品_亚洲国产精品肉丝袜久久

新聞中心

了解最新公司動(dòng)態(tài)及行業(yè)資訊

當(dāng)前位置:首頁(yè)>新聞中心
全部 1755 公司動(dòng)態(tài) 599 行業(yè)動(dòng)態(tài) 608

學(xué)到了嗎(天天向上資源下載中心在線觀看)天天向上資源下載中心app,「天天向上」「運(yùn)維自動(dòng)化」一文搞懂a(chǎn)nsible及ansible圖形化管理,自動(dòng)化運(yùn)維,

時(shí)間:2025-03-14   訪問(wèn)量:1014

1. ansible 簡(jiǎn)介

1.1 ansible 是什么?

ansible 基于python開(kāi)發(fā),集合了眾多的運(yùn)維工具(puppet, chef, func, fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。

ansible 是基于paramiko開(kāi)發(fā)的,基于模塊化工作,本身沒(méi)有批量部署的能力,真正具有批量部署的是ansible所運(yùn)行的模塊,ansible只提供了一種框架。ansbile不需要在遠(yuǎn)程主機(jī)上安裝client/agents。

1.2 ansible 特點(diǎn)

默認(rèn)使用ssh協(xié)議對(duì)設(shè)置進(jìn)行管理;有大量常規(guī)運(yùn)維操作的模塊,可實(shí)現(xiàn)日常絕大部分的操作;支持API及自定義模塊,可通過(guò)python輕松擴(kuò)展;通過(guò)playbooks來(lái)定制強(qiáng)大的配置和狀態(tài)管理;輕量級(jí),無(wú)需在被控機(jī)上操作,更新時(shí),只需在操作機(jī)上進(jìn)行一次更新即可;提供了一個(gè)功能強(qiáng)大,操作性強(qiáng)的web管理界面和RESE API接口平臺(tái) —— AWX平臺(tái)。

1.ansible 架構(gòu)圖

Ansible:Ansible核心程序。HostInventory:記錄由Ansible管理的主機(jī)信息,包括端口、密碼、ip等。Playbooks:“劇本”YAML格式文件,多個(gè)任務(wù)定義在一個(gè)文件中,定義主機(jī)需要調(diào)用哪些模塊來(lái)完成的功能。CoreModules:核心模塊,主要操作是通過(guò)調(diào)用核心模塊來(lái)完成管理任務(wù)。CustomModules:自定義模塊,完成核心模塊無(wú)法完成的功能,支持多種語(yǔ)言。ConnectionPlugins:連接插件,Ansible和Host通信使用

2.ansible 任務(wù)執(zhí)行

2.1 ansible 任務(wù)執(zhí)行模式

ad-hoc 模式

使用單個(gè)模塊,支持批量執(zhí)行單條命令。ad-hoc命令是一種可以快速輸入的命令,而且不需要保存起來(lái)的命令。就相當(dāng)于bash中的一句話shell

playbook模式(劇本模式)

playbook通過(guò)多個(gè)task集合完成一類功能,如Web服務(wù)的安裝部署、數(shù)據(jù)庫(kù)服務(wù)器的批量備份等??梢院?jiǎn)單地把playbook理解為通過(guò)組合多條ad-hoc操作的配置文件。

2.2 ansible 任務(wù)執(zhí)行流程

簡(jiǎn)單理解就是Ansible在運(yùn)行時(shí),首先讀取ansible.cfg中的配置,根據(jù)規(guī)則獲取Inventory中的管理主機(jī)列表, 并行的在這些主機(jī)中執(zhí)行配置的任務(wù), 最后等待執(zhí)行返回的結(jié)果。

2.3 ansible 命令執(zhí)行過(guò)程

加載自己的配置文件,默認(rèn)/etc/ansible/ansible.cfg;查找對(duì)應(yīng)的主機(jī)配置文件,找到要執(zhí)行的主機(jī)或者組;加載自己對(duì)應(yīng)的模塊文件,如 command;通過(guò)ansible將模塊或命令生成對(duì)應(yīng)的臨時(shí)py文件(python腳本),并將該文件傳輸至遠(yuǎn)程服務(wù)器;對(duì)應(yīng)執(zhí)行用戶的家目錄的.ansible/tmp/XXX/XXX.PY文件;給文件 +x 執(zhí)行權(quán)限;執(zhí)行并返回結(jié)果;刪除臨時(shí)py文件,sleep 0退出;

3.ansible 配置

3.1 ansible 安裝方式

pip 安裝pip install ansible yum 安裝yum install epel-release -y yum install ansible -y

3.2 ansible 程序結(jié)構(gòu)

安裝目錄如下(yum安裝):

  配置文件目錄:/etc/ansible/

  執(zhí)行文件目錄:/usr/bin/

  Lib庫(kù)依賴目錄:

/usr/lib/pythonX.X/site-packages/ansible/

  Help文檔目錄:

/usr/share/doc/ansible-X.X.X/
  Man文檔目錄:/usr/share/man/man1/

3.3 ansible 配置文件查找順序

檢查環(huán)境變量ANSIBLE_CONFIG指向的路徑文件(export ANSIBLE_CONFIG=/etc/ansible.cfg);~/.ansible.cfg 檢查當(dāng)前目錄下的ansible.cfg配置文件;/etc/ansible.cfg 檢查etc目錄的配置文件。

3.4 ansible 配置文件常用參數(shù)

inventory = /etc/ansible/hosts #這個(gè)參數(shù)表示資源清單inventory文件的位置 library = /usr/share/ansible #指向存放Ansible模塊的目錄,支持多個(gè)目錄方式,只要用冒號(hào)(:)隔開(kāi)就可以 forks = 5 #并發(fā)連接數(shù),默認(rèn)為5 sudo_user = root #設(shè)置默認(rèn)執(zhí)行命令的用戶 remote_port = 22 #指定連接被管節(jié)點(diǎn)的管理端口,默認(rèn)為22端口,建議修改,能夠更加安全 host_key_checking = False #設(shè)置是否檢查SSH主機(jī)的密鑰,值為True/False。關(guān)閉后第一次連接不會(huì)提示配置實(shí)例 timeout = 60 #設(shè)置SSH連接的超時(shí)時(shí)間,單位為秒 log_path = /var/log/ansible.log #指定一個(gè)存儲(chǔ)ansible日志的文件(默認(rèn)不記錄日志)

3.5 ansible 命令集

/usr/bin/ansible   Ansibe AD-Hoc 臨時(shí)命令執(zhí)行工具,常用于臨時(shí)命令的執(zhí)行 /usr/bin/ansible-doc    Ansible 模塊功能查看工具 /usr/bin/ansible-galaxy   下載/上傳優(yōu)秀代碼或Roles模塊 的官網(wǎng)平臺(tái),基于網(wǎng)絡(luò)的 /usr/bin/ansible-playbook  Ansible 定制自動(dòng)化的任務(wù)集編排工具 /usr/bin/ansible-pull  Ansible遠(yuǎn)程執(zhí)行命令的工具,拉取配置而非推送配置(使用較少,海量機(jī)器時(shí)使用,對(duì)運(yùn)維的架構(gòu)能力要求較高) /usr/bin/ansible-vault  Ansible 文件加密工具 /usr/bin/ansible-console  Ansible基于Linux Consoble界面可與用戶交互的命令執(zhí)行工具

3.6 ansible 常用模塊

ansible web -m ping 主機(jī)連通性測(cè)試

command 模塊

直接在遠(yuǎn)程主機(jī)上執(zhí)行命令,并將結(jié)果返回本主機(jī)

eg: ansible web -m command -a ss -ntl

該模塊常用命令
chdir       # 在執(zhí)行命令之前,先切換到該目錄 executable # 切換shell來(lái)執(zhí)行命令,需要使用命令的絕對(duì)路徑 free_form   # 要執(zhí)行的Linux指令,一般使用Ansible的-a參數(shù)代替。 creates  # 一個(gè)文件名,當(dāng)這個(gè)文件存在,則該命令不執(zhí)行,可以用來(lái)做判斷 removes # 一個(gè)文件名,這個(gè)文件不存在,則該命令不執(zhí)行

shell 模塊

shell模塊可以在遠(yuǎn)程主機(jī)上調(diào)用shell解釋器運(yùn)行命令,支持shell的各種功能,例如管道等

copy 模塊

這個(gè)模塊用于將文件復(fù)制到遠(yuǎn)程主機(jī),同時(shí)支持給定內(nèi)容生成文件和修改權(quán)限等

file 模塊

該模塊主要用于設(shè)置文件的屬性,比如創(chuàng)建文件、創(chuàng)建鏈接文件、刪除文件等

fetch 模塊

該模塊用于從遠(yuǎn)程某主機(jī)獲取(復(fù)制)文件到本地。

cron 模塊

該模塊適用于管理cron計(jì)劃任務(wù)的。其使用的語(yǔ)法跟我們的crontab文件中的語(yǔ)法一致

yum 模塊

主要用于軟件的安裝

service 模塊

該模塊用于服務(wù)程序的管理

user 模塊

該模塊主要是用來(lái)管理用戶賬號(hào)

group 模塊

該模塊主要用于添加或刪除組

script 模塊

該模塊用于將本機(jī)的腳本在被管理端的機(jī)器上運(yùn)行

setup 模塊

該模塊主要用于收集信息,是通過(guò)調(diào)用facts組件來(lái)實(shí)現(xiàn)的。

facts組件是Ansible用于采集被管機(jī)器設(shè)備信息的一個(gè)功能,我們可以使用setup模塊查機(jī)器的所有facts信息,可以使用filter來(lái)查看指定信息。整個(gè)facts信息被包裝在一個(gè)JSON格式的數(shù)據(jù)結(jié)構(gòu)中,ansible_facts是最上層的值。

facts就是變量,內(nèi)建變量。每個(gè)主機(jī)的各種信息,cpu顆數(shù)、內(nèi)存大小等。會(huì)存在facts中的某個(gè)變量中。調(diào)用后返回很多對(duì)應(yīng)主機(jī)的信息,在后面的操作中可以根據(jù)不同的信息來(lái)做不同的操作。如redhat系列用yum安裝,而debian系列用apt來(lái)安裝軟件。

4.ansible playbook

4.1 playbook簡(jiǎn)介

用戶通過(guò)ansible命令直接調(diào)用yml語(yǔ)言寫(xiě)好的playbook,playbook由多條play組成,每條play都有一個(gè)任務(wù)(task)相對(duì)應(yīng)的操作,然后調(diào)用模塊modules,應(yīng)用在主機(jī)清單上,通過(guò)ssh遠(yuǎn)程連接,從而控制遠(yuǎn)程主機(jī)或者網(wǎng)絡(luò)設(shè)備

4.2 playbook核心元素

Hosts 執(zhí)行的遠(yuǎn)程主機(jī)列表(應(yīng)用在哪些主機(jī)上) Tasks 任務(wù)集 Variables 內(nèi)置變量或自定義變量在playbook中調(diào)用 Templates模板 可替換模板文件中的變量并實(shí)現(xiàn)一些簡(jiǎn)單邏輯的文件 Handlers和notify結(jié)合使用,由特定條件觸發(fā)的操作,滿足條件方才執(zhí)行,否則不執(zhí)行 tags標(biāo)簽 指定某條任務(wù)執(zhí)行,用于選擇運(yùn)行playbook中的部分代碼。 ansible具有冪等性,因此會(huì)自動(dòng)跳過(guò)沒(méi)有變化的部分, 即便如此,有些代碼為測(cè)試其確實(shí)沒(méi)有發(fā)生變化的時(shí)間依然會(huì)非常地長(zhǎng)。 此時(shí),如果確信其沒(méi)有變化,就可以通過(guò)tags跳過(guò)此些代碼片斷 ansible-playbook -t tagsname useradd.yml

4.3 playbook

變量定義vars: key1=value1 key2=value2 條件測(cè)試- hosts: mysql remote_user: root tasks: - name: "shut down Centos 7 systems" command: /sbin/shutdown -r now when: - ansible_distribution == "Centos” - ansible_distribution_major_version =="7" 迭代- hosts: webserver remote_user: root tasks: - name: "Add users" user: name={{ item.name }} state=present groups={{ item.groups }} with_items: - { name:test1, groups:wheel} { name:test2, groups:root}

Templates 模塊

模板,即使用模板語(yǔ)法的文件

tags 模塊

在一個(gè)playbook中,我們一般會(huì)定義很多個(gè)task,如果我們只想執(zhí)行其中的某一個(gè)task或多個(gè)task時(shí)就可以使用tags標(biāo)簽功能了
- hosts: webserver remote_user: root tasks: - name: copy hosts file copy: src=/etc/hosts dest=/opt/hosts tags: - only - name: touch file file: path=/opt/hosts01 state=touch 執(zhí)行命令:ansible-plavbook hosts.vml --tags="only"

4.4 roles

roles能夠根瓶層次型結(jié)構(gòu)自動(dòng)裝載變量文件、task以及handlers等。簡(jiǎn)單來(lái)講,roles就是通過(guò)分別將變量、文件、任務(wù)、模塊等置于單獨(dú)的目錄中,并可以快速地include它們,roles一直用于基于主機(jī)構(gòu)建

4.5 roles 目錄結(jié)構(gòu)及說(shuō)明

files:用來(lái)存放由copy模塊或script模塊調(diào)用的文件。 templates:用來(lái)存放jinjia2模板,template模塊會(huì)自動(dòng)在此目錄中尋找jinjia2模板文件。 tasks:此目錄應(yīng)當(dāng)包含一個(gè)main.yml文件,用于定義此角色的任務(wù)列表,此文件可以使用include包含其它的位于此目錄的task文件。 handlers:此目錄應(yīng)當(dāng)包含一個(gè)main.yml文件,用于定義此角色中觸發(fā)條件時(shí)執(zhí)行的動(dòng)作。 vars:此目錄應(yīng)當(dāng)包含一個(gè)main.yml文件,用于定義此角色用到的變量。 defaults:此目錄應(yīng)當(dāng)包含一個(gè)main.yml文件,用于為當(dāng)前角色設(shè)定默認(rèn)變量。 meta:此目錄應(yīng)當(dāng)包含一個(gè)main.yml文件,用于定義此角色的特殊設(shè)定及其依賴關(guān)系。

5.ansible UI管理工具awx安裝實(shí)踐

5.1 簡(jiǎn)介

AWX提供了一個(gè)基于web的用戶界面、REST API和構(gòu)建在Ansible之上的任務(wù)引擎。圖形化的AWX能夠更方便的編排和部署 Ansible Playbook,并提供集中的日志記錄、審計(jì)和系統(tǒng)跟蹤。

AWX是商業(yè)版Ansible Tower 的開(kāi)源版本。

5.2 安裝awx項(xiàng)目(前提是ansible及docker安裝配置完成)

下載awx包并解壓[root@client ~]# wget https://github.com/ansible/awx/archive/14.1.0.tar.gz [root@client ~]# cd awx-14.1.0/installer/ [root@client installer]# ls build.yml install.yml inventory role 查看python3的工作路徑并修改inventory文件[root@client installer]# which python3 /usr/bin/python3 [root@client installer]# sed -i.bak s/env python/python/g inventory [root@client installer]# ll 總用量 24 -rw-rw-r--. 1 root root 166 8 25 12:12 build.yml -rw-rw-r--. 1 root root 437 8 25 12:12 install.yml -rw-rw-r--. 1 root root 7340 9 21 02:03 inventory -rw-rw-r--. 1 root root 7344 8 25 12:12 inventory.bak drwxrwxr-x. 7 root root 99 8 25 12:12 roles 下載鏡像[root@client installer]# docker pull redis:latest [root@client installer]# docker pull postgres:10 [root@client installer]# docker pull ansible/awx:14.1.0 [root@client ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE postgres 10 7849072676e1 3 days ago 200MB redis latest 84c5f6e03bf0 10 days ago 104MB ansible/awx 14.1.0 8a29b4e35f5f 3 weeks ago 1.3GB [root@client installer]# ansible-playbook -i inventory install.yml 容器查看[root@client installer]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b3ccad7afb02 ansible/awx:14.1.0 "/usr/bin/tini -- /u…" 52 minutes ago Up 19 minutes 8052/tcp awx_task 64989076d24a ansible/awx:14.1.0 "/usr/bin/tini -- /b…" 52 minutes ago Up 19 minutes 0.0.0.0:80->8052/tcp awx_web c4a3e5c4b507 postgres:10 "docker-entrypoint.s…" 52 minutes ago Up 19 minutes 5432/tcp awx_postgres 0dec66f07a43 redis "docker-entrypoint.s…" 52 minutes ago Up 19 minutes 6379/tcp awx_redis 登錄awx登陸地址: http://192.168.0.200 賬號(hào):admin 密碼:passwordawx 圖形界面展示

上一篇:不看后悔(中新賽克為什么一直跌)中新賽克是國(guó)企嗎?,中新賽克AI技術(shù)融合加速 股價(jià)日內(nèi)振幅超2%驚人的相似:梅德韋杰夫與末代沙皇尼古拉二世是什么關(guān)系?,自動(dòng)化運(yùn)維,

下一篇:太瘋狂了(國(guó)家電網(wǎng)金昌供電公司)金昌電力公司值班電話,金昌市2023年電力自動(dòng)化運(yùn)維暨配電線路檢修職業(yè)技能競(jìng)賽舉行,自動(dòng)化運(yùn)維,

在線咨詢

點(diǎn)擊這里給我發(fā)消息 售前咨詢專員

點(diǎn)擊這里給我發(fā)消息 售后服務(wù)專員

在線咨詢

免費(fèi)通話

24小時(shí)免費(fèi)咨詢

請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)

免費(fèi)通話

微信掃一掃

微信聯(lián)系
返回頂部