版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Ansible基礎(chǔ)使用1自動(dòng)化運(yùn)維平臺(tái)2Ansible服務(wù)部署3playbook基礎(chǔ)目錄4playbook變量5playbook流程控制6templates模板7roles角色8Ansible故障排查自動(dòng)化運(yùn)維平臺(tái)自動(dòng)化運(yùn)維平臺(tái)自動(dòng)化運(yùn)維平臺(tái)介紹運(yùn)維自動(dòng)化平臺(tái)是由管理機(jī)器[S]和業(yè)務(wù)機(jī)器[C]組成的,C/S。管理機(jī)器:任務(wù)定制及發(fā)布;業(yè)務(wù)機(jī)器:接收任務(wù)并執(zhí)行任務(wù)。運(yùn)維自動(dòng)化平臺(tái)的優(yōu)勢(shì):任務(wù)一次性發(fā)布給所有機(jī)器任務(wù)主機(jī)并發(fā)完成任務(wù),節(jié)省部署時(shí)間避免重復(fù),保證一次任務(wù)定制準(zhǔn)確即可常用自動(dòng)化運(yùn)維工具Ansible基于Pyton開發(fā),分布式,無需客戶端,輕量級(jí),配置語言采用YAMLSaltStack基于Python開發(fā),采用C/S架構(gòu),相對(duì)于puppet更輕量級(jí),配置語法采用YMAL,使得配置腳本更為簡單Puppet基于Ruby開發(fā),采用C/S架構(gòu),擴(kuò)展性強(qiáng),基于SSL認(rèn)證CFengineChef為什么選擇Ansible相對(duì)于puppet和saltstack,ansible無需客戶端,更輕量級(jí)ansible甚至都不用啟動(dòng)服務(wù),僅僅只是一個(gè)工具,可以很輕松的實(shí)現(xiàn)分布式擴(kuò)展更強(qiáng)的遠(yuǎn)程命令執(zhí)行操作不輸于puppet和saltstack的其他功能冪等性Ansible基礎(chǔ)使用1自動(dòng)化運(yùn)維平臺(tái)2Ansible服務(wù)部署3playbook基礎(chǔ)目錄4playbook變量5playbook流程控制6templates模板7roles角色8Ansible故障排查Ansible服務(wù)部署Ansible概述ansible是一種由Python開發(fā)的自動(dòng)化運(yùn)維工具,集合了眾多運(yùn)維工具(puppet、cfengine、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運(yùn)行的模塊,ansible只是提供一種框架。Ansible基本架構(gòu)ansible工作原理1、用戶登錄管理機(jī)器:通過配置文件對(duì)業(yè)務(wù)機(jī)器組部署ansible劇本或者單行命令。2、控制主機(jī)與被管理節(jié)點(diǎn)之間支持local、SSH、ZeroMQ三種連接方式,默認(rèn)使用基于SSH的連接。在規(guī)模較大的情況下使用ZeroMQ連接方式會(huì)明顯改善執(zhí)行速度。3、管理機(jī)器讀取用戶的部署任務(wù):根據(jù)自己hosts文件中定義的業(yè)務(wù)機(jī)器組查找對(duì)應(yīng)的機(jī)器地址(ip或者域名)。4、管理機(jī)下發(fā)任務(wù):管理機(jī)通過ssh免密連接業(yè)務(wù)機(jī)器,下發(fā)任務(wù)模塊給業(yè)務(wù)機(jī)器臨時(shí)目錄。5、業(yè)務(wù)機(jī)器執(zhí)行任務(wù)。任務(wù)完畢刪除模塊。6、業(yè)務(wù)機(jī)器將執(zhí)行結(jié)果發(fā)送給ansible管理機(jī)器。反饋?zhàn)煮w顏色: 綠色執(zhí)行成功,狀態(tài)未發(fā)生變化|黃色
執(zhí)行成功,狀態(tài)更改|紅色執(zhí)行錯(cuò)誤ansible安裝使用yum安裝,配置好epel源(推薦)
yuminstall-yansible使用pip安裝 pipinstallansible
如果沒有pip,需要先安裝好pip,方法如下: yuminstallpython-setuptools
easy_installpip源碼安裝ansible配置文件 Yum安裝后的配置文件默認(rèn)在/etc/ansible/ansible.cfg
該配置文件中定義了ansible的主機(jī)的默認(rèn)配置部分,如默認(rèn)是否需要輸入密碼、是否開啟sudo認(rèn)證、action_plugins插件的位置、hosts主機(jī)組的位置、是否開啟log功能、默認(rèn)端口、key文件位置等。hosts
管理主機(jī)清單,ansible通過文件來定義你要管理的主機(jī),也就是說把你需要管理的主機(jī)ip寫到一個(gè)文件中即可,默認(rèn)為hosts文件。
roles(目錄)
roles是ansible自1.2版本引入的新特性,用于層次性,結(jié)構(gòu)化地組織playbook,roles能夠根據(jù)層次型結(jié)構(gòu)自動(dòng)自動(dòng)裝在變量文件、tasks以及handlers等。ansible常見命令構(gòu)建密鑰對(duì)驗(yàn)證的SSH體系整體實(shí)現(xiàn)過程16第一步:創(chuàng)建密鑰對(duì)
私鑰文件:id_rsa
公鑰文件:id_rsa.pubSSH客戶機(jī)SSH服務(wù)器第二步:上傳公鑰文件id_rsa.pub第三步:導(dǎo)入公鑰信息
公鑰庫文件:~/.ssh/authorized_keys第四步:使用密鑰對(duì)驗(yàn)證方式由客戶端的用戶zhangsan在本地創(chuàng)建密鑰對(duì)導(dǎo)入到服務(wù)端用戶lisi的公鑰數(shù)據(jù)庫以服務(wù)端的用戶lisi的身份進(jìn)行登錄ansible基礎(chǔ)配置首先在/etc/ansible/hosts文件中定義被管理主機(jī),也被稱為inventory文件 .....................定義主機(jī)[server] .....................定義主機(jī)組[node]192.168.[0:2].[10:20] .....................定義主機(jī)范圍[web:children] .....................定義多主機(jī)組server .....................主機(jī)組1node .....................主機(jī)組2(注意:python版本,hosts文件中針對(duì)主機(jī)設(shè)置ansible_python_interpreter=/usr/bin/python3)使用ssh-keygen生成ssh密鑰,分發(fā)到個(gè)被管理機(jī)上免密登錄生成ssh密鑰對(duì):ssh-keygen-trsa傳輸ssh公鑰:ssh-copy-id
root@192.168.88.134ssh免密登錄驗(yàn)證:sshroot@33構(gòu)建密鑰對(duì)驗(yàn)證的SSH體系ansible基礎(chǔ)配置ansible命令格式
ansible<host-pattern>[-fforks][-mmodule_name][-aargs] -f:指定并發(fā)數(shù) -m:指定模塊 -u:指定以那個(gè)用戶的身份鏈接(默認(rèn)用戶與ansible執(zhí)行命令的用戶相同) -k:指定鏈接用戶的密碼 -a:指定參數(shù)
參數(shù):key=valueansiblehost名稱
-mping測(cè)試主機(jī)連通性ansible主機(jī)名-mcopy-a“src=/root/hello.txtdest=/tmp/hello.txt”command模塊(默認(rèn))free_form:要執(zhí)行的linux命令,例如“l(fā)s”chdir:在執(zhí)行指令之前,先切換到該指定的目錄creates:指定文件不存在,后一條命令執(zhí)行/當(dāng)指定文件存在時(shí),后一條命令不執(zhí)行removes:當(dāng)指定文件存在時(shí),后一條命令執(zhí)行/指定文件不存在,后一條命令不執(zhí)行示例:ansibletest-a"ss-ntl"ansibletest-a"chdir=/tmp"ansibletest-a"creates=/tmp/ansibtouch/tmp/ansib"ansibletest-a"removes=/tmp/ansibrm/tmp/ansib"(注意
在/etc/ansible/ansible.conf配置文件中defaults下設(shè)置interpreter_python=auto_legacy_silent)shell模塊shell模塊可以幫助我們?cè)谶h(yuǎn)程主機(jī)上執(zhí)行命令,shell模塊在遠(yuǎn)程主機(jī)中執(zhí)行命令時(shí),會(huì)經(jīng)過遠(yuǎn)程主機(jī)上的/bin/sh程序處理。shell模塊與command模塊區(qū)別:command模塊命令將不會(huì)使用shell執(zhí)行.因此,像$HOME這樣的變量是不可用的。還有像<,>,|,;,&都將不可用。shell模塊通過shell程序執(zhí)行,默認(rèn)是/bin/sh,<,>,|,;,&可用。但這樣有潛在的shell注入風(fēng)險(xiǎn).command模塊更安全,因?yàn)樗皇苡脩舡h(huán)境的影響。也很大的避免了潛在的shell注入風(fēng)險(xiǎn)。shell注入就是參數(shù)中有rm等危險(xiǎn)命令。示例:ansibletest-mshell-a"chdir=/tmpls"file模塊group:定義文件/目錄的屬組owner:定義文件/目錄的屬主mode:定義文件/目錄的權(quán)限path:必選項(xiàng),定義文件/目錄的路徑recurse:遞歸設(shè)置文件的屬性,只對(duì)目錄有效state:定義文件狀態(tài)directory:如果目錄不存在,創(chuàng)建目錄touch:如果文件不存在,創(chuàng)建一個(gè)新文件absent:刪除文件或目錄link:創(chuàng)建軟鏈接示例:ansibletest-mfile-a"src=/etc/fstabdest=/tmp/fstabstate=link"ansibletest-mfile-a"path=/tmp/fstabstate=absent"ansibletest-mfile-a"path=/tmp/teststate=touch"yum模塊enablerepo:啟用某個(gè)源name:要進(jìn)行操作的軟件包的名字,也可以傳遞一個(gè)url或者一個(gè)本地的rpm包的路徑state:定義軟件包狀態(tài)present:安裝absent:刪除latest:安裝最新的示例:ansibletest-myum-a'name=httpdstate=latest'
service模塊arguments:給命令行提供一些選項(xiàng)enabled:是否開機(jī)啟動(dòng)yes|noname:必選項(xiàng),服務(wù)名稱runlevel:運(yùn)行級(jí)別sleep:如果執(zhí)行了restarted,則在stop和start之間沉睡幾秒鐘state:對(duì)當(dāng)前服務(wù)執(zhí)行啟動(dòng),停止、重啟、重新加載等操作(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=restartedargs=eth0"Ansible基礎(chǔ)使用1自動(dòng)化運(yùn)維平臺(tái)2Ansible服務(wù)部署3playbook基礎(chǔ)目錄45playbook流程控制6templates模板7roles角色8Ansible故障排查playbook變量定義變量yaml文件中定義的變量變量名:僅能由字母、數(shù)字和下劃線組成,且只能以字母開頭,通過vars聲明變量key:value用”-“表示數(shù)組中的一個(gè)元素,通過空格控制子項(xiàng)縮進(jìn)定義數(shù)組:字典內(nèi)變量設(shè)置大括號(hào)必須有,例
user:{id:1001,name:tom,age:18}通過"{{變量名.子項(xiàng)}}"進(jìn)行調(diào)用變量類型外部變量:在命令行使用-e/--extra-vars參數(shù)賦值變量:-e“變量名=變量值”,引用變量{{變量名}}變量類型資產(chǎn)清單(inventory)變量:在/etc/ansible/hosts文件中定義的變量。針對(duì)單個(gè)主機(jī)定義變量針對(duì)主機(jī)組定義變量[kylinserver:vars]ansible_python_interpreter=/usr/bin/python3變量類型facts變量:執(zhí)行setup模塊所返回的主機(jī)相關(guān)參數(shù),其中的KEY都可以被當(dāng)作變量引用ansiblekylinserver-msetup
引用facts變量{{參數(shù)名.參數(shù)子項(xiàng)}}例:{{ansible_ens33.ipv4.address}}=89變量類型register關(guān)鍵字變量,這個(gè)變量的值就是當(dāng)前任務(wù)執(zhí)行的輸出結(jié)果引用注冊(cè)變量要用{{變量名.stdout}}表示標(biāo)準(zhǔn)輸出。----hosts:load-noderemote_user:roottasks:-name:showdateshell:"/bin/date"
register:date#注冊(cè)一個(gè)變量-name:Recordtimelogshell:"echo{{date.stdout}}>/tmp/date.log"在命令行中定義的變量(即用-e或--extra-vars定義的變量);在Inventory中定義的連接變量(比如:ansible_ssh_user);大多數(shù)的其他變量(命令行轉(zhuǎn)換、play中的變量、included的變量、role中的變量等);在Inventory中定義的其他變量;Facts變量;“Role”默認(rèn)變量,這個(gè)是默認(rèn)的值,很容易喪失優(yōu)先權(quán)。變量優(yōu)先級(jí)排序Ansible基礎(chǔ)使用1自動(dòng)化運(yùn)維平臺(tái)2Ansible服務(wù)部署3playbook基礎(chǔ)目錄4playbook變量5playbook流程控制6templates模板7roles角色8Ansible故障排查playbook流程控制條件判斷關(guān)鍵字when后面的條件滿足時(shí)(結(jié)果為true時(shí)),才會(huì)執(zhí)行當(dāng)前任務(wù)模塊。----hosts:load-node,imgremote_user:roottasks:-name:"touchflagfile"
command:"touch/tmp/this_is_{{ansible_distribution}}_system"
when:(ansible_distribution=="KylinLinuxAdvancedServer"andansible_distribution_major_version=='V10')or
(ansible_distribution=="CentOS"andansible_distribution_major_version=='7')block模塊:定義運(yùn)行的主任務(wù);rescue模塊:定義在block任務(wù)失敗后,執(zhí)行的任務(wù);always模塊:任何時(shí)候都獨(dú)立執(zhí)行的任務(wù)。條件判斷循環(huán)語句循環(huán)類型關(guān)鍵字標(biāo)準(zhǔn)循環(huán)with_items遍歷字典with_dict遍歷目錄文件with_fileglob遍歷文件列表的內(nèi)容with_file嵌套循環(huán)with_nested并行遍歷列表with_together遍歷列表和索引with_indexed_items重試循環(huán)until查找第一個(gè)匹配文件with_first_found隨機(jī)選擇with_random_choice在序列中循環(huán)with_sequence循環(huán)語句標(biāo)準(zhǔn)循環(huán)with_items:需要重復(fù)執(zhí)行的任務(wù),對(duì)于迭代項(xiàng)的引用,固定變量名為“item”,而后在task中使用with_items給定的迭代的元素列表。-name:addseveralusersuser:name={{item.name}}state=presentgroup={{item.group
}}
with_items:-{name:
'testuser1',group
:
'wheel'}-{name:
'testuser2',group
:
'root'}tasks:-name:unstallwebpackagesyum:name={{item}}state=absent
with_items:-httpd-php-php-mysql循環(huán)語句遍歷字典with_dict----hosts:load-noderemote_user:roottasks:-name:printphonerecordsdebug:
msg:"User{{item.key
}}is{{item.value.name}}({{item.value.phone}})"
with_dict:{
'alice':{'name':'AliceAppleworth','phone':},'bob':{'name':'BobBanarama','phone':}
}循環(huán)語句遍歷目錄文件with_fileglob例:遍歷/root/sh/目錄下的所有文件,并將其拷貝至目標(biāo)主機(jī)。----hosts:host-noderemote_user:rootgather_facts:falsetasks:-name:createadirectoryfile:path=/root/scriptstate=directoryignore_errors:yesregister:result-name:copysomescriptscopy:src={{item}}dest=/root/scriptowner=rootmode=600when:result|success
with_fileglob:-/root/sh/*template模板文件06template模塊template是ansible中的一個(gè)模塊,其提供了動(dòng)態(tài)配置服務(wù)功能,template模板文件使用jinja2語言編寫,支持多種條件判斷、循環(huán)、邏輯運(yùn)算、比較操作等。1、template文件放在和playbook文件同級(jí)的templates目錄下(手動(dòng)創(chuàng)建),這樣playbook文件中可以直接引用,會(huì)自動(dòng)去找這個(gè)文件。如果放在別的地方,也可以通過絕對(duì)路徑去指定。2、模板文件后綴名為.j2。.├──config.yml└──templates └──nginx.conf.j2#config.yml----hosts:vmtasks:-name:templateconfigtoremotehosts
template:src=nginx.conf.j2
dest=/etc/nginx/nginx.confnotify:restartnginxhandlers:-name:restartnginxservice:name=nginxstate=restarted調(diào)用template模板文件playbook文件通過template模塊的src參數(shù)調(diào)用模板文件,拷貝到遠(yuǎn)程主機(jī)后記得要修改名稱。template模板文件編寫規(guī)則在jinja2語言中定義的變量由:數(shù)字、字母、下劃線和點(diǎn)組成,并且不能以數(shù)字開頭。模板文件里調(diào)用變量:{{var}}可以使用點(diǎn)(.)來訪問變量的屬性,例:{{var.attr}};也可以使用“下標(biāo)”法([]),例
{{var['attr']}}
vimnginx.conf.j2worker_processes{{ansible_processor_vcpus}}; listen{{nginxport}};template模板文件編寫規(guī)則j2文件中可使用流程控制for循環(huán),實(shí)現(xiàn)動(dòng)態(tài)生成文件功能{%foriinEXPR%}...{%endfor%}示例:{%foriinrange(1,10)%}server_nameweb{{i}};{%endfor%}template模板文件編寫規(guī)則j2文件中可使用流程控制for循環(huán)和if條件判斷,實(shí)現(xiàn)動(dòng)態(tài)生成文件功能{%ifi==EXPR%}...{%endif%}示例:{%ifi==’v10’)%}server_nameweb{{i}};{%endif%}roles角色07Roles角色roles是多個(gè)角色的集合,通過分別將變量、文件、任務(wù)、模板及處理器放置于單獨(dú)的目錄中,并可以便捷地include它們的一種機(jī)制。一般用于大型構(gòu)建服務(wù)的場(chǎng)景中。Roles角色roles目錄結(jié)構(gòu):web-role.ymlroles/└──nginx├──files│└──main.yml├──tasks│├──install.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates
│└──handles
└──main.yml└──
php├──files│└──main.yml├──tasks│├──install.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates
└──handles
└──main.yml└──myslq
├──files│└──main.yml├──tasks│├──install.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates└──handles└──main.yml└──base
├──files│└──main.yml
├──tasks│├──firewall.yml│├──install.yml│├──main.yml│├──repo.yml│└──useradd.yml└──vars└──main.yml└──rsync
├──files│└──main.yml├──tasks│├──groupadd.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates└──handles└──main.yml└──config.j2│└──config.j2└──config.j2└──config.j2││Roles角色創(chuàng)建roles角色的步驟(1)創(chuàng)建以roles命名的目錄;(2)在roles目錄中分別創(chuàng)建以各角色名稱命名的目錄,如nginx,mysql等;(3)在每個(gè)角色命名的目錄中分別創(chuàng)建defaults、files、handlers、meta、tasks、templates、tests和vars子目錄;用不到的子目錄可以創(chuàng)建為空目錄,也可以不創(chuàng)建;(4)在playbook文件中,調(diào)用各角色Roles角色playbook調(diào)用角色調(diào)用角色方法1:#web-role.yml----hosts:websrvsremote_user:root
roles:-mysql-nginxplaybook調(diào)用角色調(diào)用角色方法2:鍵role用于指定角色名稱,后續(xù)的k/v用于傳遞變量給角色#web-role.yml----hosts:allremote_user:root
roles:-mysql-{role:nginx,username:nginx}playbook調(diào)用角色調(diào)用角色方法3:還可基于條件測(cè)試實(shí)現(xiàn)角色調(diào)用#web-role.yml----hosts:allremote_user:root
roles:-{role:nginx,username:nginx,when:ansible_distribution_major_version==‘v10’}playbook調(diào)用角色roles中tags使用#web-role.yml----hosts:websrvsremote_user:root
roles:-{role:nginx,tags:['nginx','web'],when:ansible_distribution_major_version=="6“}-{role:php,tags:['php','web']}-{role:mysql,tags:['mysql','db']}-{role:rsync,tags:['rsync','bk']}ansible-playbook--tags="nginx,mysql"web-role.ymlAnsible基礎(chǔ)使用1自動(dòng)化運(yùn)維平臺(tái)2Ansible服務(wù)部署3playbook基礎(chǔ)目錄4playbook變量5playbook流程控制6templates模板7roles角色8Ansible故障排查templates模板template模塊template是ansible中的一個(gè)模塊,其提供了動(dòng)態(tài)配置服務(wù)功能,template模板文件使用jinja2語言編寫,支持多種條件判斷、循環(huán)、邏輯運(yùn)算、比較操作等。1、template文件放在和playbook文件同級(jí)的templates目錄下(手動(dòng)創(chuàng)建),這樣playbook文件中可以直接引用,會(huì)自動(dòng)去找這個(gè)文件。如果放在別的地方,也可以通過絕對(duì)路徑去指定。2、模板文件后綴名為.j2。.├──config.yml└──templates └──nginx.conf.j2#config.yml----hosts:vmtasks:-name:templateconfigtoremotehosts
template:src=nginx.conf.j2
dest=/etc/nginx/nginx.confnotify:restartnginxhandlers:-name:restartnginxservice:name=nginxstate=restarted調(diào)用template模板文件playbook文件通過template模塊的src參數(shù)調(diào)用模板文件,拷貝到遠(yuǎn)程主機(jī)后記得要修改名稱。template模板文件編寫規(guī)則在jinja2語言中定義的變量由:數(shù)字、字母、下劃線和點(diǎn)組成,并且不能以數(shù)字開頭。模板文件里調(diào)用變量:{{var}}可以使用點(diǎn)(.)來訪問變量的屬性,例:{{var.attr}};也可以使用“下標(biāo)”法([]),例
{{var['attr']}}
vimnginx.conf.j2worker_processes{{ansible_processor_vcpus}}; listen{{nginxport}};template模板文件編寫規(guī)則j2文件中可使用流程控制for循環(huán),實(shí)現(xiàn)動(dòng)態(tài)生成文件功能{%foriinEXPR%}...{%endfor%}示例:{%foriinrange(1,10)%}server_nameweb{{i}};{%endfor%}template模板文件編寫規(guī)則j2文件中可使用流程控制for循環(huán)和if條件判斷,實(shí)現(xiàn)動(dòng)態(tài)生成文件功能{%ifi==EXPR%}...{%endif%}示例:{%ifi==’v10’)%}server_nameweb{{i}};{%endif%}roles角色07Roles角色roles是多個(gè)角色的集合,通過分別將變量、文件、任務(wù)、模板及處理器放置于單獨(dú)的目錄中,并可以便捷地include它們的一種機(jī)制。一般用于大型構(gòu)建服務(wù)的場(chǎng)景中。Roles角色roles目錄結(jié)構(gòu):web-role.ymlroles/└──nginx├──files│└──main.yml├──tasks│├──install.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates
│└──handles
└──main.yml└──
php├──files│└──main.yml├──tasks│├──install.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates
└──handles
└──main.yml└──myslq
├──files│└──main.yml├──tasks│├──install.yml│├──config.yml│├──main.yml│├──restart.yml│└──templates└──handles└──main.yml└──base
├──files│└──main.yml
├──tasks│├──firewall.yml
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版昆明公租房電子合同租賃合同爭(zhēng)議解決途徑與流程2篇
- 二零二五版教育培訓(xùn)項(xiàng)目合同范本共二十項(xiàng)條款3篇
- 2025版工業(yè)園區(qū)害蟲防治與安全防護(hù)服務(wù)協(xié)議3篇
- 2025版信用社小微企業(yè)貸款業(yè)務(wù)合作協(xié)議3篇
- 酒店管理公司2025年度戰(zhàn)略合作協(xié)議2篇
- 2025版臨時(shí)工技能培訓(xùn)免責(zé)合同4篇
- 2025年度建筑裝修工程合同標(biāo)的質(zhì)量驗(yàn)收:1、客戶居住環(huán)境4篇
- 2025水面承包權(quán)經(jīng)營與管理合同3篇
- 上海市房屋預(yù)售合同6篇
- 2025年度社區(qū)衛(wèi)生服務(wù)中心全科門診承包運(yùn)營合同4篇
- 物業(yè)民法典知識(shí)培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 《萬方數(shù)據(jù)資源介紹》課件
- 第一章-地震工程學(xué)概論
- 2024年浙江省中考數(shù)學(xué)試題及答案
- 2025屆江蘇省南京高考?xì)v史一模試卷含解析
- 浙江省金華市金東區(qū)2022-2024年中考二模英語試題匯編:任務(wù)型閱讀
- 青島版(五四制)四年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)課件
- 大健康行業(yè)研究課件
- 租賃汽車可行性報(bào)告
- 計(jì)算機(jī)輔助設(shè)計(jì)AutoCAD繪圖-課程教案
評(píng)論
0/150
提交評(píng)論