日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊一聊Ansible自動化運維架構(gòu)

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

龍子湖ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

?? 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

一、ANSIBLE介紹

1、什么是ansible

ansible是一個自動化運維工具,基于Python開發(fā),集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優(yōu)點,實現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運行命令等功能。

2、ansible的歷史

Ansible 工具由供應(yīng)服務(wù)器應(yīng)用程序 Cobbler 的作者 Michael DeHaan 開發(fā),他是 Fedora 統(tǒng)一網(wǎng)絡(luò)控制器(Func)遠(yuǎn)程管理框架的共同作者。

紅帽于 2015 年 10 月收購了 Ansible。

Ansible 是 Red Hat 旗下的 Fedora Linux 發(fā)行版的一部分,也可以通過 Extra Linux for Enterprise Linux(EPEL)以及其他操作系統(tǒng)用于 Red Hat Enterprise Linux,CentOS,Scientific Linux 和 Oracle Linux。

3、Ansible有很多重要的優(yōu)勢:

  • 跨平臺支持:Ansible為物理、虛擬、云和容器環(huán)境中的Linux、Windows、UNIX和網(wǎng)絡(luò)設(shè)備提供無代理支持。
  • 人類可讀的自動化:Ansible Playbooks以YAML文本文件的形式編寫,易于閱讀,并有助于確保每個人都理解他們將做什么。
  • 應(yīng)用程序的完美描述:Ansible Playbooks可以做出每一個更改,應(yīng)用程序環(huán)境的每一個方面都可以描述和記錄。
  • 易于管理的版本控制:Ansible Playbooks和項目是純文本。 它們可以像源代碼一樣處理,并放在現(xiàn)有的版本控制系統(tǒng)中。
  • 支持動態(tài)清單:Ansible管理的機器列表可以從外部來源動態(tài)更新,以便隨時獲取所有被管理服務(wù)器的正確的當(dāng)前列表,無論基礎(chǔ)設(shè)施或位置如何。
  • 可與其他系統(tǒng)輕松集成的編排:HP SA、Puppet、Jenkins、Red Hat 衛(wèi)星和其他存在于您環(huán)境中的系統(tǒng)可以被利用和集成到您的Ansible工作流程中。

4、ansible工作原理

二、安裝ansible

1、關(guān)閉防火墻

setenforce 0
systemctl stop firewalld

2、修改主機名

hostname ansible  /client

3、修改映射文件

vim /etc/hosts

4、下載epel-release軟件包

yum -y install epel-release

5、安裝ansible

yum -y install ansible

6、創(chuàng)建SSH面交互登錄

(1)發(fā)送密鑰需要passwd和yes。

ssh-keygen -t rsa

服務(wù)端:

客戶端:

復(fù)制密鑰到其他機器:

ssh-copy-id 192.168.253.128

復(fù)制密鑰時忽略passwd和yes(一鍵復(fù)制)。

sshpass -p passwd ssh -p 用戶名@主機IP -o StrictHostKeyChecking=no

三、使用ansible

1、寫inventory(相當(dāng)于/etc/ansible/hosts)

里面就是主機的localhost或者ip:

vim inventory
web1.example.com
web2.example.com
db1.example.com
db2.example.com
192.0.2.42

2、寫ansible.cfg

vim ansible.cfg
[defaults]
inventory = ./inventory
remote_user = user
ask_pass = false
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false

指令

描述

inventory

指定目錄文件的路徑。

remote_user

在被管理主機上登錄的用戶名。如果未指定,使用當(dāng)前用戶名。

ask_pass

是否提示SSHpasswd??梢匀绻褂肧SH公鑰認(rèn)證,則為false。

become

是否自動切換被管用戶連接后的主機(通常到root)。這也可以是戲劇指定的:戲劇指定的。

become_method

如何切換用戶(通常是sudo,這是默認(rèn)的,但是su是一個選項)。

become_user

在托管主機上切換到的用戶(通常是Root,這是默認(rèn)值)。

become_ask_pass

是否提示為你的become_method輸入passwd。 默認(rèn)值為false。

[defaults]

設(shè)置Ansible操作的默認(rèn)值

[privilege_escalation]

配置Ansible對managed的權(quán)限升級方式主機

優(yōu)先級最高的,還是自己創(chuàng)建的ansible.cfg

3、ansible的adhoc

ansible all -m ping

在ansible外面直接執(zhí)行模塊。

注:

Ansible的返回結(jié)果非常友好,一般會用三種顏色來表示執(zhí)行結(jié)果:紅色,綠色和橘黃色。

①其中紅色表示執(zhí)行過程中有異常。

②橘黃色表示命令執(zhí)行后目標(biāo)有狀態(tài)變化。

③綠色表示執(zhí)行成功且沒存對目標(biāo)機器做修改。

