Ansible學習01-常用模塊
阿新 • • 發佈:2018-12-12
ksum load 計劃任務 修改 遠程服務器 你在 直接 eating 壓縮 1.command命令模塊
默認模塊
root@centos-mysql01:/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安裝軟件模塊
root@centos-mysql01:/data/sh#ansible docker -m yum -a "name=httpd state=installed" name #指定要安裝的軟件包名稱 state #指定使用yum的方法 installed,present #安裝軟件包 removed,absent #移除軟件包 latest #安裝最新軟件包
copy文件拷貝模塊
推送文件模塊
root@centos-mysql01:~# ansible docker -m copy -a "src=/etc/passwd dest=/tmp/test.txt"
在推送覆蓋遠程端文件前,對被控制端已有文件進行備份,按照時間信息備份
root@centos-mysql01:~# ansible dcoker -m copy -a "src=/etc/passwd dest=/tmp/test.txt backup=yes"
直接向被控制端文件內寫入數據信息,並且會覆蓋被控制端文件內原有數據信息
root@centos-mysql01:~# ansible docker -m copy -a "content=‘hz7726‘ dest=/tmp/hanye"
模塊內嵌命令
src #推送數據的源文件信息
dest #推送數據的目標路徑
backup #對推送傳輸過去的文件,進行備份
content #直接批量在被管理端文件中添加內容
group #將本地文件推送到被控制端,指定文件屬組信息
owner #將本地文件推送到被控制端,指定文件屬主信息
mode #將本地文件推送到被控制端,指定文件權限信息
file文件配置模塊
root@centos-mysql01:~# ansible docker -m file -a "path=/data/sh state=directory" root@centos-mysql01:~# ansible docker -m file -a "path=/data/sh state=touch mode=0644 owner=root group=root" root@centos-mysql01:~# 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服務模塊
root@centos-mysql01:~# ansible docker -m service -a "name=httpd state=started enabled=yes"
name # 定義要啟動服務的名稱
state # 指定服務狀態
started #啟動服務
stopped #停止服務
restarted #重啟服務
reloaded #重載服務
enabled #開機自啟
group組模塊
root@centos-mysql01:~# ansible docker -m group -a "name=erp gid=1008"
name #指定創建的組名
gid #指定組的gid
state #用戶組狀態
absent #移除被控制端主機的組
present #創建被控制端主機的組
user模塊
#創建用戶指定uid和gid,不創建家目錄也不允許登陸
root@centos-mysql01:~# ansible docker -m user -a "name=hanye uid=1008 group=1008 shell=/sbin/nologin create_home=no"
#創建用戶指定uid和gid,指定家目錄和密碼
root@centos-mysql01:~# 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模塊
root@centos-mysql01:~# 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模塊
root@centos-mysql01:~# 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模塊
#復制目錄
[root@master ~]# ansible dcoker -m synchronize -a ‘src=/tmp/hanye dest=/data/soft/ compress=yes‘
#遠端拉去
[root@master 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 user@ for the remote paths. If you have a custom ssh config to define the remote user for
src= # 源,同步的數據源
times #
--exclude=.Git 忽略同步.git結尾的文件
Ansible學習01-常用模塊