Ansible 小手冊系列 七(Ad-hoc)

Ansible提供兩種方式去完成任務(wù),一是 ad-hoc 命令,一是寫 Ansible playbook逗载。前者可以解決一些簡單的任務(wù)豁遭, 后者解決較復(fù)雜的任務(wù)。
ad hoc——臨時的膝宁,在ansible中是指需要快速執(zhí)行,并且不需要保存的命令根吁。說白了就是執(zhí)行簡單的命令—一條命令员淫。

定義主機清單

cat /etc/ansible/hosts
[web]
192.168.77.129 ansible_ssh_user=root ansible_ssh_pass=123456

執(zhí)行shell


獲取web組里得eth0接口信息
ansible web -a "ifconfig eth0"

執(zhí)行ifconfig eth0 命令,ansible模塊 默認是command击敌,它不會通過shell進行處理介返,所以像$ HOME和像“<”,“>”沃斤,“|”圣蝎,“;” 和“&”將不工作(如果您需要這些功能,請使用shell模塊)衡瓶。

以shell解釋器執(zhí)行腳本
ansible web -m shell -a "ifconfig eth0|grep addr"

以raw模塊執(zhí)行腳本
ansible web -m raw -a "ifconfig eth0|grep addr"

將本地腳本傳送到遠程節(jié)點上運行
ansible web -m script -a ip.sh

傳輸文件


拷貝本地的/etc/hosts 文件到web組所有主機的/tmp/hosts(空目錄除外)
ansible web -m copy -a "src=/etc/hosts dest=/tmp/hosts"

拷貝本地的ntp文件到目的地址徘公,設(shè)置其用戶及權(quán)限,如果目標(biāo)地址存在相同的文件哮针,則備份源文件关面。
ansible web -m copy -a "src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes force=yes"

file 模塊允許更改文件的用戶及權(quán)限
ansible web -m file -a "dest=/tmp/a.txt mode=600 owner=user group=user"

使用file 模塊創(chuàng)建目錄坦袍,類似mkdir -p
ansible web -m file -a "dest=/tmp/test mode=755 owner=user group=user state=directory"

使用file 模塊刪除文件或者目錄
ansible web -m file -a "dest=/tmp/test state=absent"

創(chuàng)建軟連接,并設(shè)置所屬用戶和用戶組
ansible web -m file -a "src=/file/to/link/to dest=/path/to/symlink owner=user group=user state=link"

touch 一個文件并添加用戶讀寫權(quán)限缭裆,用戶組去除寫執(zhí)行權(quán)限,其他組減去讀寫執(zhí)行權(quán)限
ansible web -m file -a "path=/etc/foo.conf state=touch mode='u+rw,g-wx,o-rwx'"

管理軟件包


apt寿烟、yum 模塊分別用于管理Ubuntu 系列和RedHat 系列系統(tǒng)軟件包

更新倉庫緩存澈驼,并安裝"foo"
ansible web -m apt -a "name=foo update_cache=yes"

刪除 "foo"
ansible web -m apt -a "name=foo state=absent"

安裝 "foo"
ansible web -m apt -a "name=foo state=present"

安裝 1.0版本的 "foo"
ansible web -m apt -a "name=foo=1.00 state=present"

安裝最新得"foo"
ansible web -m apt -a "name=foo state=latest"

注釋:Ansible 支持很多操作系統(tǒng)的軟件包管理,使用時-m 指定相應(yīng)的軟件包管理工具模塊筛武,如果沒有這樣的模塊缝其,可以自己定義類似的模塊或者使用command 模塊來安裝軟件包

安裝 最新的 Apache
ansible web -m yum -a "name=httpd state=latest"

刪除apache
ansible web -m yum -a "name=httpd state=absent"

從testing 倉庫中安裝最后一個版本得apache
ansible web -m yum -a "name=httpd enablerepo=testing state=present"

更新所有的包
ansible web -m yum -a "name=* state=latest"

安裝遠程的rpm包
ansible web -m yum -a "name=http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present"

安裝 'Development tools' 包組
ansible web -m yum -a "name='@Development tools' state=present"

用戶和用戶組


添加用戶 'user'并設(shè)置其 uid 和主要的組'admin'
ansible web -m user -a "name=user comment='I am user ' uid=1040 group=admin"

添加用戶 'user'并設(shè)置其登陸shell,并將其假如admins和developers組
ansible web -m user -a "name=user shell=/bin/bash groups=admins,developers append=yes"

刪除用戶 'user '
ansible web -m user -a "name=user state=absent remove=yes"

創(chuàng)建 user用戶得 2048-bit SSH key徘六,并存放在 ~user/.ssh/id_rsa
ansible web -m user -a "name=user generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa"

設(shè)置用戶過期日期
ansible web -m user -a "name=user shell=/bin/zsh groups=nobdy expires=1422403387"

創(chuàng)建test組内边,并設(shè)置git為1000
ansible web -m group -a "name=test gid=1000 state=present"

