1. 程式人生 > >Ansible常用模塊使用

Ansible常用模塊使用

git 服務 back 所有者 存在 present 直接 UC 取值

Ansible官方提供了非常多的模塊,還有若幹第三方模塊,我們也可以自己編寫模塊。

Ansible對遠程服務器的操作實際是通過模塊完成的,先將模塊拷貝到遠程服務器,完成操作後,然後在遠程服務器上刪除該模塊。

查看模塊幫助信息:

查看模塊列表:

ansible-doc -l

查看具體模塊幫助信息,以file為例

ansible-doc file

ping模塊

測試現有的SSH參數能否連遠程服務器。

ansible webservers -m ping

遠程命令模塊

commond 不能使用管道,參數chdir可以切換到指定目錄,再執行命令。

raw 可以使用管道,相當於使用SSH直接執行Linux命令。

shell shell模塊可以執行遠程服務器上的腳本,腳本文件要使用絕對路徑

script 可以在遠程服務器上執行主控節點上的腳本文件。

ansible webservers -m script -a ‘test.sh‘

file模塊

file模塊用於對遠程服務器上的文件(包塊鏈接和目錄)進行操作,包括修改權限,修改屬主,創建刪除文件。

重要選項:

  • path: 指定文件/目錄的路徑
  • recurse: 遞歸設置目錄屬性
  • group: 定義組
  • mode: 定義權限
  • src: 要被鏈接的源文件路徑
  • dest: 被鏈接到的路徑
  • owner 定義文件所屬主
  • state: 取值為directory是,目錄不存在時,創建目錄,file時,即使文件不存在,文件也不會被創建,link和hard時,創建軟硬鏈接,tocuh時,同Linux,absent,刪除文件或者目錄或者鏈接。

#創建一個目錄

ansible webservers -m file -a ‘path=/tmp/dd state=directory mode=0755‘

#修改文件權限

ansible webservers -m file -a ‘path=/tmp/dd state=touch mode=0411‘

#創建一個軟鏈接

ansible webservers -m file -a ‘src=/tmp/dd dest=/tmp/ddl state=link‘

#修改所有者

ansible webservers -m file -a ‘path=/tmp/dd owner=scott group=scott‘ -become

#刪除文件

ansible webservers -m file -a ‘path=/tmp/ddl state=absent‘

copy模塊

類似於scp,將本地文件拷貝到遠程服務器,但是它更加強大,它還可以修改文件的權限和所屬。

  • src: 文件地址,可以是相對路徑也可以是絕對路徑,以“/”結尾,復制目錄裏面的內容,如果沒使用“/”結尾則復制整個目錄。
  • dest : 文件復制目的地,要使用絕對路徑
  • force: 默認值是yes,表示目標主機包含該文件,內容不同時會強制覆蓋,如果為no,只有文件不存在時才會復制。
  • backup: 默認是no,如果為yes,覆蓋前會將文件備份
  • directory_mode: 遞歸設置目錄權限
  • othes: 所有file的模塊選項都可以在這使用。

#復制文件並修改所屬主,如果文件已經存在,則進行備份。

ansible webservers -m copy -a ‘src=/tmp/data.txt dest=/tmp/data.txt owner=root backup=yes‘ -become

user/group

對用戶和組的操作。

# 創建一個用戶,並生成密鑰對。

ansible webservers -m user -a ‘name=dev1 comment="dev" group=root uid=1099 generate_ssh_key=yes ssh_key_bits=2048‘ -become

# 刪除用戶

ansible webservers -m user -a ‘name=dev1 state=absent‘ -become

yum/apt

安裝和刪除軟件

#安裝軟件

ansible webservers -m yum -a ‘name=git state=present‘ -become

#刪除軟件

ansible webservers -m yum -a ‘name=git state=absent‘ -become

Ansible常用模塊使用