ansible基礎(chǔ)使用課件_第1頁
ansible基礎(chǔ)使用課件_第2頁
ansible基礎(chǔ)使用課件_第3頁
ansible基礎(chǔ)使用課件_第4頁
ansible基礎(chǔ)使用課件_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Ansible基礎(chǔ)使用工程運維部施沈楊2017-10-17常用自動化運維工具CFengineChefPuppet基于Ruby開發(fā),采用C/S架構(gòu),擴展性強,基于SSL認證SaltStack基于Python開發(fā),采用C/S架構(gòu),相對于puppet更輕量級,配置語法采用YMAL,使得配置腳本更為簡單Ansible基于Pyton開發(fā),分布式,無需客戶端,輕量級,配置語言采用YAML為什么選擇Ansible相對于puppet和saltstack,ansible無需客戶端,更輕量級ansible甚至都不用啟動服務,僅僅只是一個工具,可以很輕松的實現(xiàn)分布式擴展更強的遠程命令執(zhí)行操作不輸于puppet和saltstack的其他功能Ansible基本架構(gòu)Asible基本組成核心:ansible核心模塊(CoreModules):這些都是ansible自帶的模塊擴展模塊(CustomModules):如果核心模塊不足以完成某種功能,可以添加擴展模塊插件(Plugins):完成模塊功能的補充劇本(Playbooks):ansible的任務配置文件,將多個任務定義在劇本中,由ansible自動執(zhí)行連接插件(ConnectiorPlugins):ansible基于連接插件連接到各個主機上,雖然ansible是使用ssh連接到各個主機的,但是它還支持其他的連接方法,所以需要有連接插件主機群(HostInventory):定義ansible管理的主機ansible工作原理ansible安裝使用yum安裝,配置好epel源(推薦)

yuminstall-yansible使用pip安裝 pipinstallansible

如果沒有pip,需要先安裝好pip,方法如下: yuminstallpython-setuptools

easy_installpip使用源碼安裝 yuminstallgitpython-setuptoolsgccpython-devel-y

獲取源碼

gitclone

/ansible/ansible

安裝ansible

cdansible

pythonsetup.pyinstallansible配置文件 Yum安裝后的配置文件默認在/etc/ansible/ansible.cfg

該配置文件中定義了ansible的主機的默認配置部分,如默認是否需要輸入密碼、是否開啟sudo認證、action_plugins插件的位置、hosts主機組的位置、是否開啟log功能、默認端口、key文件位置等等。hosts

管理主機清單,ansible通過文件來定義你要管理的主機,也就是說把你需要的管理的主機ip寫到一個文件中即可,默認為hosts文件。

roles(目錄) roles是ansible自1.2版本引入的新特性,用于層次性,結(jié)構(gòu)化地組織playbook,roles能夠根據(jù)層次型結(jié)構(gòu)自動自動裝在變量文件、tasks以及handlers等。ansible基礎(chǔ)配置首先在hosts文件中定義被管理主機,也被稱為inventory文件#cat>>/etc/ansible/hosts<<EOF>[webserver]>57>58>[dbserver]>59>EOF使用ssh-keygen生成ssh密鑰,分發(fā)到個被管理機上免密登錄#ssh-keygen-trsa-P''-f/root/.ssh/id_rsa#ssh-copy-id-i/root/.ssh/id_rsa.pub57Ansible基礎(chǔ)使用(一)使用ansible命令行來探測個客戶端的存活#ansible

-u

root

all

-m

ping

-i

/etc/ansible/hosts-uroot使用root用戶去執(zhí)行all表示hosts文件中左右主機清單,也可選單個組;-mping常用模塊ping,檢測主機存活;-i/etc/ansible/hosts使用指定的配置文件(默認配置文件為/etc/ansible/hosts)

以下檢測結(jié)果均為存活Ansible基礎(chǔ)使用Playbook(二)使用ansible-playbook批量安裝nginx以下是一個較為簡單的playbook例子[root@localhostinstall]#catnginx.yml-hosts:web

gather_facts:no

sudo:yestasks:-name:InstallNginxyum:name={{item}}state=present

with_items:-nginx-name:SettingNginxStartservice:name=nginxstate=startedenabled=yes直接執(zhí)行該文件#ansible-playbooknginx.ymlAnsible-playbook

