




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Ansible使用手册目录目录Ansible介绍简介设计原则工作原理架构图 原理图 重要组件Ansible Module Plugin Playbook Inventory Role其他Ansible使用安装环境要求安装过程 安装结果Ansible命令管理Inventory动态配置Inventory 配置无登录 通配模式 Pattern常用模块command shell scriptraw service ping setup file copyauthorized_key PlaybooksPlaybooks组成要素Playbooks执行ansible-playbook命令说明 常用模块Te
2、mplate set_fact pause wait_for assemble add_host group_by get_url debug failsynchronize mountfilesystem其他模块变量的使用Role和Galaxy使用方式Role内容解析典型场景支持Windows 更新文件安装JDK配置Tomcat 其他典型操作最佳实践内容组织目录划分动态加载Inventory区分Stage和Production 使用组和主机变量使用Role管理Playbook 保持简单版本控制Ansible Pull 术语 YAML其他Ansible Tower Anible的Pull模式
3、常见问题资料Ansible介绍简介Ansible是一款简单的自动化运维工具,重点解决自动化应用部署、自动化配置管理、自动化云服务管理。简单理解Ansible 是一款批量的在远程服务器上执行命令的工具,支持Linux各个发行版和Windows系统。Ansible的两种使用方式:Ad-hoc 和Playbooks。设计原则1. 极简的安装过程和学习曲线2. 快速且可并行的管理机器3. 无Agent和额外的端口开销,使用现有的SSH协议4. 采用更人性化的语言描述基础设施5. 安全6. 可以使用多种动态语言进行模块扩展7. 无需root权限工作原理Ansible会根据命令或者playbook生成sh
4、ell或者python脚本,并推送到远程服务器上执行,然后自动删除shell,和其他自动化部署工具类似,都是批量的在远程服务器上执行命令。Ansible支持Push和Pull两种模式,Push即由Ansible管理端推送脚本到远程服务器上执行,Pull则为远程服务器主动到Ansible管理端拉取脚本执行。架构图原理图重要组件Ansible组件,作为插件和模块的运行平台,负责生成shellModule模块:包括service、file等模块和自定义模块,Ansible主要功能都是通过Module实现,用户可以添加扩展模块,常见模块如:ping、Plugin插件:对模块功能的补充,如连接插件、邮件
5、插件,其中连接插件实现Ansible连接到主机,除了SSH之外,Ansible还支持其他连接方式,如ZeroMQ、Local、LDAP、Kerberos等Playbook剧本:任务编排文件,定义一套完整的任务执行过程,由Ansible自动解释执行,这也是Ansible的重点功能,将部署过程剧本化Inventory主机:定义主机信息,可以分组,并且可以存在父子组,很方便的对主机进行分类,便于批量处理RoleRole表示一种具体的自动化部署场景,可以将别人的部署脚本,包括playbook 、变量等作为Role进行复用,如docker的安装即可作为一个Role。注:个人理解:Module是Ansib
6、le的业务功能载体,跟自动化部署相关的功能都在Module中实现,Plugin是Ansible为支持业务 功能需要的功能载体,需要连接host才能执行脚本,需要发邮件,这些功能和业务本身无关注:主机清单建议写程序从CMDB中获取,以保证主机信息的唯一性其他Ansible Tower:是Ansible的WebUI工具,收费,可以在Web界面中更好地管理Inventory、Playbook等,可以针对不同用户划分权限Ansible Galaxy:是Ansible的模板库,每一个模板就是一个Role,有各种软件的部署模板,都是用户贡献的,可以很方便的加载到本地进行使用,如安装Docker Regis
7、try的模板:ansible-galaxy install aalda.docker-registryAnsible使用Ansible简单理解就是批量的远程命令执行工具,在哪儿执行?怎么执行?执行什么?结果是什么?是我们需要关注的四个问题,这四个问题分别对应着Inventory的管理,模块的使用、Playbook的编写、典型场景。安装环境要求1. Python:2.6 or 2.72. OS:Linux的所有发行版3. 节点服务器也需要安装Python,要求:Python2.4及以后版本, 如果低于Python2.5需要再安装python-simplejson, 可以使用raw模块批量安装py
8、thon-simplejson,不支持Python3.0安装过程4. 从源码安装2.软件包安装5. PIP安装6. Vagrant安装$ sudo easy_install pip$ sudo easy_install pipCentOS:sudo yum install ansibleUbuntu:$ sudo apt-get install software-properties-common$ sudo apt-add-repository ppa:ansible/ansible$ sudo apt-get update$ sudo apt-get install ansible$ gi
9、t clone git:/ -recursive$ cd ./ansible$ source ./hacking/env-setup5.Docker安装Ansible需要安装一些依赖,建议使用Vagrant或者Docker的方式安装,安装详细参考,请安装结果Ansible安装完之后,则会在服务器上安装好Ansible件:ansible.cfg:Ansible配置文件,详细配置参考hosts:主机信息管理文件roles:场景库令工具(类似Git令工具),在/etc/ansible/下有以下几个文/etc/ansible是Ansible的数据目录,group_vars、host_vars等文件都可
10、以存放在该目录Ansible会安装如下命令:1. ansible:Ansible命令2. ansible-doc:用户查看Ansible模块帮助信息3. ansible-galaxy:从galaxyRole到本地4. ansible-playbook:执行Playbook5. ansible-pull:从Git上获取Playbook到本地,并执行6. ansible-vault:加密/Playbook相关的YAML文件Ansible不支持以Windows系统作为管理端,建议使用Vagrant安装AnsibleAnsible命令通过ansible -h可以查看ansible的所有命令,详细如下:
11、和Ansible Tower一起安装:$ vagrant init tower$ vagrant up$ vagrant sshad-hoc命令:在命令行中执行的ansible临时命令,当我们想快速执行某些指令又不想保存这些指令时可以使用ansible的这些命令,比如想知道webserver群组中那台服务器关机了,可以ansible webserver -m ping,即可查看结果,适用于临时任务,无需Playbook。在使用playbook之前最好多尝试命令进行临时性工作,以深入理解ansible的核心命令。默认使用root账户执行命令管理InventoryAnsible的Inventory
12、默认存储在/etc/ansible/hosts中 示例:vagrantansible-tower ansible$ ansible -h Usage: ansible <host-pattern> optionsOptions:-a MODULE_ARGS,-args=MODULE_ARGS 模块的参数,如commond模块的参数 ansible all -a “ls /home”-ask-become-passask for privilege escalation password-K, -ask-sudo-pass提示输入sudo密码-ask-vault-passask fo
13、r vault password-B SECONDS, -background=SECONDS在后台异步执行,适用于耗时任务,在设定的时间后再显示结果(default=N/A)-become-method=BECOME_METHODprivilege escalation method to use (default=sudo),valid choices: sudo | su | pbrun | pfexec | runas -become-user=BECOME_USERrun operations as this user (default=None)-c CONNECTION, -co
14、nnection=CONNECTION 连接类型 (default=smart)-e EXTRA_VARS, -extra-vars=EXTRA_VARS set additional variables as key=value or YAML/JSON-f FORKS, -forks=FORKSfork多少进行并发处理,(default=5)-i INVENTORY, -inventory-file=INVENTORY 指定hosts文件路径(default=/etc/ansible/hosts)-l SUBSET, -limit=SUBSET指定一个pattern,对<host_p
15、attern>已经匹配的主机进行二次过滤确-m MODULE_NAME, -module-name=MODULE_NAME 要执行的模块的名称(default=command)-M MODULE_PATH, -module-path=MODULE_PATH 要执行的模块的路径(default=None)-P POLL_INTERVAL, -poll=POLL_INTERVAL 当使用异步执行-B时,设置每隔多久显示一次结果,用于间隔查看命令执行情况(default=15)-private-key=PRIVATE_KEY_FILE私钥路径-R SU_USER, -su-user=SU_US
16、ERrun operations with su as this user (default=root)(deprecated, use become)-U SUDO_USER, -sudo-user=SUDO_USER (default=root)-T TIMEOUT, -timeout=TIMEOUTssh连接超时时间 (default=10)-t TREE, -tree=TREE将日志输出到该目录,日志文件名会议主机名命令-u REMOTE_USER, -user=REMOTE_USER ssh连接的用户名,默认为root-vault-password-file=VAULT_PASSWO
17、RD_FILE vault password file debugging)-k, -ask-pass提示输入ssh登录密码,使用密码验证登录时使用ansible all -u account -k-ask-su-passask for su password (deprecated, use become)-version显示版本-v, -verboseverbose mode (-vvv for more, -vvvv to enable connection-s, -sudo使用sudo运行命令-S, -surun operations with su (deprecated, use
18、become)-o, -one-line在一行中输出结果-list-hosts只打印出有哪些hosts会执行Playbook,而不是真正执行,适合确认目标主机是否正-h, -helpshow this help message and exit-C, -check只测试命令会改变什么内容,而不真正执行,适合验证命令结果-b, -becomerun operations with become (nopasswd implied)解释:1. Inventory的两个重要概念:分组(Group)和主机(Host)2. 中括号 表示分组,可以将多个host划分到一个组,也可以将一个host划分到多个
19、组3. webserver:vars表示的分组的参数,示例中表示webserver的所有host的ntp服务器的地址4. redis下的03:5309表示SSH的默认端口从22修改成了5309,如果所有host都修改了默认ssh端口,可以 在ansible.cfg中修改#remote_port = 225. server-a ansible_ssh_port=22 ansible_ssh_host=9 是采用参数来定义的host,名称server-a只针对这一台机器,server-a即为这台服务器的别名6. #号注释的内容说明的是host的父子分组,A
20、和B两个机房有很多的host,北京机房包含A和B两个机房,中国机房包含北京和 上海两个机房,以此实现组的分层管理7. serverlist www01:50 表示从01到50得所有机器的分组,字母也可用作排序,如db-a-f8. 其他参数:ansible_connection代表连接方式,ansible_ssh_user代表账户,参数主要是方便特殊需求的配置,建议 对远程服务器建立统一的配置,包括名称、账号、端口等9. 分组和主机的配置信息也可以存储在其他文件中,如组windows的账号密码等信息可以存在/etc/ansible/group_vars/windows中,主机server的信息可
21、以存在/etc/ansible/host_vars/server中,信 息都以YAML格式编写,示例内容如下:- #YAML格式要求ntp_server: 00#变量名:变量值动态配置InventoryInventory可以无需手动配置分组和主机,可以动态的从其他软件中获取,如CMDB、Cobbler、AWS等,Ansible Tower也06webserver 56webserver:vars ntp_server=74 database78redi
22、s 03:5309windows 8server ansible_ssh_port=22 ansible_ssh_host=9 serverlistwww01:50 #A机房#host1 #host2 #B机房#host3 #host4#北京机房:children#A机房#B机房#中国机房:children #北京机房#上海机房targetslocalhostansible_connection=localansible_connection=sshansible_ssh_user=mpdehaan ansible_connecti
23、on=sshansible_ssh_user=mdehaan采用数据库存储Inventory信息,也可以写程序从其他数据源获取数据配置无密码登录为了方便管理,使用SSH密钥认证,建立管理端与远程服务器的无密码连接,该过程会将管理端的公钥写入服务器端的.ssh 目录的authorized_keys文件步骤:1. 在管理端生成密码: sshkey-gen2. 将公钥推送到远程服务器: ssh-copy-id -i /.ssh/id_rsa.pub account5 ,其中account即为服务器上的账号,此处会提示输入account的密码3. 测试连接: ansible 10.
24、10.23.15 -u account -m ping ,反馈success即配置成功,此处的account即为服务器的账户,因为ansible命令默认使用root账号执行,如果是不是root账号,则需要使用-u account 特别指明,在ansible.cfg文件中可以修改默认账号 #remote_user = root注:在测试连接之前,需要将IP加入到/etc/ansible/hosts文件中,否则ansible命令无法识别host,将公钥批量的上传到服务器的命令:注:建议采用版本控制工具管理Inventory hosts文件,便于跟踪和复用Inventory的详细资料,包括详细参数列
25、表和说明,Inventory配置等请访问通配模式PatternPattern即表示要管理的一组远程服务器。ansible <pattern_goes_here> -m <module_name> -a <arguments>1. 指定的组名,机器名,IP,如webserver2. 通配符,包括all,*,*3. 关系模式1. 且 webservers:&staging,Web服务器,且必须在预发布环境中2. 或 webservers:dbservers,web服务器和数据库服务器都包括3. 非 webservers:!production,除生产环境
26、外的所有web服务器4. 组合模式:webservers:dbservers:&staging:!phoenix,在 webservers 或者 dbservers 组中,必须还存在于staging 组中,但是不在 phoenix 组中5. 正则表达式模式 Pattern官方资料常用模块Ansible有很多的模块,大类有Cloud Modules、Commands Modules、Database Modules、Files Modules、Inventory Modules、Messaging Modules、Monitoring Modules、Network Modules、No
27、tification Modules、Packaging Modules、Source Control Modules、System Modules、Utilities Modules、Web Infrastructure Modules、Windows Modules。摘取常用的模块进行说明,详细模块介绍,请访问。command作用:在远程主机上执行命令,command是ad-hoc模式下的默认模块,无需-m command进行指定参数:1. chdir:在执行指令之前,先切换到该指定的目录2. creates:表示一个文件名,当该文件存在,则该命令不执行ansible-doc -l:显示所
28、有模块名称及作用ansible-doc -s module_name:显示指定模块的各项参数ansible webserver -m authorized_key -a "user=account key="lookup('file','/home/vagrant/.ssh/id_rsa.pub')" state=present exclusive=yes" -u account -k3. removes:表示一个文件名,当该文件不存在,则该命令不执行4. free_form:要执行的linux指令示例:临时任务: ans
29、ible test -a "/sbin/reboot"Playbook:shell作用:在参数:节点上执行命令,shell使用/bin/sh命令执行1. chdir:在执行指令之前,先切换到该指定的目录2. creates:表示一个文件名,当该文件存在,则该命令不执行3. removes:表示一个文件名,当该文件不存在,则该命令不执行4. free_form:要执行的linux指令示例:script作用:将本地参数:转换到服务器上执行1. creates:表示一个文件名,当该文件存在,则该命令不执行2. removes:表示一个文件名,当该文件不存在,则该命令不执行3. f
30、ree_form:要执行的linux指令示例:raw作用:在主机上执行特殊命令适用场景:# Example from Ansible Playbooks- script: /some/local/script.sh -some-arguments 1234# Run a script that creates a file, but only if the file is not yet created- script: /some/local/create_file.sh -some-arguments 1234 creates=/the/created/file.txt # Run a s
31、cript that removes a file, but only if the file is not yet removed- script: /some/local/remove_file.sh -some-arguments 1234 removes=/the/removed/file.txt- shell: somescript.sh >> somelog.txt args:chdir: somedir/ creates: somelog.txt- command: /usr/bin/make_database.sh arg1 arg2 args:chdir: som
32、edir/creates: /path/to/database- command: /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database说明:第一种写法是切换到somedir/目录,当/path/to/database文件存在时才执行/usr/bin/make_database.sh文件;第二种 没有切换目录1. 用于安装python-simplejson,因为其他模块都依赖python-simplejson,只有通过raw模块安装2. 用于路由器等无python环境的设备service作用:用于管理服务参数:1. argu
33、ments:给命令行提供一些选项(参数)2. enabled:是否开机启动 yes|no3. name:必选项,服务名称4. runlevel:Linux的运行级别5. sleep:如果执行了restarted,在则stop和start之间沉睡几秒钟6. state:对当前服务执行启动,停止、重启、重新加载等操作(started,stopped,restarted,reloaded)示例:ping作用:尝试连接主机并在后返回"pong",用于检测主机是否存活setup作用:查看主机的基本信息,在Playbook中使用setup获取系统信息作为任务的参数,在查看某台主机的配置
34、时也很有用。 在执行Playbook时默认会先执行setup模块获取系统信息参数:1. filter:只输出符合filter要求的fact信息示例:注:官网资料中的fact即表示系统信息file作用:用于配置文件、系统连接、目录的属性,删除文件、系统连接、目录。参数:# Display facts from all hosts and store them indexed by I(hostname) at C(/tmp/facts). ansible all -m setup -tree /tmp/facts# Display only facts regarding memory foun
35、d by ansible on all hosts and output them. ansible all -m setup -a 'filter=ansible_*_mb'# Display only facts returned by facter. ansible all -m setup -a 'filter=facter_*'# Display only facts about certain interfaces. ansible all -m setup -a 'filter=ansible_eth0-2'ansible webs
36、ervers -m pingansible test -m service -a "name=httpd state=started enabled=yes" ansible test -m service -a "name=foo pattern=/usr/bin/foo state=started" ansible test -m service -a "name=network state=restarted args=eth0".5.6.group:定义文件/目录的属组 owner:定义文件/目录的属主(所有者)
37、 mode:定义文件/目录的权限,如u=rw,g=r,o=r path:必选项,定义文件/目录的路径recurse:递归设置文件的属性,只对目录有效(state=director)state:定义文件状态,可选项:file、link、directory、hard、touch、absent1. directory:如果目录不存在,创建目录2. touch:如果文件不存在,创建一个新文件3. absent:删除文件或目录示例:copy作用: 参数:本地文件到主机,fetch命令正好相反,从主机文件到本地src:本地源文件或者目录dest:目标文件或者目录backup:覆盖之前,是否备份原文件,ye
38、s/no owner:设定文件/目录的属主group:设定文件/目录的属组mode:设定文件/目录的权限.5.6.示例:authorized_key作用:添加或者删除authorized_key文件中的公钥,已完成SSH密钥配对参数:1. exclusive:是否删除未指明的公钥,慎用2. key:公钥地址,可以是URL,也可以是本地路径,必输项3. path:authorized_keys的位置4. state:present即添加,absent即删除5. user:主机上的账户,必输项示例:ansible test -m copy -a "src=/srv/myfi
39、les/foo.conf dest=/etc/foo.conf owner=foo group=foo mode=0644" ansible test -m copy -a "src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes"ansible test -m copy -a "src=/srv/myfiles/dir dest=/etc/destdir"ansible test -m file -a "src=/etc/fsta
40、b dest=/tmp/fstab state=link" ansible test -m file -a "path=/tmp/fstab state=absent"ansible test -m file -a "path=/tmp/test state=touch"PlaybooksPlaybooks是Ansible的配置、部署、编排语言,它可以描述一系列的任务。Ansible是一个运行任务的工具平台,Playbooks才是的方案,也是对运维要求较高的地方。就像它的名字一样,我们需要编写出一份的剧本,这样才能高效的完成自动化部署。Play
41、books采用YAML的语法结构。Playbook和Ansible的深入理解图Playbooks组成要素# Example using key data from a local file on the management machine- authorized_key: user=key=" lookup('file', '/home/.ssh/id_rsa.pub') "# Usingurl as key source- authorized_key: user=key=# Using alternate directory locat
42、ions:- authorized_key: user=key=" lookup('file', '/home/.ssh/id_rsa.pub') " path='/etc/ssh/authorized_keys/'manage_dir=no# Using with_file- name: Set up authorized_keys for the deploy user authorized_key: user=deploykey=" item "with_file:- public_keys/doe-
43、jane- public_keys/doe-john# Using key_options:- authorized_key: user=key=" lookup('file', '/home/.ssh/id_rsa.pub') " key_options='no-port-forwarding,host=""'# Set up authorized_keys exclusively with one key- authorized_key: user=root key=public_key
44、s/doe-jane state=present exclusive=yesPlaybook包含多个play包含多个Task=调用=Module属于AnsibleTask的具体内容是依靠Ansible的Module去实现的1. Target:定义目标主机组,使用的用户Target参数详解:1. hosts:定义的主机组2. user:执行该任务组的用户3. remote_user:与user相同4. sudo:如果设置为yes,执行该任务组的用户在执行任务的时候,获取root权限5. sudo_user:如果你设置user为tom,sudo为yes,sudo_user为jerry,则tom用户
45、则会获取jerry用户的权限6. connection:通过什么方式连接到主机,默认为ssh7. gather_facts:除非你明确说明不需要在主机上执行setup模块,否则默认会自动执行。如果你确实不需要setup模块所传递过来的变量,你可以禁用该选项,gather_facts: no2. Variable:定义需要使用的变量1. vars:直接在Playbook中定义变量名和值2. vars_files:将变量在文件中3. vars_prompt:采用交互的方式动态输入变量值具体使用方式请参照【变量的使用】3. Task:定义将要执行的任务列表1) name:任务名称2) action/
46、module:使用模块进行操作3) notify:任务执行完后调用的任务,名称同Handler中的任务名称- hosts: 5user: root4. Handler:定义任务执行完成后将调用的其他任务1) name:Handler的名称2) action/module:使用模块进行操作注意:在一个 play 里面无论对一个 handlers 通知调用多少次,都只是在所有任务执行完后执行一次示例:Playbooks执行ansible-playbook命令说明ansible-playbook命令和ansible命令主要的参数都一样,ansible-playbook特殊的参数如
47、下:ansible-playbook playbook.yml- name: install and configure apache hosts: webserversvars:http_port: 80max_clients: 200 remote_user: root tasks:- name: ensure apache is at the latest version yum: pkg=httpd state=latest- name: write the apache config filetemplate: src=/srv/httpd.j2 dest=/etc/httpd.co
48、nf notify:- restart apache- name: ensure apache is running (and enable it at boot) service: name=httpd state=started enabled=yeshandlers:- name: restart apacheservice: name=httpd state=restartedhandlers:- name: restart redisserivce: name=redis state=restarted enable=yestasks:- name: install apacheac
49、tion: apt-get name=httpd state=installed- name: configure apachecopy: src=/vagrant/test_ansible.yml dest=/etc/httpd/conf/httpd.conf- name: restart apache service:name:httpd state:restartednotify:- restart redis常用模块Playbook的任务都是调用ansible的模块来完成,和前面介绍的模块一样,重点介绍一些Playbook中常用的模块。Template作用:将模板文件中的变量,动态的替
50、换为参数值,然后将文件复制到远程主机上,而copy只复制文件。Template提供了框架式的配置文件,可以把Anisble需要的值插入到合适的位置。采用Jinja2语法进行定义,可以包含条件、循环、宏等功能。 参数:1. src:本地源文件或者目录2. dest:目标文件或者目录3. backup:覆盖之前,是否备份原文件,yes/no4. owner:设定文件/目录的属主5. group:设定文件/目录的属组6. mode:设定文件/目录的权限7. validate:在执行命令前先验证命令示例:set_fact作用:在远程主机上执行任务的过程中,计算需要的参数值,这些参数在play之间可以共
51、用参数: key_value:必输项,set_fact以key/value的形式进行配置示例:1、安装mysql,配置innodb的缓存池大小为系统内存的一半# Example from Ansible Playbooks- template: src=/mytemplates/foo.j2 dest=/etc/file.conf owner=bin group=wheel mode=0644# The same example, but using symbolic modes equivalent to 0644- template: src=/mytemplates/foo.j2 des
52、t=/etc/file.conf owner=bin group=wheel mode="u=rw,g=r,o=r"# Copy a new "sudoers" file into place, after passing validation with visudo- template: src=/mine/sudoers dest=/etc/sudoers validate='visudo -cf %s'-list-hosts打印出将会执行命令的主机,并不执行命令-list-tags显示出所有的标签-list-tasks打印出将会执行
53、的任务,并不执行-step一步一步执行任务,每一步都需要人工确认-syntax-check检查Playbook的语法,并不执行2、示例pause作用:在执行Playbook时暂定,可以指定暂停时间或者提示用户确认是否继续,当需要用户确认或者容易出错的地方可以使用暂定模块,这种方式可以让用户在部署的时候,灵活的参数:节奏,并整个交互过程。1. minutes:暂时时间(分)2. prompt:提示用户的信息3. seconds:暂停时间(秒)示例:# Example setting host facts using key=value pairs- set_fact: one_fact=&quo
54、t;something" other_fact=" local_var * 2 "# Example setting host facts using complex arguments- set_fact:one_fact: somethingother_fact: " local_var * 2 "# As of 1.8, Ansible will convert boolean strings ('true', 'false', 'yes', 'no') # to prope
55、r boolean values when using the key=value syntax, however it is still # recommended that booleans be set using the complex argument style:- set_fact:one_fact: true other_fact: false- hosts: mysqlservers tasks:- name: install MySqlyum: name=mysql-server state=installed- name: Calculate InnoDB buffer pool sizeset_fact: innodb_buffer_pool_size_mb=" ansible_memtotal_mb /2 "- name: Configure MySQLtemplate: src=templates/f.j2 dest=/etc/f owner=root group=root mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园足球复审汇报
- 生物细胞研究
- 私营医院市场营销部升职晋升管理体系
- 体细胞克隆猴
- 山西省山西大学附属中学2026届化学高三上期末学业质量监测试题含解析
- 生产管理半年度工作汇报
- 数学大政方针讲解
- 实验室周报汇报
- 细胞的电活动
- 烧伤患者营养治疗指南
- 软件开发项目进展汇报
- 2025贵州航空产业城集团股份有限公司旗下子公司贵州安立航空材料有限公司面向社会招聘61人笔试参考题库附带答案详解
- 摄影提成管理办法
- 人工智能赋能基础教育应用蓝皮书 2025
- 2025广东南粤银行资金运营中心招聘考前自测高频考点模拟试题带答案详解
- 磷石膏砌块项目可行性研究报告
- 现场调试合同协议书模板
- 钢结构门头专项施工方案
- 诚通证券股份有限公司招聘笔试题库2025
- 组织部单位档案管理制度
- 植物源蛋白替代技术-洞察及研究
评论
0/150
提交评论