1. 程式人生 > >Ansible學習01-常用模組

Ansible學習01-常用模組

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結尾的檔案