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
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...