Ansible實踐(二):模塊

環境聲明

  • Vmware虛擬主機 Ansible服務器 Centos7.7
  • Azure虛擬機 Ansible客戶機 Centos7.7
  • 阿里雲 ECS Ansible客戶機 Centos7.7
  • Aws EC2 Ansible客戶機 Centos7.7

Ansible模塊

藉助ssh協議,Ansible實現了ansible服務器與客戶機之間的通信,基於各個模塊完成所需的各種功能。本文將介紹常用的模塊及用法。
在開始實踐各項功能之前,請確保您已經在主機配置清單中配置好了主機的連接信息,以方便進行下面的實踐。
Ansible常用模塊包括shell模塊、複製模塊、用戶模塊、軟件包管理、服務模塊、文件模塊、收集模塊等。
如果需要獲取模塊的詳細用法,可以使用ansible-doc [模塊名]獲取詳細信息

  • shell模塊
    shell模塊的標識符爲shell,語句結構爲
	ansible [操作對象] -m shell -a '[操作語句]'

操作語句與普通shell語句語法類似

舉例`:安裝apache

	ansible host2 -m shell -a 'yum -y install httpd' -o 

獲取負載均衡信息

	ansible host2 -m shell -a 'uptime' -o 
  • 複製模塊
    複製模塊的標識符爲copy,語法結構爲
	ansible [操作對象] -m copy  -a '操作語句'

操作語句結構參數化,類似變量的聲明與賦值,可選參數
src=源地址變更
owner=屬主
group=屬組
mode=權限
更多參數可以參考ansible-doc copy

舉例:複製文件/etc/file1到/tmp/file2`

	ansible host1 -m copy -a 'src=/etc/file1=/tmp/file2 mode=777 owner=root'`
  • 用戶模塊
    用戶模塊的標識符爲user,語法結構爲
	ansible [操作對象] -m user -a '操作語句

操作語句參數化,類似變量聲明與賦值,常見可選參數
name=用戶名
state=操作類型
password=加密後的密碼
更多參數可以參考ansible-doc user

舉例:創建用戶

	ansible host1 -m user -a 'name=test state=present password=[加密後的密碼]'

計算加密密碼`

	echo '明文密碼''openssl passwd -1 -stdin`
  • 軟件包管理模塊
    以Centos的yum安裝爲例,標識符爲yum,語法結構爲
	ansible [操作對象] -m yum -a '操作語句' 

操作語句參數化,類似變量聲明與賦值,常見可選參數
name=軟件包名
state=版本
更多參數可以參考ansible-doc yum

舉例:安裝httpd

	ansible host2 -m yum -a 'name="httpd" state=latest'`
  • 服務模塊
    服務模塊標識符爲service,語法結構爲
	ansible [操作對象] -m service -a '操作語句'

操作語句參數化,類似變量聲明與賦值,常見可選參數
name=服務名
state=操作符
更多可選參數可以參考ansible-doc service

舉例:啓動httpd並設置開機自啓動

	ansible host2 -m service -a 'name=httpd state=started enabled=no'`
  • 文件模塊
    文件模塊標識符爲file,語法結構爲
	ansible [操作對象] -m file -a '

操作語句操作語句參數化,類似變量聲明與賦值,常見可選參數
path=文件名
state=操作符
更多可選參數可以參考ansible-doc file

舉例:創建權限爲777的文件/tmp/test.txt

	ansible host1 -m file -a 'path=/tmp/test.txt mode=777 state=touch'
  • 收集模塊
    文件操作標識符爲setup,語法結構爲
	ansible [操作對象] -m setup '[操作語句]'

操作語句爲空,獲取所有信息
使用filter=變量名可獲取指定信息
更多可選參數可以參考ansible-doc setup

舉例:獲取Ipv4地址

	ansible host1 -m setup -a 'filter=ansible_all_ipv4_addresses'

總結

  • Ansible的操作基於模塊工作,每個模塊的工作方式可以使用"ansible-doc [模塊]"來查詢
  • shell模塊類似於萬能模塊,能夠實現其他模塊的各種功能。但是其他模塊操作語句參數化的處理,能夠使得操作更加明晰。同時爲接下來使用YAML語言編寫劇本提供了幫助。

個人博客同步更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章