ansible簡介

来源:https://www.cnblogs.com/qxfy/archive/2019/12/11/12022035.html
-Advertisement-
Play Games

Ansible項目 一、Ansible簡介: ansible是一種新流行的自動化運維工具,基於python2-paramiko模塊開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量運行命令功能。 ansible是 ...


Ansible項目

一、Ansible簡介:

ansible是一種新流行的自動化運維工具,基於python2-paramiko模塊開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量運行命令功能。

ansible是基於模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只提供一種框架。ansible這個框架主要包含以下功能:

(1)連接插件connection plugins:負責和被監控端事先通信;

(2)host inventory:操作主機清單;

(3)核心模塊、command模塊、自定義模塊;

(4)藉助與插件完成記錄日誌郵件等功能;

(5)Playbook:劇本執行多個任務時,非必須可以讓節點一次性運行多個任務。

 

 

二、Ansible特性:

(1)No agents: 不需要在被管理主機上安裝任何客戶端軟體。

(2)No server: 無伺服器端的概念,使用時直接運行命令即可。

(3)Modules in any languages: 基於模塊工作,可使用任意語言開發模塊。

(4)Yaml, not code: 使用yaml語言定製劇本playbook。

(5)Ssh by default: 基於SSH工作。

(6)Strong multi-tier solution: 可實現多級指揮。

 

三、Ansible優點:

(1)輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可。

(2)批量任務執可以寫成腳本,而且不用分發到遠程就可以執行。

(3)使用python編寫,維護更簡單,ruby語法過於複雜。

(4)支持sudo

 

四、安裝Ansible:

1)管理節點上安裝Ansible

(Redhat/CentOS Linux上,Ansible目前放在epel源中。Fedora預設源中包含Ansible,自己安裝即可)

# yum install epel-release

# yum install ansible -y

# ssh-keygen

# ssh-copy-id remoteuser@remotehost

2)被管理的遠程主機

不需要安裝特殊的包,只需要配置並啟動SSH服務且Python版本在2.4以上即可。Redhat一般安裝方式都是預設安裝的。  

 

五、Ansible配置文件簡介:

(1)主配置文件:/etc/ansible/ansible.cfg

(2)預設主機清單文件:/etc/ansible/hosts

 

Ansible的配置文件說明:

配置文件種類

說明

所在位置

預設配置文件

 ansible軟體的的預設配置文件,對所有使用ansible的用戶生效

/etc/ansible/ansible.cfg

用戶配置文件

使用普通用戶的執行特定的運維playbook,只要使用該用戶登錄ansible運維主機,不管在任何文件夾下該配置文件將會覆蓋預設配置文件中的內容。

~/amsible.cfg

~/.ansible.cfg

運維項目配置文件

把一類運維playbook放在一個文件夾中,僅僅在當前的運維項目中生效的配置文件。

/dir/ansible.cfg

 

● 使用ansible  --version查看當前生效的ansible.cfg的路徑。

● 當三種文件的發生衝突的時候,優先順序:運維項目配置文件 > 用戶配置文件 > 預設配置文件

/dir/ansible.cfg > ~/.ansible.cfg > ~/amsible.cfg > /etc/ansible/ansible.cfg

 

可以在ansible.cfg指定hosts文件在哪裡

 

 

六、Ansible預設主機清單文件Inventory為/etc/ansible/hosts

什麼是inventory:

● Static lines of servers

● Ranges

● Other custom things

● Dynamic lists of servers: AWS,Azure,GCP,etc.

語法結構:

● “#”開始表示註釋,空格行被忽略

●  使用[ ]設置遠程主機分組,[groupname]內是組名。

●  主機列表可以使用主機名或IP地址。

●  一個主機名或IP地址可以在多個分組中。

●  使用[start:end]表示連續的主機。

● 分組支持嵌套,一個組可以包含其它組,新組名中以”:children“尾碼。

[group1]

host1.example.com

host2.example.com

[group2]

host3.example.com

host4.example.com

[newgroup:children]

group1

group2

1)標準的主機和分組清單例子:

mail.example.com

[webservers]

foo.example.com

bar.example.com

[dbservers]

one.example.com

two.example.com

three.example.com

 

