當前位置:編程學習大全網 - 編程語言 - 問下統信的服務器操作系統這個工具的配置方法?

問下統信的服務器操作系統這個工具的配置方法?

準備環境

適用版本:■UOS服務器操作系統d版

適用架構:■ARM64、AMD64、MIPS64

網絡:連接互聯網情況下進行

本次測試環境如下:

測試環境

註:請根據實際情況操作該文方法進行配置。

功能描述

ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。Ansible架構相對比較簡單,僅需通過SSH連接客戶機執行任務即可

安裝與配置

壹、安裝ansible工具

1、直接 命令安裝

apt install ansible -y

命令安裝

2、驗證安裝結果

通過ansible --version驗證安裝結果

驗證安裝結果

如果命令可以正常執行,則表示ansible安裝成功

3、配置ssh免密登錄

在ansible-server(以下簡稱server)上配置對ansible-client(以下簡稱client)的免密登錄,本次實現為實現批量操作,在server中也配置針對自己主機的免密登錄。

生成密鑰 ssh-keygen

生成密鑰

拷貝密鑰至client

ssh-copy-id root@192.168.247.154

拷貝密鑰至client

拷貝密鑰至server主機

ssh-copy-id root@192.168.247.131

貝密鑰至server主機

二、Ansible使用

1、主機清單配置

Ansible 管理主機信息的配置文件,相當於系統 Hosts 文件的功能,默認存放在 /etc/ansible/hosts。在 hosts 文件中,通過分組來組織設備。實驗配置如下:

2、ansible命令

Ansible 的維護命令大多數是以 ansible 開頭,在終端輸入 ansible 後連續按兩次Tab鍵,會補全所有跟 ansible 相關的命令。

(1)ansible命令說明:

ansible 是生產環境中使用非常頻繁的命令之壹,主要用於臨時性的維護,如查看web服務器組磁盤使用情況、復制壹個文件到其他機器等。類似這些沒有規律的、臨時需要做的任務,我們成為非固化需求,臨時壹次性操作,語法如下:

ansible [options]

-v(—verbose):輸出詳細的執行過程信息,可以得到執行過程所有信息;

-i PATH(—inventory=PATH):指定inventory信息,默認為/etc/ansible/hosts;

-f NUM(—forks=NUM):並發線程數,默認為5個線程;

—private-key=PRIVATE_KEY_FILE:指定密鑰文件;

-m NAME,—module-name=NAME:指定執行使用的模塊;

-M DIRECTORY(—module-path=DIRECTORY) :指定模塊存放路徑,默認為/usr/share/ansible;

-a ARGUMENTS(—args=ARGUMENTS):指定模塊參數;

-u USERNAME(—user=USERNAME):指定遠程主機以USERNAME運行命令;

-l subset(—limit=SUBSET):限制運行主機;

①檢查所有主機是否存活,執行命令如下:

ansible all -m ping

②列出web組主機列表,執行命令如下:

③批量顯示web組中的磁盤使用空間,執行命令如下:

ansible web -m command -a "df -hT"

(2)ansible-doc

ansible-doc用來查詢ansible模塊文檔的說明,類似於man命令,針對每個模塊都有詳細的用法說明及應用案例介紹,語法如下:

ansible-doc ping

(3)ansible-playbook

Ansible-playbook是日常應用中使用頻率最高的命令,類似於Linux中的sh或source命令,用來執行系列任務。其工作機制:通過讀取預先編寫好的playbook文件實現集中處理任務。ansible-playbook命令後跟yml格式的playbook文件,playbook文件存放了要執行的任務代碼,命令使用方式如下:

Ansible-playbook playbook.yml

3、ansible模塊

(1)command模塊

command模塊在遠程主機執行命令,不支持管道、重定向等shell的特性。常用的參數如下:

chdir:在遠程主機上運行命令前要提前進入的目錄;

creates:在命令運行時創建壹個文件,如果文件已存在,則不會執行創建任務;

removes:在命令運行時移除壹個文件,如果文件不存在,則不會執行移除任務;

executeable:指明運行命令的shell程序;

示範:

ansible all -m command -a "ls -lst /data"

(2)shell模塊

shell模塊在遠程主機執行命令,相當於調用遠程主機的Shell進程,然後在該Shell下打開壹個子Shell運行命令。和command模塊的區別是它支持Shell特性:如管道、重定向等。

示範:

ansible all -m shell -a "ping www.baidu.com -c 2 "

ansible all -m shell -a “echo hello world >/data/1.txt”

(3)copy模塊

