模塊詳解html
官方模塊mysql
#查看ansible模塊的使用幫助 [root@m01 ~]# ansible-doc file [root@m01 ~]# ansible-doc #查看選項 [root@m01 ~]# ansible-doc -l #查看全部模塊 1.ping模塊 測試鏈接可通性,沒有參數。通的話返回pong ansible all -m ping
2.setup模塊 - name: Collect only facts returned by facter setup: gather_subset: - '!all' - '!any' - facter --tree :將全部主機的輸出信息保存到/tmp/目錄下,以/etc/ansible/hosts裏的主機名爲文件名 filter :過濾關鍵字 ansible all -m setup -a 'filter=ansible_distribution_version' --tree /tmp/xx #企業需求 1.根據不一樣主機不一樣IP建立對應IP的目錄 2.根據不一樣主機不一樣主機名建立對應主機名的目錄 3.自動化運維平臺須要自動獲取到主機的IP地址,內存信息,磁盤信息,主機名...等 4.若是安裝數據庫,分配內存爲物理內存的80%,此時有3臺不一樣物理內存的機器2G、4G、16G 寫一個playbook的狀況下,我須要獲取到對應主機的內存並做出計算,寫判斷。 #查看主機全部詳細信息 [root@m01 ~]# ansible web01 -m setup #獲取ip [root@m01 ~]# ansible web01 -m setup -a 'filter=ansible_default_ipv4' #獲取主機名 [root@m01 ~]# ansible web01 -m setup -a 'filter=ansible_fqdn' #獲取內存信息 [root@m01 ~]# ansible web01 -m setup -a 'filter=ansible_memory_mb' #獲取磁盤信息 [root@m01 ~]# ansible web01 -m setup -a 'filter=ansible_devices' #其餘信息參數 ansible_all_ipv4_addresses:僅顯示ipv4的信息。 ansible_devices:僅顯示磁盤設備信息。 ansible_distribution:顯示是什麼系統,例:centos,suse等。 ansible_distribution_major_version:顯示是系統主版本。 ansible_distribution_version:僅顯示系統版本。 ansible_machine:顯示系統類型,例:32位,仍是64位。 ansible_eth0:僅顯示eth0的信息。 ansible_hostname:僅顯示主機名。 ansible_kernel:僅顯示內核版本。 ansible_lvm:顯示lvm相關信息。 ansible_memtotal_mb:顯示系統總內存。 ansible_memfree_mb:顯示可用系統內存。 ansible_memory_mb:詳細顯示內存狀況。 ansible_swaptotal_mb:顯示總的swap內存。 ansible_swapfree_mb:顯示swap內存的可用內存。 ansible_mounts:顯示系統磁盤掛載狀況。 ansible_processor:顯示cpu個數(具體顯示每一個cpu的型號)。 ansible_processor_vcpus:顯示cpu個數(只顯示總的個數)
command模塊linux
3.command模塊 默認模塊(可省略不指定) 做用:執行系統命令(linux windows),不支持變量,"<",">","|",";","&"等符號 [root@m01 ~]# ansible web_group -a 'ls' [root@m01 ~]# ansible web_group -a 'df -h'
cron模塊nginx
4.cron模塊 ansible-doc -s cron ansible db -m cron -a 'minute="" hour="" day="" month="" weekday="" job="" name="(必須填寫)" state= 一、定時設置指定值的寫入便可,沒有設置的能夠不寫(默認是*) 二、name必須寫 三、state有兩個狀態:present(添加(默認值))or absent(移除) #添加定時任務 ansible db -m cron -a 'minute="*/10" job="/bin/echo hello" name="test cron job" state="present"' 查看定時任務 ansible db -a "crontab -l" #移除定時任務 ansible db -m cron -a 'minute="*/10" job="/bin/echo hello" name="test cron job" state="absent"' ansible all -m cron -a "name=test state=absent" 查看定時任務 ansible db -a "crontab -l" # 註釋相應定時任務,使定時任務失效 ansible web_group -m cron -a "name='ansible cron01' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' disabled=no"
5.user/group模塊 user模塊是請求的是useradd, userdel, usermod三個指令,goup模塊請求的是groupadd, groupdel, groupmod 三個指令。 groups: 指定用戶的附加組(必須是已經存在的組) uid: 指定用的uid password: 爲用戶設置登錄密碼,此密碼是明文密碼'加密後的密碼' update_password:always/on_create always: 只有當密碼不相同時纔會修改密碼(默認) # on_create: 只爲新用戶設置密碼 name: 指定用戶名 createhome: 是否建立家目錄 yes|no(默認是yes) system: 是否爲系統用戶 yes|no(默認是no) remove: 當state=absent時,remove=yes則表示連同家目錄一塊兒刪除,等價於userdel -r(默認是no) state: 是建立仍是刪除 present(添加(默認值))or absent(移除) shell: 指定用戶的shell環境(默認是/bin/bash) append:yes/no yes: 添加附加group(至關於usermod -aG) no: 修改附加組(默認)(至關於usermod -G) expires: 設置用戶的過時時間,值是一個時間戳 comment: 註釋 #建立用戶,修改用戶 ansible 'web_group' -m user -a ' ' name=ll name=gg comment=zs name=hh comment="zhushi" uid=1040 group=adm name=hh shell=/bin/bash groups=adm,lp append=yes name=hh state=absent remove=yes name=hh shell=/bin/bash groups=adm expires=1422403387 name="testops" password="$6$0lwTSmqKOkL.ktgl$OnBexXC7haBf0FRHVMIZM2edDeFWBbpKJ2r9cxVwNvY.vh3IIUzwFz8n7jFglc0CrtQSY12ziDonVL6e71Og2." #生成密鑰時,只會生成公鑰文件和私鑰文件,和直接使用ssh-keygen指令效果相同,不會生成authorized_keys文件。 name=test generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa #指定password參數時,不能使用後面這一串密碼會被直接傳送到被管理主機的/etc/shadow文件中,因此須要先將密碼字符串進行加密處理。而後將獲得的字符串放到password中便可。 #刪除用戶 注意該用戶下不能有任何進程,不然會報錯(可是能刪除的都刪除了) ansible 'web_group' -m user -a ' ' name=ll state=absent remove=yes
生成加密的密碼git
在不一樣的主機上,建立以主機名命名的目錄web
[root@m01 ~]# vim 2.yml - hosts: web_group tasks: - name: 233 file: path: /root/{{ ansible_fqdn }} state: directory owner: root group: root mode: 0755 [root@m01 ~]# ansible-playbook 2.yml [root@web01 ~]# ll total 8 drwxr-xr-x 2 root root 6 Jun 1 00:41 web01 #查看ansiable-playbook命令 [root@m01 ~]# ll /usr/bin/ansible #TAB ansible ansible-console-2.7
copy模塊sql
6.copy模塊 [root@m01 ~]# ansible-doc copy #查看copy模塊用法 src: #源文件或目錄,要複製到遠程主機的文件在本地的地址,能夠是絕對路徑,也能夠是相對路徑。若是路徑是一個目錄,它將遞歸複製。在這種狀況下,若是路徑使用"/"來結尾,則只複製目錄裏的內容,若是沒有使用"/"來結尾,則包含目錄在內的整個內容所有複製,相似於rsync(#)。 content:用於替代"src",能夠直接設定指定文件的值 dest: #目標目錄 owner: foo #屬主 group: foo #屬組 mode: '0644' #權限,數字,字母,UGO backup: yes #當出現同名的文件,直接覆蓋,由於默認是no force:若是目標主機包含該文件,但內容不一樣,若是設置爲yes,則強制覆蓋,若是爲no,則只有當目標主機的目標位置不存在該文件時,才複製。默認爲yes 修改權限時候 須要加0 例如:chmod 0644 0755 -------------------------------------------------- #遠程批量拷貝,至關於scp,rsync 目標目錄下文件存在的話會報錯,被控端主機用戶不存在會報錯(可是它把能作的都作了) [root@m01 ~]# ansible 'web_group' -m copy -a 'src=/root/hosts dest=/root owner=www group=www mode=0644' [root@web01 /]# yum install -y httpd [root@web01 ~]# systemctl start httpd [root@web01 ~]# echo 233 > /var/www/html/index.html #瀏覽器訪問 ------------------------------------------------------------ #遠程拷貝文件,而且將原來的同名文件備份,若是文件名和文件內容,屬主屬組和權限都同樣就不作拷貝了(綠),backup=no能夠省略,屬主屬組是root的時候能夠不寫 [root@m01 /]# ansible 'web_group' -m copy -a 'src=/root/hosts dest=/root owner=www group=www mode=0644 backup=yes' 當dest目錄不存在時,自動建立,而且將源文件或目錄放到目標目錄下(不更名) ---------------------------------------------------------------- #簡單的文件直接能夠直接使用content在命令行copy,不須要copy文件 [root@m01 ~]# ansible 'web_group' -m copy -a 'content="/data 712.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" dest=/etc/exports'
file模塊docker
7.file模塊 設定文件屬性和建立文件的符號連接 file: path: /etc/foo.conf #指定建立的目錄或文件 state: touch #建立文件 directory #建立目錄 absent #刪除目錄或文件 link #作軟連接 owner: foo #屬主 group: foo #屬組 mode: '0644' #權限 recurse #遞歸 1 force:須要在兩種狀況下強制建立軟連接,一種是源文件不存在但以後會創建的狀況下;另外一種是目標軟連接已存在,須要先取消以前的軟鏈,而後建立新的軟鏈,有兩個選項:yes|no 2 group:定義文件/目錄的屬組 3 mode:定義文件/目錄的權限 4 owner:定義文件/目錄的屬主 5 path:必選項,定義文件/目錄的路徑(不存在的話能夠直接建立)# 6 recurse:遞歸的設置文件的屬性,只對目錄有效(默認開啓)(指定recurce的話,能夠修改已經存在的文件或者目錄的權限) 7 src:要被連接的源文件的路徑,只應用於state=link的狀況 8 dest:被連接到的路徑,只應用於state=link的狀況 9 state: directory:若是目錄不存在,建立目錄 file:即便文件不存在,也不會被建立 link:建立軟連接 hard:建立硬連接 touch:若是文件不存在,則會建立一個新的文件,若是文件或目錄已存在,則更新其最後修改時間 (不能在不存在的目錄下建立文件,這一點和touch命令同樣) absent:刪除目錄、文件或者取消連接文件 #遠程批量建立目錄 不指定屬主屬組,默認是root(當前用戶),不指定mode,那麼權限爲0000 [root@lb01 /code]# ansible 'web_group' -m file -a 'path=/backup state=directory owner=adm group=adm mode=0000' #遠程批量建立文件(上級目錄必須存在) [root@lb01 /code]# ansible 'web_group' -m file -a 'path=/backup state=touch owner=adm group=adm mode=0000' #遠程批量刪除目錄或文件 [root@lb01 /code]# ansible 'web_group' -m file -a 'path=/backup state=absent owner=adm group=adm mode=0000' #遠程批量建立目錄,(不指定權限的話,屬主屬組爲root,連接文件權限是777) [root@lb01 /code]# ansible 'web_group' -m file -a 'src=/backup/a.txt dest=/b.txt state=link owner=adm group=adm mode=0000'
yum模塊shell
8.yum模塊 name #包名,用等於號表示(指定要安裝的軟件包的名稱) file:// #指定本地安裝路徑,=yum localinstall -y http:// #指定yum倉庫 state #指定動做,用等於號表示 installed.present #安裝軟件包 removed.absent #刪除軟件包 latest #安裝最新版本的軟件包 exclude=kernel*,foo* #排除某些包 list=ansible #相似於yum list查看是否能夠安裝 disablerepo="epel,ol7_latest" #禁用指定的yum倉庫 download_only=true #只下載不安裝 yum install d #下載安裝,使用被控端的源安裝軟件包 [root@m01 ~]# ansible 'web_group' -m yum -a 'name=vsftpd state=present' #下載安裝,指定源的rpm包,至關於wget,能夠指定包名和協議 [root@m01 ~]# ansible 'web_group' -m yum -a 'name=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm state=present' #安裝,前提是客戶端指定目錄下有這個rpm包(至關於yum localinstall) [root@m01 ~]# ansible 'web_group' -m yum -a 'name=/root/zabbix-agent-5.0.0-1.el7.x86_64.rpm state=present' #卸載 [root@m01 ~]# ansible 'web_group' -m yum -a 'name=zabbix-agent-5.0.0-1.el7.x86_64 state=absent' [root@m01 ~]# ansible 'web_group' -m yum -a 'name=zabbix state=absent' #擴展 [root@localhost ~]# ansible all -m yum -a "name=httpd state=latest disable_gpg_check=yes enablerepo=epel" #state (Choices: present, installed, latest, absent, removed)[Default: present] #disable_gpg_check:禁止gpg檢查 #enablerepo:只啓動指定的repo
service模塊數據庫
9.service模塊 1 arguments:給命令行提供一些選項 2 enabled:是否開機啓動 yes|no 3 name:必選項,服務名稱 4 pattern:定義一個模式,若是經過status指令來查看服務的狀態時,沒有響應,就會經過ps指令在進程中根據該模式進行查找,若是匹配到,則認爲該服務依然在運行 5 runlevel:運行級別 6 sleep:若是執行了restarted,在則stop和start之間沉睡幾秒鐘 7 state:對當前服務執行啓動,中止、重啓、從新加載等操做(started,stopped,restarted,reloaded) #保持服務啓動並設置爲開機自啓 ansible web_group -m service -a 'enabled=yes name=httpd state=started'
10.shell模塊 尤爲是用到複雜命令時(如帶管道符等等),可是shell模塊不能作mysql的主從複製,可是nginx編譯安裝的時候只能使用shell模塊 #企業中通常不讓使用shell模塊 #使用ansible批量操做集羣的主機 [root@m01 ~]# ansible 'web_group' -m shell -a 'free -m' [root@m01 ~]# ansible 'web_group' -m conmand -a 'free -m' [root@m01 ~]# ansible web01 -m shell -a "ps -ef|grep httpd" 命令的最後也能夠加 -f number ,表示使用的併發進程數目,默認是5個 ansible webserver -a 'netstat -ulntp' -f 15 /usr/bin/ansible 默認使用當前ansible 服務器登錄的用戶來進行管理,若是你不喜歡這樣,也可使用 -u username 的方式來指定用戶 [root@docker ~]# ansible webserver -a "ls" -u zhangsan -f 9
11.script模塊 做用:將本地腳本複製到遠程主機,並執行。(不須要給腳本添加執行權限) #編輯腳本(只須要放在m01就好) vim /root/dir.sh mkdir syy #執行 absible 'web01' -m script -a '/root/dir.sh'
12.synchronize模塊 1 archive: 歸檔,至關於同時開啓recursive(遞歸)、links、perms、times、owner、group、-D選項都爲yes ,默認該項爲開啓 2 checksum: 跳過檢測sum值,默認關閉 3 compress:是否開啓壓縮 4 copy_links:複製連接文件,默認爲no ,注意後面還有一個links參數 5 delete: 刪除不存在的文件,delete=yes 使兩邊的內容同樣(即以推送方爲主),默認no 6 dest:目錄路徑(絕對路徑或者相對路徑) 7 dest_port:默認目錄主機上的端口 ,默認是22,走的ssh協議 8 dirs:傳速目錄不進行遞歸,默認爲no,即進行目錄遞歸 9 rsync_opts:經過傳遞數組來指定其餘rsync選項。 10 set_remote_user:主要用於/etc/ansible/hosts中定義或默認使用的用戶與rsync使用的用戶不一樣的狀況 11 mode: push或pull 模塊,push模的話,通常用於從本機向遠程主機上傳文件,pull 模式用於從遠程主機上取文件 12 src: 要同步到目的地的源主機上的路徑; 路徑能夠是絕對的或相對的。若是路徑使用」/」來結尾,則只複製目錄裏的內容,若是沒有使用」/」來結尾,則包含目錄在內的整個內容所有複製 src=some/relative/path dest=/some/absolute/path rsync_path="sudo rsync" src=some/relative/path dest=/some/absolute/path archive=no links=yes src=some/relative/path dest=/some/absolute/path checksum=yes times=no src=/tmp/helloworld dest=/var/www/helloword rsync_opts=--no-motd,--exclude=.git mode=pull
13.mount模塊 1 dump fstype:必選項,掛載文件的類型 2 name:必選項,掛載點 3 opts:傳遞給mount命令的參數 4 src:必選項,要掛載的文件 5 state:必選項 present:只處理fstab中的配置 absent:刪除掛載點 mounted:自動建立掛載點並掛載之 umounted:卸載 name=/mnt/dvd src=/dev/sr0 fstype=iso9660 opts=ro state=present name=/srv/disk src='LABEL=SOME_LABEL' state=present name=/home src='UUID=b3e48f45-f933-4c8e-a700-22a159ec9077' opts=noatime state=present ansible test -a 'dd if=/dev/zero of=/disk.img bs=4k count=1024' ansible test -a 'losetup /dev/loop0 /disk.img' ansible test -m filesystem 'fstype=ext4 force=yes opts=-F dev=/dev/loop0' ansible test -m mount 'name=/mnt src=/dev/loop0 fstype=ext4 state=mounted opts=rw'
14.get_url [root@m01 ~]# ansible-doc get_url url: http://example.com/path/file.conf #自定下載文件的URL dest: /etc/foo.conf #指定下載的目錄 mode: '0440' #指定下載後的權限 owner group force_basic_auth: yes #文件名相同直接覆蓋 checksum md5 #md5校驗 sha256 #sha校驗 #遠程鏈接並下載(串行,速度慢) [root@m01 ~]# ansible 'web_group' -m get_url -a 'url=http://test.driverzeng.com/Nginx_Code/wordpress-4.9.4-zh_CN.tar.gz dest=/root mode=000' #校驗MD5並下載 [root@m01 ~]# ansible 'web_group' -m get_url -a 'url=http://test.driverzeng.com/Nginx_Code/wordpress-4.9.4-zh_CN.tar.gz dest=/root mode=000 checksum= md5:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c'
15.yum_repository,#更改yum源 [root@m01 ~]# ansible-doc yum_repository yum_repository: name: epel #不能省略,#指定倉庫文件名和倉庫名,自動添加.repo description: #至關於倉庫內的name註釋 baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/ file: external_repos #指定倉庫文件名(優先級高),不指定的話倉庫文件名和倉庫名同樣,不能在同一個倉庫文件內添加多個倉庫名不一樣的倉庫,同時指定的話file=倉庫文件名,name=倉庫名 gpgcheck #是否開啓校驗 yes no enabled #是否啓用yum倉庫 yes no present #建立yum倉庫(默認) absent #刪除yum倉庫 -------------------------------------------------------- #批量添加yum倉庫,不能一次在某一主機添加多個倉庫文件和倉庫,功能有限 [root@m01 ~]# ansible 'web_group' -m yum_repository -a 'name=syy_add_epel description=EEE baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=no enabled=yes file=zdy' #在客戶端已存在的倉庫文件內添加倉庫(1.指定倉庫文件。2.指定倉庫名,存在即修改,不存在即添加) [root@m01 ~]# ansible 'web_group' -m yum_repository -a 'name=syy2_add_epel description=EEE baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=no enabled=yes file=zdy' -------------------------------------------------------------- #批量刪除yum倉庫,只能一個一個刪除倉庫文件(也就是說不能只指定name來批量刪除),file優先級高,能夠只指定name,也能夠同時指定(視狀況而定) (倉庫文件名和倉庫名要對應,最好都寫上) [root@m01 ~]# ansible 'web_group' -m yum_repository -a 'name=syy_add_epel file=zdy state=absent' -------------------------------------------------------------- #修改 不能修改倉庫文件名,也不能修改倉庫名,能夠修改URL [root@m01 ~]# ansible 'web_group' -m yum_repository -a 'name=syy_add_epelllll description=EEE baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=no enabled=yes file=1' 也能夠修改gpgcheck和enable [root@m01 ~]# ansible 'web_group' -m yum_repository -a 'name=syy_add_epel description=EEE baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=no enabled=no file=1' #使用playbook執行yml腳本,能夠實現更精確的操做
systemd [root@m01 ~]# ansible-doc systemd systemd: #模塊 state: started #啓動 name: httpd #指定服務名稱 state: stopped #中止 state: restarted #重啓 state: reloaded #重載配置文件 enabled: yes #設置開機自啓 masked: no # #遠程中止服務 [root@m01 ~]# ansible 'web_group' -m systemd -a 'name=nginx state=stopped ' #遠程啓動服務(並設置開機自啓動) [root@m01 ~]# ansible 'web_group' -m systemd -a 'name=nginx state=started enabled=yes '
[root@m01 ~]# ansible-doc group name: somegroup #指定組名 state: present #建立(默認,課省略) state: absent #刪除 gid #指定建立的組的gid #遠程建立組 [root@m01 ~]# ansible 'web_group' -m group -a 'name=dd gid=233 state=present' #遠程刪除組 [root@m01 ~]# ansible 'web_group' -m group -a 'name=dd gid=233 state=absent'
user: #模塊 name: johnd #指定用戶名 uid: 1040 #指定UID group: admin #指定主組 shell: /bin/bash(/sbin/nologin) #指定登陸shell groups: admins,developers #添加附加組(group=888) state: absent(present) #刪除用戶 comment #建立用戶的時候添加一段註釋 generate_ssh_key: yes #建立公鑰 ssh_key_bits: 2048 #指定公鑰長度 ssh_key_file: .ssh/id_rsa #建立私鑰 create_home=false #是否建立家目錄(默認建立true) ------------------------------------------------------ #遠程建立用戶,前提是用戶組必須存在(必須帶單引號) [root@web ~]# groupadd dd -g 233 [root@m01 ~]# ansible 'web_group' -m user -a 'name=hh uid=171 group=dd state=present shell=/sbin/nologin create_home=false' -------------------------------------------------------- #遠程刪除用戶 [root@m01 ~]# ansible 'web_group' -m user -a 'name=hh state=absent' -------------------------------------------------------- #遠程建立用戶,並生成密鑰對,也能夠只給用戶生成密鑰對 [root@m01 ~]# ansible 'web_group' -m user -a 'name=hh uid=888 group=root shell=/bin/bash generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa' -i ./hosts ---------------------------------------------------------------- #將明文密碼進行hash加密 [root@m01 ~]# ansible web_group -m debug -a "msg={{ 'zls' | password_hash('sha512', 'salt') }}" -i ./hosts #建立用戶,並制定密碼 [root@m01 ~]# ansible web_group -m user -a 'name=zls1 password=$6$salt$gaWhNcZweYlKQcLU1CqyY/UbYqIeUffVz6ESj87aMNfMX.xYBx0Z.67wzLN/hkkxmNut7SvkksPZ2Zlrse98m/ create_home=true shell=/bin/bash' -i ./hosts
[root@m01 ~]# ansible web01 -m fetch -a "src=/root/lol.txt dest=/root"
present # 開機掛載,即將掛載配置寫入/etc/fstab mounted # 掛載設備,並將配置寫入/etc/fstab unmounted # 卸載設備,不會清除/etc/fstab寫入的配置 absent # 卸載設備,會清理/etc/fstab寫入的配置 [root@m01 ~]# ansible web_group -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=present" [root@m01 ~]# ansible web01 -m mount -a "src=172.16.1.31:/data path=/data fstype=nfs opts=defaults state=mounted"
功能: 獲取遠程文件的狀態信息,包括atime,ctime,mtime,md5,uid,gid等信息。
[root@localhost ~]# ansible all -m stat -a "path=/etc/sysctl.conf"
#修改配置文件關閉selinux(永久關閉),必須重啓 [root@m01 ~]# ansible web_group -m selinux -a 'state=disabled' -i ./hosts #臨時關閉 [root@m01 ~]# ansible web_group -m shell -a 'setenforce 0' -i ./hosts #查看 [root@m01 ~]# ansible web_group -m shell -a 'getenforce' -i ./hosts
service #指定開放或關閉的服務名稱 port #指定開放或關閉的端口 permanent #是否添加永久生效 # immediate #臨時生效 state #永久開啓或者關閉 enabled disabled zone #指定配置某個區域 rich_rule #配置輔規則 masquerade #開啓地址假裝 source #指定來源IP [root@m01 ~]# ansible web_group -m firewalld -a 'service=http permanent=yes state=enabled' -i ./hosts [root@m01 ~]# ansible web_group -m firewalld -a "service=http immediate=yes permanent=yes state=enabled" -i ./hosts [root@m01 ~]# ansible web_group -m firewalld -a "port=8080-8090/tcp immediate=yes permanent=yes state=enabled" -i ./hosts