Ansible學習01-常用模組
阿新 • • 發佈:2018-12-12
1.command命令模組
預設模組
[email protected]:/data/sh# ansible docker -a "hostname"
192.168.1.124 | success | rc=0 >>
centos-mysql01
172.17.0.2 | success | rc=0 >>
17466f2471ee
script模組
yum安裝軟體模組
[email protected]:/data/sh#ansible docker -m yum -a "name=httpd state=installed" name #指定要安裝的軟體包名稱 state #指定使用yum的方法 installed,present #安裝軟體包 removed,absent #移除軟體包 latest #安裝最新軟體包
copy檔案拷貝模組
推送檔案模組
[email protected]:~# ansible docker -m copy -a "src=/etc/passwd dest=/tmp/test.txt"
在推送覆蓋遠端端檔案前,對被控制端已有檔案進行備份,按照時間資訊備份
[email protected]:~# ansible dcoker -m copy -a "src=/etc/passwd dest=/tmp/test.txt backup=yes"
直接向被控制端檔案內寫入資料資訊,並且會覆蓋被控制端檔案內原有資料資訊
[email protected]:~# ansible docker -m copy -a "content='hz7726' dest=/tmp/hanye"
模組內嵌命令
src #推送資料的原始檔資訊
dest #推送資料的目標路徑
backup #對推送傳輸過去的檔案,進行備份
content #直接批量在被管理端檔案中新增內容
group #將本地檔案推送到被控制端,指定檔案屬組資訊
owner #將本地檔案推送到被控制端,指定檔案屬主資訊
mode #將本地檔案推送到被控制端,指定檔案許可權資訊
file檔案配置模組
[email protected]:~# ansible docker -m file -a "path=/data/sh state=directory"
[email protected]:~# ansible docker -m file -a "path=/data/sh state=touch mode=0644 owner=root group=root"
[email protected]:~# ansible docker -m file -a "src=/data/sh path=/data/hanye state=link"
模組內嵌命令
path #指定遠端主機目錄或檔案資訊
recurse #遞迴授權
state
directory #在建立目錄
touch #在被控制端建立檔案
link #link或hard表示建立連結檔案
absent #表示刪除檔案或目錄
mode #設定檔案或目錄許可權
owner #設定檔案或目錄屬主資訊
group #設定檔案或目錄屬組資訊
service服務模組
[email protected]:~# ansible docker -m service -a "name=httpd state=started enabled=yes"
name # 定義要啟動服務的名稱
state # 指定服務狀態
started #啟動服務
stopped #停止服務
restarted #重啟服務
reloaded #過載服務
enabled #開機自啟
group組模組
[email protected]:~# ansible docker -m group -a "name=erp gid=1008"
name #指定建立的組名
gid #指定組的gid
state #使用者組狀態
absent #移除被控制端主機的組
present #建立被控制端主機的組
user模組
#建立使用者指定uid和gid,不建立家目錄也不允許登陸
[email protected]:~# ansible docker -m user -a "name=hanye uid=1008 group=1008 shell=/sbin/nologin create_home=no"
#建立使用者指定uid和gid,指定家目錄和密碼
[email protected]:~# ansible docker -m user -a "name=erp group=erp uid=1008 password="$6$O9KDopiuPgvkrb4z$ee7/lfljSe79zQLIvDROsFM23hAJRRvVc.JoBWPGW3WbeHBQVG.IFcg1r8RppAIZ8naxckFGvOX2CIiwY6hEw0" home=/home/erp shell=/bin/bash"
#password: 明文密碼為:666666
uid #指定使用者的uid
group #指定使用者組名稱
groups #指定附加組名稱
password #給使用者新增密碼 #此處的密碼是經過md5加密的密文
shell #指定使用者登入shell
create_home #是否建立家目錄
home #指定家目錄
cron模組
[email protected]:~# ansible docker -m cron -a " name='crontab test' minute=5 hour=1 job='sh /data/sh/init_os.sh' "
等同於:#crontab test
5 1 * * * sh /data/sh/init_os.sh
minute引數:此引數用於設定計劃任務中分鐘設定位的值
hour引數:此引數用於設定計劃任務中小時設定位的值
day引數:此引數用於設定計劃任務中日設定位的值
month引數:此引數用於設定計劃任務中月設定位的值
weekday引數:此引數用於設定計劃任務中周幾設定位的值
user引數:此引數用於設定當前計劃任務屬於哪個使用者
job引數:此引數用於指定計劃的任務中需要實際執行的命令或者指令碼
name引數:此引數用於設定計劃任務的名稱
state引數:當計劃任務有名稱時,我們可以根據名稱修改或刪除對應的任務,當刪除計劃任務時,需要將 state 的值設定為 absent。
mount模組
[email protected]:~# ansible docker -m mount -a "src=192.168.1.124:/data path=/data fstype=nfs opts=defaults state=present"
src: 源地址目錄
path: 掛在地址
opts:預設屬性
state
present # 開機掛載,僅將掛載配置寫入/etc/fstab
mounted # 掛載裝置,並將配置寫入/etc/fstab
unmounted # 解除安裝裝置,不會清除/etc/fstab寫入的配置
absent # 解除安裝裝置,會清理/etc/fstab寫入的配置
synchronize模組
#複製目錄
[[email protected] ~]# ansible dcoker -m synchronize -a 'src=/tmp/hanye dest=/data/soft/ compress=yes'
#遠端拉去
[[email protected] tmp]# ansible docker -m synchronize -a 'mode=pull src=/root/hanye dest=/data/soft/ compress=yes'
archive # 是否採用歸檔模式同步,即以原始檔相同屬性同步到目標地址
checksum # 是否效驗
compress # 開啟壓縮,預設為開啟
copy_links # 同步的時候是否複製連線
delete # 刪除源中沒有而目標存在的檔案(即以推送方為主)
dest= # 目標地址
dest_port # 目標接受的埠,ansible配置檔案中的 ansible_ssh_port 變數優先順序高於該 dest_port 變數
dirs # 以非遞迴的方式傳輸目錄
existing_only # Skip creating new files on receiver.
group # Preserve group
links # Copy symlinks as symlinks.
mode # 模式,rsync 同步的方式 PUSH\PULL,預設都是推送push。如果你在使用拉取pull功能的時候,可以參考如下來實現mode=pull 更改推送模式為拉取模式
recursive # 是否遞迴 yes/no
rsync_opts # 使用rsync 的引數
rsync_path # 服務的路徑,指定 rsync 命令來在遠端伺服器上執行。這個參考rsync命令的--rsync-path引數,--rsync-path=PATH # 指定遠端伺服器上的rsync命令所在路徑資訊
rsync_timeout # 指定 rsync 操作的 IP 超時時間,和rsync命令的 --timeout 引數效果一樣.
set_remote_user # put [email protected] for the remote paths. If you have a custom ssh config to define the remote user for
src= # 源,同步的資料來源
times #
--exclude=.Git 忽略同步.git結尾的檔案