刪除test組
ansible web -m group -a "name=test state=absent"

源碼部署


Ansible 模塊能夠通知變更,當(dāng)代碼更新時待锈,可以告訴Ansible 做一些特定的任務(wù)漠其,比如從git 部署代碼然后重啟apache 服務(wù)等
ansible web-m git -a "repo=https://github.com/Icinga/icinga2.git dest=/tmp/myapp version=HEAD"

服務(wù)管理


確保web組所有主機的httpd 是啟動的
ansible web-m service -a "name=httpd state=started"

重啟web組所有主機的httpd 服務(wù)
ansible web-m service -a "name=httpd state=restarted"

確保web組所有主機的httpd 是關(guān)閉的
ansible web-m service -a "name=httpd state=stopped"

后臺運行


長時間運行的操作可以放到后臺執(zhí)行,ansible 會檢查任務(wù)的狀態(tài)竿音;在主機上執(zhí)行的同一個任
務(wù)會分配同一個job ID
后臺執(zhí)行命令3600s和屎,-B 表示后臺執(zhí)行的時間
ansible all -B 3600 -a "/usr/bin/long_running_operation --do-stuff"

檢查任務(wù)的狀態(tài)


ansible all -m async_status -a "jid=123456789"
后臺執(zhí)行命令最大時間是1800s 即30 分鐘,-P 每60s 檢查下狀態(tài)默認15s
ansible all -B 1800 -P 60 -a "/usr/bin/long_running_operation --do-stuff"

定時任務(wù)


每天5點春瞬,2點得時候執(zhí)行 ls -alh > /dev/null
ansible test -m cron -a "name='check dirs' minute='0' hour='5,2' job='ls -alh > /dev/null'"

搜集系統(tǒng)信息


搜集主機的所有系統(tǒng)信息
ansible all -m setup

搜集系統(tǒng)信息并以主機名為文件名分別保存在/tmp/facts 目錄
ansible all -m setup --tree /tmp/facts

搜集和內(nèi)存相關(guān)的信息
ansible all -m setup -a 'filter=ansible_*_mb'

搜集網(wǎng)卡信息
ansible all -m setup -a 'filter=ansible_eth[0-2]'


更多文章請看 Ansible 專題文章總覽

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柴信,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宽气,更是在濱河造成了極大的恐慌随常,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萄涯,死亡現(xiàn)場離奇詭異绪氛,居然都是意外死亡,警方通過查閱死者的電腦和手機涝影,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門钞楼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袄琳,你說我怎么就攤上這事询件。” “怎么了唆樊?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵宛琅,是天一觀的道長。 經(jīng)常有香客問我逗旁,道長嘿辟,這世上最難降的妖魔是什么舆瘪? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮红伦,結(jié)果婚禮上英古,老公的妹妹穿的比我還像新娘。我一直安慰自己昙读,他們只是感情好召调,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛮浑,像睡著了一般唠叛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沮稚,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天艺沼,我揣著相機與錄音,去河邊找鬼蕴掏。 笑死障般,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盛杰。 我是一名探鬼主播剩拢,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饶唤!你這毒婦竟也來了徐伐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤募狂,失蹤者是張志新(化名)和其女友劉穎办素,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祸穷,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡性穿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了雷滚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片需曾。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖祈远,靈堂內(nèi)的尸體忽然破棺而出呆万,到底是詐尸還是另有隱情,我是刑警寧澤车份,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布谋减,位于F島的核電站,受9級特大地震影響扫沼,放射性物質(zhì)發(fā)生泄漏出爹。R本人自食惡果不足惜庄吼,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望严就。 院中可真熱鬧总寻,春花似錦、人聲如沸梢为。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抖誉。三九已至殊轴,卻和暖如春衰倦,著一層夾襖步出監(jiān)牢的瞬間袒炉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工樊零, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掘猿,地道東北人柿究。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箩溃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 作為背鍋俠運維工作的基本流程 運維工具的分類 : ansible的模塊化: ansible密鑰登陸 ansible...
    二郎5閱讀 4,160評論 0 10
  • ###### Ansible總結(jié) ##### 運維工作: 系統(tǒng)安裝(物理機盔然、虛擬機)-->程序包安裝锣夹、配置、服務(wù)啟...
    二郎5閱讀 2,031評論 0 4
  • 一.ansible (1) ansible: ansible是一款新出現(xiàn)的自動化運維系統(tǒng)豌习,基于python開發(fā)并集...
    楠人幫閱讀 1,943評論 0 8
  • 1. 什么是Ansible存谎,它有什么用? Ansible它是個集配置管理和應(yīng)用部署于一體的自動化運維工具肥隆。 應(yīng)用情...
    午覺不眠Orz閱讀 1,521評論 0 0
  • Ansible 安裝:apt-get install python-crypto python-lxml pipp...
    Jackzzg閱讀 1,718評論 0 3