Ansible常用模組及API

2021-09-25 11:11:54 字數 3240 閱讀 3317

安裝epel作為安裝ansible的yum源(centos6.4):

安裝ansible:

yum

install ansible -y

配置檔案:

路徑:/etc/ansible/hosts

配置說明:webservers為組名,下面的ip或網域名稱則是屬於該組的主機。

[webservers]

192.168.1.111

192.168.1.112

192.168.1.113

測試:

ansible webservers -m ping -k   #

對webservers組進行ping操作

由於主控端與被控主機未配置ssh證書信任,需要在執行ansible命令時新增-k引數,要求提供root(預設)賬號密碼。

配置ssh證書信任:

主控端:

生成金鑰對:

ssh-keygen -t rsa    #

一路回車,在/root/.ssh/目錄下會生成id_rsa(私鑰)、id_rsa.pub(公鑰)金鑰對

將公鑰傳送的被控主機:

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

命令列呼叫模組格式:

ansible 操作目標 -m 模組名(預設模組為command) -a 模組引數#例:

ansible webservers -m ping

幫助命令:

ansible-doc 模組名#例:

ansible-doc ping

command:執行遠端shell命令

script:在被控端執行主控端上存放的指令碼,相當於scp+shell

shell:執行存放在被控端上的指令碼

例:

ansible webservers -m command -a '

df -h'#

在被控端執行df -h命令

ansible webservers -m script -a '

/root/test.sh'#

在被控端執行test.sh指令碼(test.sh指令碼在主控端)

ansible webservers -m shell -a '

/root/test.sh'#

在被控端執行test.sh指令碼(test.sh指令碼在被控端)

copy:從主控端向被控端拷貝檔案,類似於scp功能

例:

ansible webservers -m copy -a '

src=/root/test.py dest=/tmp owner=root group=root mode=0755'#

將主控端的test.py檔案拷貝到被控端的/tmp目錄下,並且指定檔案的屬主和許可權

stat:獲取遠端檔案狀態資訊,包括atime、ctime、mtime、md5、uid、gid等

例:

ansible webservers -m stat -a '

path=/etc/sysctl.conf'#

獲取被控端/etc/sysctl.conf檔案狀態資訊

ansible 192.168.1.111 -m get_url -a '

url= dest=/tmp/index.html mode=0440 force=yes

'#

yum/apt:linux平台軟體包管理操作

例:

ansible 192.168.1.111 -m yum -a '

name=curl state=latest'#

被控端使用yum安裝最新的curl

ansible 192.168.1.111 -m apt -a '

pkg=curl state=latest'#

被控端使用apt安裝最新的curl

cron:被控端cron配置

例:

ansible 192.168.1.111 -m cron -a "

name='check dirs' hour='5,2' job='ls -alh > /dev/null'"#

被控端cron結果:

#ansible: check dirs

* 5,2 * * * ls -alh > /dev/null

mount:被控端分割槽掛載

例:

ansible 192.168.1.111 -m mount -a '

name=/mnt/data src=/dev/sd0 fstype=ext3 opts=ro state=present'#

將/dev/sd0掛載到/mnt/data,許可權為ro

service:被控端系統服務管理

例:

ansible webservers -m service -a '

關閉httpd服務

重啟httpd服務

啟動httpd服務

sysctl:被控端sysctl配置

例:

ansible 192.168.1.111 -m sysctl -a '

name="net.ipv4.ip_forward" value=1 sysctl_set=yes state=present reload=yes'#

設定路由**並生效

user:被控端系統使用者管理

例:

ansible 192.168.1.111 -m user -a "

name=johnd comment=hohn doe"#

新增使用者john

ansible 192.168.1.111 -m user -a "

name=johnd state=absent remove=yes"#

刪除使用者john

ansible常用模組及playbook

ansible常用模組 ansible模組也就是ansible命令 和linux命令是一樣的 1,ping 檢測伺服器網路是否通ansible webserver m ping 2,shell ansible的shell是直接使用linux命令ansible webserver m shell a ...

Python之 Ansible常用模組及API

1 功能 模組包括command script shell,都可以實現遠端shell命令執行。command 作為ansible的預設模組,可以執行遠端許可權範圍所有的shell命令 script 在遠端主機執行主控端儲存的shell指令碼檔案,相當於scp shell組合 shell 執行遠端主機...

Ansible常用模組

1.ping模組2.ansible command模組是ansible預設模組,主要用於執行linux基礎命令,可以執行遠端伺服器命令執行 任務執行等操作。但command模組不支援變數 重定向 管道符等,這些操作需要用shell模組執行 command模組使用詳解 chdir 執行命令前,切換到目...