參數(shù)的含義:

  • -v(–verbose):輸出詳細(xì)的執(zhí)行過程信息,可以得到執(zhí)行過程所有信息。
  • -i PATH(–inventory=PATH):指定inventory信息,默認(rèn)為/etc/ansible/hosts。
  • -f NUM(–forks=NUM):并發(fā)線程數(shù),默認(rèn)為5個線程。
  • –private-key=PRIVATE_KEY_FILE指定秘鑰文件,(不經(jīng)常使用)。
  • -m NAME,–moudle-name=NAME:指定執(zhí)行時使用的模塊。
  • -M DIRECTORY (–module-path=DIRECTORY):指定模塊存放路徑,默認(rèn)為/usr/share/ansible,也可以通過ANSIBLE_LIBRARY設(shè)定默認(rèn)目錄。(不經(jīng)常使用)。
  • -a ARGUMENTS ( --args=ARGUMENTS):指定模塊參數(shù)。
  • -u USERNAME (–user=USERNAME);指定遠(yuǎn)程主機 USERNAME運行命令。
  • -l subset (–limit=SUBSET):限定運行主機。
  • –list-hosts:列出符合條件的主機列表,不執(zhí)行任何命令。

4、Ansible 基礎(chǔ)模塊

模塊類別

模塊

文件模塊

? copy: Copy a local file to the managed host-

軟件包模塊

? yum: Manage packages using the YUM package manager

系統(tǒng)模塊

? firewalld: Manage arbitrary ports and services using firewalld

Net Tools模塊

? get_url: Download files over HTTP, HTTPS, or FTP

5、ansible-doc

ansible-doc用來查詢ansible模塊文檔的說明(幫助文檔),類似于man命令。

(1)列出支持的模塊。

ansible-doc -l

ansible-doc -s command

ansible-doc -s raw

ansible-doc -s ping

6、ansible-playbook

Ansible-playbook是日常應(yīng)用中使用頻率最高的命令,類似于Linux系統(tǒng)中的sh或source命令,用來執(zhí)行系列任務(wù),其工作機制是,通過讀取編寫好的 playbook文件實現(xiàn)集中處理任務(wù),ansible-playbook命令后跟yml或者yaml格式的playbook文件,playbook文件存放了要執(zhí)行的任務(wù)代碼。

playbook核心元素

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

檢查語法是否錯誤。

ansible-playbook --syntax-check webserver.yml

7、ansible-console虛擬終端

ansible-console是 ansible為用戶提供的一款交互式工具,類似于 Windows中的cmd以及Linux中的shell,用戶可以在 ansible-console虛擬出來的終端上做像shell一樣使用ansible內(nèi)置的各種命令,這為習(xí)慣于使用 shell交互方式的用戶提供了良好的體驗,在終端輸入ansible-console命令后顯示如下。

所有的操作類似于shell,而且支持Tab鍵補全,按快捷鍵Ctrl+D或Ctrl+C即可退出當(dāng)前虛擬終端。

8、 ansible-galaxy

ansible-galaxy指令用于方便的從https://galaxy.ansible.com/站點下載第三方擴展模塊。

創(chuàng)建rolrs目錄架構(gòu):

ansible galaxy init 目錄

9、 ansible-vault

ansible-vault主要應(yīng)用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以幫你加密/解密這個配置文件,屬高級用法。主要對于playbooks里比如涉及到配置passwd或其他變量時,可以通過該指令加密,這樣我們通過cat看到的會是一個passwd串類的文件,編輯的時候需要輸入事先設(shè)定的passwd才能打開。這種playbook文件在執(zhí)行時,需要加上 --ask-vault-pass參數(shù),同樣需要輸入passwd后才能正常執(zhí)行。

10、 ansible-pull

該指令使用需要談到ansible的另一種模式---pull 模式,這和我們平常經(jīng)常用的push模式剛好相反,其適用于以下場景:你有數(shù)量巨大的機器需要配置,即使使用非常高的線程還是要花費很多時間;你要在一個沒有網(wǎng)絡(luò)連接的機器上運行Anisble,比如在啟動之后安裝。

四、一些常見的命令

輸出facts變量的內(nèi)容:

ansible 主機 -m setup

創(chuàng)建加密變量文件:

ansible-vault create secret.yml

查看加密變量文件:

ansible-vault view secret1.yml

編輯加密變量文件:

ansible-vault edit secret.yml

可以使文件加密:

ansible-vault encrypt secret1.yml secret2.yml

解密變量文件:

ansible-vault decrypt secret1.yml --output=secret1-decrypted.yml

更改加密文件的passwd:

ansible-vault rekey secret.yml

執(zhí)行加密變量文件:

ansible-playbook --vault-id @prompt site.yml

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

?? 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。


本文題目:聊一聊Ansible自動化運維架構(gòu)
轉(zhuǎn)載注明:http://www.5511xx.com/article/djhhsep.html