ansbile-playbook是一系列ansible命令的集合,利用yaml

語言編寫。playbook命令根據(jù)自上而下的順序依次執(zhí)行。

ansible-playbook的簡單使用方法:ansible-playbookexample-play.ymlPlaybook構(gòu)成:Hosts和Users playbook中的每一個play的目的都是為了讓某個或某些主機以某個指定的用戶身份執(zhí)行任務。任務列表和action

playbook任務列表中的各任務按次序逐個在hosts中指定的所有主機上執(zhí)行。Handlers

當關(guān)注的資源發(fā)生變化時采取一定的操作,比如配置文件更新是重啟服務等。Tags

tags用于讓用戶選擇運行或略過playbook中的部分代碼。ansible常用模塊詳解file:用于配置文件屬性yum:用于安裝軟件包cron:配置計劃任務copy:復制文件到遠程主機command:在遠程主機上執(zhí)行命令raw:類似于command模塊,支持管道user:配置用戶group:配置用戶組service:用于管理服務ping:用于檢測遠程主機是否存活setup:查看遠程主機的基本信息mount:配置掛載點filegroup:定義文件/目錄的屬組owner:定義文件/目錄的屬主mode:定義文件/目錄的權(quán)限path:必選項,定義文件/目錄的路徑recurse:遞歸設置文件的屬性,只對目錄有效state:定義文件狀態(tài)directory:如果目錄不存在,創(chuàng)建目錄touch:如果文件不存在,創(chuàng)建一個新文件absent:刪除文件或目錄示例:ansibletest-mfile-a"src=/etc/fstabdest=/tmp/fstabstate=link"ansibletest-mfile-a"path=/tmp/fstabstate=absent"ansibletest-mfile-a"path=/tmp/teststate=touch"yumenablerepo:啟用某個源name:要進行操作的軟件包的名字,也可以傳遞一個url或者一個本地的rpm包的路徑state:定義軟件包狀態(tài)present:安裝absent:刪除latest:安裝最新的示例:ansibletest-myum-a'name=httpdstate=latest'ansibletest-myum-a'name="@Developmenttools"state=present'ansibletest-myum-a'name=/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpmstate=present'cronbackup:對遠程主機上的原任務計劃內(nèi)容修改之前做備份day:日(1-31,*,*/2,……)hour:小時(0-23,*,*/2,……)minute:分鐘(0-59,*,*/2,……)month:月(1-12,*,*/2,……)weekday:周(0-7,*,……)job:要執(zhí)行的任務,依賴于state=presentname:該任務的描述special_time:指定什么時候執(zhí)行,參數(shù):reboot,yearly,annually,monthly,weekly,daily,hourlystate:確認該任務計劃是創(chuàng)建還是刪除user:以哪個用戶的身份執(zhí)行示例:ansibletest-mcron-a'name="checkdirs"hour="5,2"job="ls-alh>/dev/null"'ansibletest-mcron-a'name="ajobforreboot"special_time=rebootjob="/some/job.sh"'copysrc:源文件dest:目標路徑backup:覆蓋之前,是否備份原文件owner:設定文件/目錄的屬主group:設定文件/目錄的屬組mode:設定文件/目錄的權(quán)限示例:ansibletest-mcopy-a"src=/srv/myfiles/foo.confdest=/etc/foo.confowner=foogroup=foomode=0644"ansibletest-mcopy-a"src=/mine/ntp.confdest=/etc/ntp.confowner=rootgroup=rootmode=644backup=yes"commandcreates:一個文件名,當該文件存在,則該命令不執(zhí)行free_form:要執(zhí)行的linux指令chdir:在執(zhí)行指令之前,先切換到該指定的目錄removes:一個文件名,當該文件不存在,則該選項不執(zhí)行示例:ansibletest-a"/sbin/reboot"servicearguments:給命令行提供一些選項enabled:是否開機啟動yes|noname:必選項,服務名稱runlevel:運行級別sleep:如果執(zhí)行了restarted,在則stop和start之間沉睡幾秒鐘state:對當前服務執(zhí)行啟動,停止、重啟、重新加載等操作(started,stopped,restarted,reloaded)示例:ansibletest-mservice-a"name=httpdstate=startedenabled=yes"ansibletest-mservice-a"name=foopattern=/usr/bin/foostate=started"ansibletest-mservice-a"name=networkstate=r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論