Ansible系列(9) Copy模組

2021-07-01 20:41:15 字數 2595 閱讀 6161

copy模組在ansible裡的角色就是把ansible執行機器上的檔案拷貝到遠端節點上。

與fetch模組相反的操作。

引數名是否必須

預設值選項

說明src

no用於定位ansible執行的機器上的檔案,需要絕對路徑。如果拷貝的是資料夾,那麼資料夾會整體拷貝,如果結尾是」/」,那麼只有資料夾內的東西被考過去。一切的感覺很像rsync

content

no用來替代src,用於將指定檔案的內容,拷貝到遠端檔案內

dest

yes用於定位遠端節點上的檔案,需要絕對路徑。如果src指向的是資料夾,這個引數也必須是指向資料夾

backup

nono

yes/no

備份遠端節點上的原始檔案,在拷貝之前。如果發生什麼意外,原始檔案還能使用。

directory_mode

no這個引數只能用於拷貝資料夾時候,這個設定後,資料夾內新建的檔案會被拷貝。而老舊的不會被拷貝

follow

nono

yes/no

當拷貝的資料夾內有link存在的時候,那麼拷貝過去的也會有link

force

noyes

yes/no

預設為yes,會覆蓋遠端的內容不一樣的檔案(可能檔名一樣)。如果是no,就不會拷貝檔案,如果遠端有這個檔案

group

no設定乙個群組擁有拷貝到遠端節點的檔案許可權

mode

no等同於chmod,引數可以為「u+rwx or u=rw,g=r,o=r」

owner

no設定乙個使用者擁有拷貝到遠端節點的檔案許可權

# 把/srv/myfiles/foo.conf檔案拷貝到遠端節點/etc/foo.conf,並且它的擁有者是foo,擁有它的群組是foo,許可權是0644

-copy: src=/srv/myfiles

/foo.conf dest=/etc

/foo.conf owner=foo group=foo mode=0644

# 跟上面的案例一樣,不一樣的只是許可權的寫法

-copy: src=/srv/myfiles

/foo.conf dest=/etc

/foo.conf owner=foo group=foo mode="u=rw,g=r,o=r"

# 另外乙個許可權的寫法

-copy: src=/srv/myfiles

/foo.conf dest=/etc

/foo.conf owner=foo group=foo mode="u+rw,g-wx,o-rwx"

# 拷貝/mine/ntp.conf到遠端節點/etc/ntp.conf,並且備份遠端節點的/etc/ntp.conf。

-copy: src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes

引數名

引數說明

返回值返回值型別

樣例src

位於ansible執行機上的位置

將原檔案備份

changed and if backup=yes

string

/path/to/file.txt.2015-02-12@22:09~

uid在執行後,擁有者的id

success

int100

dest

遠端節點的目標目錄或檔案

success

string

/path/to/file.txt

checksum

拷貝檔案後的checksum值

success

string

6e642bb8dd5c2e027bf21dd923337cbb4214f827

md5sum

拷貝檔案後的md5 checksum值

when supported

string

2a5aeecc61dc98c4d780b14b330e3282

state

執行後的狀態

success

string

file

gid執行後擁有資料夾、檔案的群組id

success

int100

mode

執行後檔案的許可權

success

string

0644

owner

執行後檔案所有者的名字

執行後檔案所有群組的名字

執行後檔案大小

success

int1220

今天的這個模組有點多,看明白沒?下一次會有簡單的案例了。

Ansible系列 基礎篇 01

安裝方式主要有以下4種 yum install epel release yum install ansible pip install ansiblebrew install ansiblegit clone cd ansible sudo python setup.py install 安裝完成...

Ansible系列(6) Yum模組

之前的文章裡提到了這個yum模組,作為承諾,這次拿它當第一了。yum 全稱為 yellow dog updater,modified 是乙個在fedora和redhat以及centos中的shell前端軟體包管理器 既然是包管理器,平時我們如何使用它?拿centos為例 yum install gi...

DevOps系列Ansible自動部署 一 初識

通過上乙個專題gitlab cicd我們已經介紹了,在dixdevops流程中的自動觸發pipeline過程,下面這乙個專題系列,我們將重點介紹第二個環節,自動部署 進入這個專題系列,我們將重點闡述下圖中第二部分 首先說一下,技術選型,作為乙個程式猿,總是會對新的知識有著一種想要征服的慾望,所以我們...