copy模塊用於復制指定主機文件到遠程主機的指定位置。常見的參數如下:

dest:指出復制文件的目標目錄位置,使用絕對路徑。如果源是目錄,則目標也要是目錄,如果目標文件已存在,會覆蓋原有內容;

src:指出源文件的路徑,可以使用相對路徑和絕對路徑,支持直接指定目錄。如果源是目錄,則目標也要是目錄;

mode:指出復制時,目標文件的權限,可選;

owner:指出復制時,目標文件的屬主,可選;

group:指出復制時目標文件的屬組,可選;

content:指出復制到目標主機上的內容,不能和src壹起使用,相當於復制content指明的數據到目標文件中;

示範:

ansible web -m copy -a "src=/etc/hosts dest=/data/server.hosts mode=777 "

說明:將本機的/etc/hosts文件復制到web分組的控制端,並修改權限為777

(4)apt模塊

apt模塊基於apt機制,對遠程主機管理程序包。常用的參數如下:

name:程序包名稱,可以帶上版本號。若不指明版本,則默認為最新版本;

state=present|atest|absent:指明對程序包執行的操作:present表明安裝程序包,latest表示安裝最新版本的程序包,absent表示卸載程序包;

disablerepo:在用apt安裝時,臨時禁用某個倉庫的ID;

enablerepo:在用apt安裝時,臨時啟用某個倉庫的ID;

conf_file:apt運行時的配置文件,而不是使用默認的配置文件;

disable_gpg_check=yes|no:是否啟用完整性校驗功能;

示範:

ansible all -m apt -a "name=apache2"

ansible web -m shell -a "systemctl status apache2"

(5)service模塊

service模塊為用來管理遠程主機上的服務的模塊。常見的參數如下:

name:被管理的服務名稱;

state=started|stopped|restarted:動作包含啟動,關閉或重啟;

enable=yes|no:表示是否設置該服務開機自啟動;

runlevel:如果設定了enabled開機自啟動,則要定義在哪些運行目標下自動啟動;

示範:

ansible web -m service -a "name=apache2 enabled=yes state=restarted"

(6)user模塊

user模塊主要用於管理遠程主機上的用戶賬號。常見的參數如下:

name:必選參數,賬號名稱;

state=present|absent:創建賬號或者刪除賬號,present表示創建,absent表示刪除;

system=yes|no:是否為系統賬戶;

uid:用戶UID;

group:用戶的基本組

groups:用戶的附加組;

shell:默認使用的shell;

home:用戶的家目錄;

mve_home=yes|no:

如果設置的家目錄已經存在,是否將已存在的家目錄進行移動;

pssword:用戶的密碼,建議使用加密後的字符串;

comment:用戶的註釋信息;

remore=yes|no:當state=absent時,是否要刪除用戶的家目錄;

示範:

ansible web -m user -a "name=test002 system=yes shell=/bin/bash home=/home/test002 password=123@123"

不建議用,個人嘗試密碼登錄失敗

三、playbook配置文件

1、執行配置文件

playbook配置文件使用YAML語法,具有簡潔明了、結構清晰等特點。playbook配置文件類似於shell腳本,是壹個YAML格式的文件,用於保存針對特定需求的任務列表。上面介紹的ansible命令雖然可以完成各種任務,但是當配置壹些復雜任務時,逐條輸入就顯得效率非常低下。更有效的方案是在playbook配置文件中放置所有的任務代碼,利用ansible-playbook命令執行該文件,可以實現自動化運維。YAML文件的擴展名通常為.yaml或.yml。YAML語法與其他高級語言類似,其結構通過縮進來展示,通過“-”來代表項;“:”用來分隔鍵和值;整個文件以“---”開頭並以“…”結尾。

語法如下:

ansible-playbook [option] /PATH/TO/PLAYBOOK.yaml

--syntax-check:檢測yaml文件的語法;

-C(—check):預測試,不會改變目標主機的任何設置;

--list-hosts:列出yaml文件影響的主機列表;

--list-tasks:列出yaml文件的任務列表;

--list-tags:列出yaml文件中的標簽;

-t TAGS(—tags=TAGS):表示只執行指定標簽的任務;

--skip-tags=SKIP_TAGS:表示除了指定標簽的任務,執行其他任務;

--start-at-task=START_AT:從指定的任務開始往下運行;

示範:

  • 上一篇:怎麽做wordpress主題如何制作wordpress主題
  • 下一篇:能幫我找個好Linux 下載地址嗎?
  • copyright 2024編程學習大全網