(2)非標準埠下主機清單

badwolf.example.com:5309

 

3)連續大量主機清單"[start:end]"

[webservers]

www[01:50].example.com

[databases]

db-[a:f].example.com

192.168.[4:7].[0:255]        //在192.168.4.0/22網段下的所有主機,即192.168.4.0-192.168.7.255

 

4)主機設定別名的清單

jumper ansible_port=5555 ansible_host=192.0.2.50

 

5)組中包含其它組(組嵌套)

[olympia]

washington1.example.com

Washington2.example.com

[salem]

oregon01.example.com

oregon02.example.com

[nwcapitols:children]

olympia

salem

 

6)設定連接參數

[targets]

localhost                ansible_connection=local

other1.example.com     ansible_connection=ssh        ansible_user=mpdehaan

other2.example.com     ansible_connection=ssh        ansible_user=mdehaan

 

 

主機清單文件常用連接參數

連接參數

表示含義

ansible_connection

SSH的連接方式。可以指定為smart、ssh、local、paramiko

ansible_host

Ansible連接的主機地址,如果在主機清單中起了一個不同的別名,那麼需要用這個參數指定主機IP或主機名。

ansible_port

SSH埠號,預設為22。

ansible_user

SSH連接時使用的預設用戶名。

ansible_ssh_pass

SSH連接時使用的密碼。不過不建議用本參數存儲明文的密碼。

ansible_ssh_private_key_file

指定使用ssh-keygen生成的私鑰文件所存放的位置。

ansible_ssh_common_args

通過配置此參數來指定SFTP、SCP和SSH預設的額外參數。

更多連接參數http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Linux使用Nginx Yum存儲庫上安裝Nginx,適用於Red Hat Enterprise Linux和CentOS系統。 1、添加設置Nginx Yum存儲庫 在CentOS中首次安裝Nginx時,需要添加Nginx軟體包,使用以下命名,添加安裝 sudo yum install yum- ...
  • 一,認識/etc/passwd和/etc/shadow 1. /etc/passwd :文件中保存系統中所有的用戶和用戶的主要信息. 在命令行輸入 cat /etc/passwd | head (‘ | ’ 為管道符,作用是把前面的的命令輸出在輸入給後面的命令 ) 由圖所示 /etc/passwd/ ...
  • RabbitMQ安裝 一、安裝環境介紹 本文的使用的Linux是centOS6.5 64位的mini版。只安裝了JDK8.其他的環境都沒有安裝。賬號是 root 二、erlang安裝 RabbitMQ是使用Erlang開發,所以安裝RabbitMQ前需要先安裝Erlang。 1.下載源文件 官網 下 ...
  • centos6安裝redis-2.8.19.tar.gz1、檢查安裝依賴程式yum install gcc-c++yum install -y tclyum install wget 2、獲取安裝文件wget http://download.redis.io/releases/redis-2.8.1 ...
  • MRAM是一種利用電子自旋的磁性提供非易失性而不會磨損的存儲器。MRAM將信息存儲在與硅電路集成的磁性材料中,從而在單個無限耐用的設備中提供SRAM的速度和Flash的非易失性。 ...
  • IP轉發的概念: 使 Linux 機器像路由器一樣將數據從一個網路發送到另一個網路。所以,它能作為一個路由器或者代理伺服器,實現將一個連接的互聯網或者網路連接共用給多個客戶端機器。 1. 啟用 IPv4 轉發 首先,我們需要在我們的 Linux 操作系統上啟用 IPv4 轉發。要做到這點,我們需要使 ...
  • 在 Linux 中,簡單的理解一個文件的路徑,指的就是該文件存放的位置,例如,在《Linux文件系統的層次結構》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我們告訴 Linux 系統某個文件存放的準確位置,那麼它就可以找到這個文件。指明一個文件存放的位置,有 2 種方法, ...
  • 路由表用於決定數據包從哪個網口發出,其主要判斷依據是目標IP地址Linux路由表其實有2個主要概念:按順序走路由策略,在路由策略對應的路由表中匹配規則路由策略(rule)路由表(table) 查看所有的路由策略,32766那個策略最有用,對應的main路由表也是預設展示的路由表ip rule lis ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...