【非原創】關于ansible的一些學習資料的整理
一、前言
先介紹幾個中文版的文檔吧,先上鏈接
https://ansible-tran.readthedocs.io/en/latest/docs/intro_installation.html
http://www.ansible.com.cn/docs/intro_getting_started.html
以上兩個鏈接內容一模一樣,但是第一個提供了各種格式的下載,第二個沒有提供下載,好像是馬哥的團隊出品的,偶爾會彈出廣告
http://getansible.com/
二、安裝
看上面文檔吧,略過
三、ansible一些常用的模塊
主要是為了記錄一些常用的模塊才寫的這個文檔,下面開始將我覺得比較常用的文檔記錄下來。
ansible all -m “module”
1、command模塊
* 這個模塊不支持一些特殊字符比如:`<', `>', `|'等,所以如果想用這個可以使用接下來介紹的shell模塊
* windows下“command/shell”模塊都不能使用,只能使用“win_command”模塊
* 如果要重啟系統,只能使用reboot模塊和win_reboot模塊
* 在遠程機器上執行本地的腳本,可以使用scripts模塊
* 好像ansible的模塊,不管是shell還是command,都不能使用“tail -f”或者“top”這樣的命令
示例:
ansible all -m command -a "cat /etc/passwd"
ansible all -m command -a "ls /root/ -la"
ansible all -m command -a "/usr/bin/make_database.sh arg1 arg2 creates=/path/to/database" #這個creates 是在執行命令的時候判斷這個目錄是否存在,如果不存在就不繼續往下執行了
2、shell模塊
*有一些和command不一樣的地方,有一些比command好的地方,比如支持管道符、重定向符號等
示例:
ansible all -m shell -a "mkdir /root/testansible/testdir chdir=/root/testansible"#chdir 意思是先進入目錄然后再執行命令
ansible all -m shell -a "mkdir /root/testansible/testdir creates=/root/testansible/testdir"#creates意思是先filename是否存在,如果存在則不執行命令
ansible all -m shell -a "echo "testword" >> /root/testansible/testdir?removes=/root/testansible/testdir"#removes意思是如果不存在,則不執行
如果在ansible-playbook中使用,則應該這么寫了
shell:?echo "testword" >> /root/testansible/testdir
args:
chdir:?/root/testansible
creates: somelog.txt
3、yum模塊
這個模塊很顯然是在紅帽系列的linux系統中進行包管理的模塊
先介紹下個人覺得比較常用的模塊參數:
update_cache:類似于yum clean all &&yum makecache命令,可選值為:yes/no,默認no
state:包的最終需要的狀態,present/latest 是安裝包/最新的版的包,absent用于刪除包
list:列出包,可選值為:`installed', `updates', `available' and `repos'
download_only:下載包,只下載不安裝
download_dir:下載包的目錄
示例:
ansible -m yum -a "name=httpd,state=latest"#安裝包
ansible -m yum -a "name=httpd,state=absent"#移除包
ansible -m yum -a "name=httpd-2.2.29-1.4.amzn1,state=present"#安裝指定版本的包(還可以在name處寫上包所在的絕對路徑安裝本地的包)
ansible -m yum -a "name=*,state=latest"?#升級所有包
4、apt模塊
這個模塊的使用和yum很像,畢竟都是包管理軟件,apt模塊是管理ubuntu的包管理軟件
比較常用的模塊參數:
update_cache:可選值:yes/no,默認為no,如果為yes則類似于命令apt update
upgrage:可選值為:yes/safe/full/dist,默認為yes,如果為yes/safe則類似于命令:apt upgrade
deb:后面接遠程主機的deb包的絕對路徑
示例:
ansible -m apt -a "name=httpd , state=present"
ansible -m apt -a "name=httpd , state=latest"
ansible -m apt -a "name=httpd=2.2.29 , state=present"#安裝指定版本的httpd
5、copy模塊和fetch模塊
copy模塊的作用是將ansible執行主機的文件拷貝到遠程節點上,fetch模塊的作用是將遠程節點上的文件拷貝到ansible執行主機上;
比較常用的模塊參數:
src:源文件(目錄)的路徑,絕對路徑,如果路徑加“/”,則將目錄下的文件copy,如果不加則將此目錄copy
dest:目的文件(目錄)路徑,如果src是文件夾,這個就必須是文件夾了
backup:是否備份,默認no,可選參數“yes/no”
follow:文件夾的link也會copy過去
owner/group/mode:一些權限相關配置
示例:
ansible all -m copy -a "src=/tmp/tmpfile dest=/root/tmpfile.sh backup=yes owner=zhangsan group=zhangsan mode=0644"
Shell
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。