㈠ linux裡面ansible中command模塊和shell模塊區別是什麼
command或shell模塊,那麼腳本中調用的是subprocess.Popen(args,kwargs)函數,command和shell的區別就在於command模塊使用shell=True,而shell模塊使用shell=False,就是一個調用了shell,一個沒有。
官方文檔中是不建議使用shell=True的,因為這可能導致shell injection安全問題,但是有些情況下用shell模塊就很方便,比如我要批量刪除一些文件,
ansible -i inventory all -m command -a "rm -f /etc/yum.repos.d/CentOS.repo" -U root -s -f 50 -kK
你如果執行以上命令的話,是不會刪除掉那些文件的 ?
因為你的命令行中包含了通配符號,通配符必須要有在shell環境中才能被識別出,不然,它只能刪除CentOS.repo這一個文件。 《linux就該這么學》
所以你需要執行以下命令才能成功
ansible -i inventory all -m shell -a "rm -f /etc/yum.repos.d/CentOS.repo" -U root -s -f 50 -kK
而這兩個命令所生成的可執行腳本的區別就一行
< MODULE_ARGS = 'rm -f /etc/yum.repos.d/CentOS.repo'
㈡ Linux裡面ansible作用是什麼
Ansible是一款簡單的運維自動化工具,只需要使用ssh協議連接就可以來進行系統管理,自動化執行命令,部署等任務。
Ansible的優點
不需要安裝客戶端,不需要運行服務
使用python開發的一套自動執行任務的模塊
playbook採用yaml配置,結構清晰
Ansible的組成結構
Ansible:核心命令工具,一次性或臨時性執行的操作都由該工具執行
Ansible playbook:任務劇本(又稱任務集),編排定義Ansible任務集的配置文件,由Ansible執行,格式是yaml
Inventory:Ansible管理的主機,在/etc/ansible/hosts中配置
Moles:Ansible執行命令的功能模塊,Ansible2.3版本為止,共有1039個模塊。還可以自定義模塊。
Plugins:插件,模塊功能的補充,常有連接類型插件,循環插件,變數插件,過濾插件,插件功能用的較少。
API:提供給第三方程序調用的應用程序編程介面。
㈢ 如何編輯命令實現ansible批量執行
1、打開記事本,編寫dos命令。 2、保存為.bat文件。 3、通過dos命令框打開運行.bat文件文件就可以了。 .bat: 批處理(Batch),也稱為批處理腳本。顧名思義,批處理就是對某對象進行批量的處理,通常被認為是一種簡化的腳本語言,
㈣ 在Linux下,Ansible 命令怎樣才能被識別
把ansible的全路徑加入$PATH中,假設他在/usr/local/bin下面的,你用的是csh
setenv PATH /usr/local/bin:$PATH
㈤ ansible執行命令怎麼變成一行
我在一次修復系統後也總出來這個討厭的圖標,關掉這兩個服務就不出來了,會不會影響其它性能暫時還不知道。 控制面板-管理工具-服務里 1、Universal Plug and Play Device Host,
㈥ Ansible模塊知多少
ansible 默認提供了很多模塊來供我們使用。在 Linux 中,我們可以通過 ansible-doc -l 命令查看到當前 ansible 都支持哪些模塊,通過 ansible-doc -s 模塊名 又可以查看該模塊有哪些參數可以使用。
下面介紹比較常用的幾個模塊:
模塊
file模塊
cron模塊
group模塊
user模塊
yum模塊
service模塊
script模塊
ping模塊
command模塊
raw模塊
get_url模塊
synchronize模塊
Ansible和Docker的作用和用法 http://www.linuxidc.com/Linux/2014-11/109783.htm
Ansible批量搭建LAMP環境 http://www.linuxidc.com/Linux/2014-10/108264.htm
Ansible :一個配置管理和IT自動化工具 http://www.linuxidc.com/Linux/2014-11/109365.htm
Linux下安裝部署Ansible http://www.linuxidc.com/Linux/2015-02/112774.htm
模塊:
目的:把主控端/root目錄下的a.sh文件拷貝到到指定節點上
命令:ansible 10.1.1.113 -m -a 'src=/root/a.sh dest=/tmp/'
執行效果:
file模塊:
目的:更改指定節點上/tmp/t.sh的許可權為755,屬主和屬組為root
命令:ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
執行效果:
cron模塊:
目的:在指定節點上定義一個計劃任務,每隔3分鍾到主控端更新一次時間
命令:ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'
執行效果:
group模塊:
目的:在所有節點上創建一個組名為nolinux,gid為2014的組
命令:ansible all -m group -a 'gid=2014 name=nolinux'
執行效果:
user模塊:
目的:在指定節點上創建一個用戶名為nolinux,組為nolinux的用戶
命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'
執行命令:
補充:刪除用戶示例
yum模塊:
目的:在指定節點上安裝 lrzsz 服務
命令:ansible all -m yum -a "state=present name=httpd"
執行效果:
service模塊:
目的:啟動指定節點上的 puppet 服務,並讓其開機自啟動
命令:ansible 10.1.1.113 -m service -a 'name=puppet state=restarted enabled=yes'
執行效果:
㈦ ansible-playbook未找到命令怎麼解決
上面的playbook 實現的功能是新增一個用戶:
name參數對該playbook實現的功能做一個概述,後面執行過程中,會列印 name變數的值 ;
hosts參數指定了對哪些主機進行參作;
user參數指定了使用什麼用戶登錄遠程主機操作;
gather_facts參數指定了在以下任務部分執行前,是否先執行setup模塊獲取主機相關信息,這在後面的task會使用到setup獲取的信息時用到;
vars參數,指定了變數,這里指字一個user變數,其值為test ,需要注意的是,變數值一定要用引號引住;
task指定了一個任務,其下面的name參數同樣是對任務的描述,在執行過程中會列印出來。user提定了調用user模塊,name是user模塊里的一個參數,而增加的用戶名字調用了上面user變數的值。
㈧ Linux裡面ansible -a命令作用是什麼
Ansible是一款系統運維的批量管理伺服器軟體,下面是批量管理的命令例子:
ansible oldboy -m shell -a 'ps -ef |grep ssh' -k
ansible是命令。
oldboy是主機組(裡麵包含很多機器)。
-m shell,-m是指定模塊,shell就是一個模塊。
-a接模塊對應參數。'ps -ef |grep ssh',就是模塊對應的參數,傳給shell解析處理。
㈨ ansible執行完命令後的rc=0是什麼意思
如果沒有執行成功, 那就是要看執行的命令或者是腳本是什麼樣子的了 如果shell寫錯了, 那肯定不行的埃 可以幫樓主排查一下這個問題。 以後要是遇到了Linux伺服器系統方面的問題, 都可以幫忙解決!
㈩ ansible命令中怎麼獲取
一、psaux或netstat-tlunp ps進程查看命令netstat埠查看命令Linux系統服務定進程所使用ps命令查看服務運行情況另外Linux服務數中國絡服務所通netstat命令查看服務運行狀態二、service服務名 status 比查看httpdWeb服務運行狀態執行servicehttpdstatus圖所示:三、/sbin/service--status-all|grep"服務名" 比查看httpdweb服務執行/sbin/service--status-all|grep"httpd"即圖所示四、chkconfig--list 比查看httpdweb服務執行chkconfig--list|grep"httpd"即圖所