天天看點

ansible

ansile常用子產品:

一、setup

收集所有資訊

ansible all -m setup -a

檢視所有主機名

ansible all -m setup -a "filter=ansible_nodename

檢視網卡資訊

ansible test239 -m setup -a "filter=ansible_ens33

二、copy

三、synchronize

compress:開啟壓縮,預設為開啟

archive:是否采用歸檔模式同步,保證源檔案和目标檔案屬性一緻

checksum:是否效驗

dirs:以非遞歸的方式傳送目錄

links:同步連結檔案

recursive:是否遞歸yes/no

rsync_opts:使用rsync的參數

copy_links:同步的時候是否複制連結

delete:删除源中沒有但目标存在的檔案,使兩邊内容一樣,以推送方為主

src:源目錄及檔案

dest:目标檔案及目錄

dest_port:目标接收的端口

rsync_path:服務的路徑,指定rsync在遠端伺服器上執行

rsync_remote_user:設定遠端使用者名

–exclude=.log:忽略同步以.log結尾的檔案,這個可以自定義忽略什麼格式的檔案,或者.txt等等都可以,但是由于這個是rsync指令的參數,是以必須和rsync_opts一起使用,比如rsync_opts=--exclude=.txt這種模式

mode:同步的模式,rsync同步的方式push、pull,預設是推送push,從本機推送給遠端主機,pull表示從遠端主機上拿檔案

四、file

五、ping

六、group

gid 指建立的組id資訊

name 指建立組名稱資訊

state absent 删除指定的使用者組

= present 建立指定的使用者組

七、user

append : 如果是yes,就是給這個使用者添加一個組

comment:可選擇地設定使用者帳戶的描述(也稱為“gecos”)。

createhome :除非設定為“no”,否則當建立帳戶或主目錄不存在時,将為使用者建立主目錄。

force : 當與<code>state = absent'一起使用時,行為與</code>userdel --force'一樣。

generate_ssh_key : 為yes時,生成秘鑰對。生成密鑰時,隻會生成公鑰檔案和私鑰檔案,和直接使用ssh-keygen指令效果相同,不會生成authorized_keys檔案。

group:設定使用者主組,後面跟使用者組名稱

groups:設定多個組,當設定為'groups='的時候,使用者将從主組以外的所有組移除

home:可以選擇設定使用者的主目錄。

move_home :如果與“home =”一起使用時設定為“yes”,則嘗試将使用者的主目錄移動到指定的目錄(如果尚未存在)。

name= :建立,删除或修改使用者的名稱。

non_unique :可選地,當與-u選項一起使用時,該選項允許将使用者id更改為非唯一值。

password:(可選)将使用者密碼設定為此加密值。

remove:當與<code>state = absent'一起使用時,行為與</code>userdel --remove'一樣。

shell:可選擇地設定使用者的shell。

ssh_key_bits:可選擇指定要建立的ssh密鑰中的位數。

ssh_key_comment:(可選)定義ssh密鑰的注釋。

ssh_key_file :(可選)指定ssh密鑰檔案名。

ssh_key_passphrase:設定ssh密鑰的密碼。 如果沒有提供密碼,ssh密鑰将預設沒有密碼。

ssh_key_type:(可選)指定要生成的ssh密鑰的類型。 可用的ssh密鑰類型将取決于目标主機上的實作。

state : 帳戶是否應該存在 當“absent”時,删除使用者帳戶。

system : 建立帳戶時,将其設定為“yes”将使使用者成為系統帳戶。 現有使用者無法更改此設定。

uid : 可選擇地設定使用者的“uid”。

八、shell

chdir 在執行指令前,進入到指定目錄中

creates 判斷指定檔案是否存在,如果存在,不執行後面的操作

removes 判斷指定檔案是否存在,如果存在,執行後面的操作

free_form 必須要輸入一個合理的指令

九、script

creates:一個檔案名,當這個檔案存在,則該指令不執行

free_form= :本地腳本路徑

removes : removes:一個檔案名,當這個檔案不存在,則該指令不執行

十、get_url

dest= : 下載下傳到哪裡(絕對路徑),如果目标是一個目錄,就用伺服器上面檔案的名稱,如果目标設定了名稱就用目标設定的名稱。

force : 如果yes,dest不是目錄,将每次下載下傳檔案,如果内容改變,替換檔案。如果否,則隻有在目标不存在時才會下載下傳該檔案。

others : [file]子產品接受的所有參數也可以在這裡工作

sha256sum : 如果将sha-256校驗和傳遞給此參數,目标檔案的摘要将在下載下傳後計算,以確定其完整性

url= : http,https或ftp url(http | https | ftp)

url_password : 用于http基本認證的密碼。 如果未指定<code>url_username'參數,則不會使用</code>url_password'參數。

url_username : 用于http基本認證的使用者名。 對于允許空密碼的站點,此參數可以不使用`url_password'使用。

十一、yum

安裝

#ansible all -m yum -a "state=present name=lrzsz"

批量安裝

#ansible all -m yum -a "state=latest name=lrzsz,gcc,gcc-c++"

十二、cron

backup #如果yes,那麼在修改之後會進行備份,備份的路徑在backup_file

cron_file #如果指定,請在cron.d中使用此檔案,而不是單個使用者的crontab。

day #工作應該運作的月份的第幾天(1-31,,/2等)

hour #工作應該運作的小時(0-23,, / 2等)

job #執行指令。 如果state =present則為必需。

minute #工作應該運作一分鐘(0-59,,/2等)

month #工作應該運作的一個月(1-12,,/2等)

name #crontab條目的說明。

state #present(不存在就添加,存在如果是注釋狀态就取消狀态啟動此定時任務),absent為删除定時任務

user #crontab應該修改的具體使用者。

state:狀态,

absent意味删除

十三、service

設定開機啟動

#ansible all -m service -a "name=httpd enabled=yes

停止服務

ansible all -m service -a "name=httpd state=stopped

啟動服務

ansible all -m service -a "name=sshd state=started"

重新開機服務

#ansible all -m service -a "name=httpd state=restarted"

繼續閱讀