「DevOps系列]为什么我们使用Terraform 而不使用Puppet, Ansible

「DevOps系列]为什么我们使用Terraform 而不使用Puppet, Ansible,第1张

本篇文章是深入理解Terraform系列的第一部分。在介绍文章中,我们讨论了为什么每家互联网软件公司都应该使用基础设施即代码(IAC)。那么本篇,我们打算讨论下为什么我们选择Terraform 作为我们的IAC 工具。

如果你在网上搜索“instrastructure-as-code”,很容易看到很多受欢迎的工具:

筛选出它们中你应该使用哪个不是很容易。所有这些上述工具都可以用于基础设施即代码。它们都是开源的,背靠庞大的贡献者社区,可以很好配合各种不同的云服务商。它们都提供商业支持,提供良好的文档——在官方文档和社区资源方面(比如博客文章和StackOverflow问答)。

本篇文章,我们会分成几个特定原因来解释为什么我们会选择Terraform作为IAC工具。与所有技术决策一样,这是一个权衡和优先级的问题,虽然您的特定优先级可能与我们的不同,但我们希望分享我们的思维过程将帮助您做出自己的决定。以下是我们考虑的主要权衡因素:

Chef, Puppet, Ansible, and SaltStack 都是配置管理工具,这意味着它们设计初衷都是在现有的服务器上安装和管理软件。CloudFormation 和 Terraform 是配置(provisioning)工具,这意味这它们的设计初衷是配置服务器本身的(以及基础设施的其他部分,比如负载均衡器,数据库,网络配置等),将配置这些服务器的工作留给其他工具。这两类工具互相不排斥的。因为大多数配置管理工具可以在某种程度上多一些配置工作而大多数配置工具也可以在某种程度上做配置管理的工作。但是聚焦于配置管理或者配置意味着,这些工具对于特定类型的任务会更加合适。

想Chef,Puppt,Ansible 这样的配置管理工具默认针对一种可变的基础设施范例。比如,如果你告诉Chef 安装一个新版本的OpenSSL,它就会在你现有的服务器上运行软件更新并且就地生效。随着时间推移,你会更新的更多,每台服务器都会构建一个唯一的修改 历史 。这通常会导致称为配置漂移或者误差的现象,其中每个服务器与所有其他服务器略有不同,导致难以诊断且几乎不可能再现的细微配置错误。

如果你正在使用像Terraform这样的配置工具来部署由Docker 或者 Packer创建的镜像,那么每次"修改"事实上都是一次新服务器的部署(就像是函数式编程中每次变量的修改事实上会返回新的变量)。比如,当我们部署一个新版本的OpenSSL,你会用装有新版本OpenSSL的Packer或者Docker来创建镜像,然后在整组新服务器中部署那个镜像,同时卸载老的镜像。这种方法减少了配置偏差问题的可能性,使得了解服务器上运行了哪些软件变得更加容易,同时可以让你任何时候都可以轻松部署任何版本的软件。当然,也可以强制配置管理工具来做不可变部署。但是对这些工具来说,这不是惯用的方式。不管怎样,使用配置工具都是一种更加自然的方式。

Chef和Ansible鼓励一种程序风格,您可以编写代码,逐步指定如何实现预期状态。 Terraform,CloudFormation,SaltStack和Puppet都鼓励更具说明性的风格,您可以编写指定所需最终状态的代码,IAC工具本身负责确定如何实现该状态。

例如,假设您要部署10台服务器(AWS术语中的“EC2 Instances”)来运行应用程序的v1版本。以下是使用过程方法执行此 *** 作的Ansible模板的简化示例:

表面上看,这两种方法可能看起来相似,当您最初使用Ansible或Terraform执行它们时,它们将产生类似的结果。有趣的是,当您想要进行更改时会发生什么。

例如,假设流量增加,并且您希望将服务器数量增加到15。使用Ansible,您之前编写的过程代码就没法使用了;如果您刚刚将服务器数量更新为15并重新启动该代码,那么它将部署15台新服务器,总共25台服务器!因此,您必须了解已部署的内容并编写一个全新的过程脚本来添加5台新服务器:

如果你执行了这个模板,Terraform会意识到它已经创建了10个服务器,因此它需要做的只是创建5个新服务器。实际上,在运行此模板之前,您可以使用Terraform的 plan 命令来预览它将进行的更改:

显然,上述例子是简化的。 Ansible允许您在部署新的EC2实例之前使用标签来搜索现有的EC2实例(例如,使用instance_tags和count_tag参数),但是必须根据每个资源的情况为Ansible管理的每个资源手动找出这种逻辑。 过去的 历史 ,可能会令人惊讶地复杂化(例如,不仅通过标签,还可以通过图像版本,可用区域等查找现有实例)。 这突出了程序IAC工具的两个主要问题:

默认情况下,Chef,Puppet和SaltStack都要求您运行主服务器以存储基础设施的状态并分发更新。 每次要更新基础设施中的某些内容时,都使用客户端(例如,命令行工具)向主服务器发出新命令,主服务器将更新推送到所有其他服务器或那些服务器定期从主服务器中提取最新的更新。

主服务器提供了一些优点。 首先,它是一个单一的中心位置,您可以在其中查看和管理基础设施的状态。 许多配置管理工具甚至为主服务器提供Web界面(例如,Chef Console,Puppet Enterprise Console),以便更容易查看正在发生的事情。 其次,一些主服务器可以在后台连续运行,并强制执行您的配置。 这样,如果有人在服务器上进行手动更改,主服务器可以还原该更改以防止配置偏移。

但是,必须运行主服务器有一些严重的缺点:

Chef,Puppet和SaltStack对无主模式有不同程度的支持,您只需在每个服务器上运行代理软件,通常在一定周期内(例如,每5分钟运行一次的cron作业),并使用它从版本控制(而不是从主服务器)下拉最新更新。 这显着减少了变动的次数,但是,如下一节所述,这仍然留下了许多未答复的问题,尤其是关于如何配置服务器以及首先在其上安装代理软件的问题。

Ansible,CloudFormation,Heat和Terraform默认都是无主的。 或者,更准确一些,它们中的一些可能依赖于主服务器,但它已经是您正在使用的基础设施的一部分,而不是您必须管理的额外部分。 例如,Terraform使用云提供商的API与云提供商进行通信,因此在某种意义上,API服务器是主服务器,除了它们不需要任何额外的基础设施或任何额外的认证机制(即,只使用您的API密钥)。 Ansible的工作方式是通过SSH直接连接到每个服务器,因此,您不必再运行任何额外的基础结构或管理额外的身份验证机制(即只使用SSH密钥)。

Chef,Puppet和SaltStack都要求您在要配置的每台服务器上安装代理软件(例如,Chef Client,Puppet Agent,Salt Minion)。 代理通常在每个服务器的后台运行并负责

安装最新的配置管理更新。

这有一些缺点:

再强调一次,Chef,Puppet和SaltStack都对无代理模式(例如,salt-ssh)有不同程度的支持,但是这些通常感觉它们是作为事后的想法加入的,并不总是支持完整的配置管理工具的功能集。这就是为什么Chef,Puppet和SaltStack的默认或惯用配置几乎总是包含一个代理,通常也包含一个master。

所有这些额外的动态部分都会在您的基础架构中引入大量新的故障模式。 每次凌晨3点收到错误报告时,您都必须弄清楚它是否是应用程序代码,IAC代码,配置管理客户端,主服务器或者服务器中的错误。 客户端与主服务器通信,或者其他服务器与主服务器通信的方式,或者

Ansible,CloudFormation,Heat和Terraform不要求您安装任何额外的代理。 或者,更准确一些,它们中的一些需要代理,但这些代理通常已作为您正在使用的基础结构的一部分安装。 例如,AWS,Azure,Google Cloud和所有其他云提供商负责在每台物理服务器上安装,管理和验证代理软件。 作为Terraform的用户,您不必担心任何问题:您只需发出命令然后云服务商会在所有你的服务器上为你执行它们。 使用Ansible,您的服务器需要运行SSH守护程序,不管怎么样,这都会普遍运行在大多数服务器上的。

选择任何技术时要考虑的另一个关键因素是成熟度。 下表显示了每个IAC工具的初始发布日期和当前版本号(截至2019年5月)。

同样,这不是一个同类的比较,因为不同的工具有不同的版本控制方案,但一些趋势是明确的。 到目前为止,Terraform是此比较中最年轻的IAC工具。 它仍然是处于100版本之前,因此无法保证稳定或向后兼容的API,并且错误相对常见(尽管大多数都是次要的)。 这是Terraform最大的弱点:虽然它在短时间内变得非常受欢迎,但使用这种新的尖端工具所付出的代价是它不像其他一些IAC选项那样成熟。

虽然我一直在比较整个博客文章中的IAC工具,但事实是您可能需要使用多种工具来构建您的基础设施。 您看到的每个工具都有优点和缺点,因此您需要为正确的工作选择合适的工具。

以下是我见过的三种常见组合在很多公司都很好用:

配置 + 配置管理

示例:Terraform和Ansible。 您可以使用Terraform部署所有底层基础设施,包括网络拓扑(即VPC,子网,路由表),数据存储(例如,MySQL,Redis),负载均衡器和服务器。 然后,您使用Ansible在这些服务器之上部署您的应用程序。

这是一个简单的方法,因为没有运行额外的基础设施(Terraform和Ansible都是客户端应用程序),并且有很多方法可以使Ansible和Terraform一起工作(例如,Terraform为您的服务器添加特殊标签然后Ansible使用这些标签来查找服务器并对其进行配置。 主要缺点是使用Ansible通常意味着您编写了大量程序式代码,使用可变服务器,因此随着代码库,基础架构和团队的增长,维护可能会变得更加困难。

配置 + 服务器模板

示例:Terraform和Packer。您使用Packer将应用程序打包为虚拟机镜像。然后使用Terraform部署(a)具有这些虚拟机镜像的服务器和(b)基础架构的其余部分,包括网络拓扑(即VPC,子网,路由表),数据存储(例如,MySQL,Redis),和负载均衡器。

这也是一种简单的方法,因为没有运行额外的基础设施(Terraform和Packer都是仅客户端应用程序)。此外,这是一种不可变的基础架构方法,这将使维护更容易。但是,有两个主要缺点。首先,虚拟机可能需要很长时间才能构建和部署,这会降低迭代速度。其次,您可以使用Terraform实施的部署策略是有限的(例如,您无法在Terraform中本地实施蓝绿色部署),因此您要么最终编写大量复杂的部署脚本,要么转向编排工具,如下所述。

配置 + 服务器模板 + 编排

示例:Terraform,Packer,Docker和Kubernetes。 您使用Packer创建安装了Docker和Kubernetes的虚拟机映像。 然后使用Terraform部署(a)服务器集群,每个服务器运行此虚拟机镜像,以及(b)基础架构的其余部分,包括网络拓扑(即VPC,子网,路由表),数据存储( 例如,MySQL,Redis)和负载均衡器。 最后,当服务器集群启动时,它形成一个Kubernetes集群,用于运行和管理Dockerized应用程序。

这种方法的优点是Docker镜像构建相当快,您可以在本地计算机上运行和测试它们,并且您可以利用Kubernetes的所有内置功能,包括各种部署策略,自动修复,自动缩放, 等等。 缺点是增加了复杂性,无论是在运行额外的基础设施方面(Kubernetes集群都很难部署和运营,尽管大多数主要的云提供商现在提供托管的Kubernetes服务,可以减轻部分工作),还是学习、管理和debug额外的抽象层(Kubernetes,Docker,Packer)方面。

创建一个简单的 Pod 来用作测试环境

使用以下内容创建一个名为 busyboxyaml 的文件:

busyboxyaml

apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- name: busybox
image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always

然后使用此文件创建一个 pod 并验证其状态:

$ kubectl create -f busyboxyaml
pod "busybox" created
$ kubectl get pods busybox
NAME      READY     STATUS    RESTARTS   AGE
busybox   1/1       Running   0          <some-time>

一旦该 pod 运行,您就可以在环境中执行 nslookup。如果您看到如下所示的内容,则 DNS 工作正常。

$ kubectl exec -ti busybox -- nslookup kubernetesdefault
Server:    100010
Address 1: 100010
Name:      kubernetesdefault
Address 1: 10001

如果 nslookup 命令失败,请检查以下内容:

首先检查本地 DNS 配置

看一看 resolvconf 文件。(有关更多信息,请参阅 从节点继承 DNS 和 下面的 已知问题)

$ kubectl exec busybox cat /etc/resolvconf

验证搜索路径和名称服务器是否设置如下(请注意,搜索路径可能因不同的云提供商而异):

search defaultsvcclusterlocal svcclusterlocal clusterlocal googleinternal cgce_project_idinternal
nameserver 100010
options ndots:5

以下错误表明 kube-dns 附加组件或相关服务存在问题:

$ kubectl exec -ti busybox -- nslookup kubernetesdefault
Server:    100010
Address 1: 100010
nslookup: can't resolve 'kubernetesdefault'

或者

$ kubectl exec -ti busybox -- nslookup kubernetesdefault
Server:    100010
Address 1: 100010 kube-dnskube-systemsvcclusterlocal
nslookup: can't resolve 'kubernetesdefault'

检查 DNS pod 是否正在运行中

使用 kubectl get pods 命令验证 DNS pod 是否正在运行中。

$ kubectl get pods --namespace=kube-system -l k8s-app=kube-dns
NAME                    READY     STATUS    RESTARTS   AGE

kube-dns-v19-ezo1y      3/3       Running   0           1h

如果您看到没有 pod 正在运行中,或者 pod 已失败/已完成,那么在当前环境中,默认情况下可能不会部署 DNS 插件,您将不得不手动部署它。

检查 DNS pod 中的错误

使用 kubectl logs 命令查看 DNS 守护程序的日志。

$ kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c kubedns
$ kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c dnsmasq
$ kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c sidecar

看看有没有可疑的日志。字母 ‘W‘、’E‘、’F’ 表示警告、错误和失败。请搜索具有这些日志级别的条目,并使用 kubernetes 问题 来报告意外错误。

DNS服务起来了吗?

通过使用 kubectl get service 命令验证 DNS 服务已启动。

$ kubectl get svc --namespace=kube-system
NAME          CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE

kube-dns      100010      <none>        53/UDP,53/TCP        1h

如果您已经创建了该服务,或者应该在默认情况下创建它,但它没有出现,请参阅 调试服务 以获取更多信息。

DNS endpoints 是否暴露?

您可以使用 kubectl get endpoints 命令验证是否暴露了了 DNS endpoints。

$ kubectl get ep kube-dns --namespace=kube-system
NAME       ENDPOINTS                       AGE
kube-dns   10180317:53,10180317:53    1h

如果您没有看到 endpoints,请参阅 调试服务 文档中的 endpoints 部分 。

有关其他 Kubernetes DNS 示例,请参阅 Kubernetes GitHub 仓库中的 cluster-dns 示例。

已知问题
Kubernetes 安装不会将节点的 resolvconf 文件配置为默认使用集群 DNS,因为该过程本身就是发行版的。最终可能会这么实现。

Linux 的 libc 不可能摆脱(见 2005 年的这个 bug)只有 3 个 DNS nameserver 记录和 6 个 DNS search 记录的限制。Kubernetes 需要消耗 1 个 nameserver 记录和 3 条 search 记录。这意味着如果本地安装已经使用了 3 个 nameserver 或使用了多于 3 条 search,那么其中一些设置将会丢失。作为部分解决方法,节点可以运行 dnsmasq,它将提供更多 nameserver 条目,但没有更多的 search 条目。您也可以使用 kubelet --resolv-conf 标志。

如果您使用 Alpine 33 或更低版本作为您的基本镜像,由于 Alpine 的某些已知问题,DNS 可能无法正常工作。

kubernetes 调试 DNS 解析

@indexofire indexofire@gmailcom

使用 conda 构建独立的运行环境。

如果使用docker images来运行guppy

Nanopore 测序数据期初由于其错误率高而“闻名”,特别是对二聚体的区分。电信号数据随着处理软件和算法的不断改进,准确率得到不断的提升。HDF5数据进行basecalling的软件目前很多,采用的算法也各异。官方的如albacore,guppy等,第三方工具也有很多。

MinKnow软件 将fast5数据复制到服务器,使用guppy进行分析

guppy是一个是用

我们的实验室用一台Workstation挂载MinION测序仪,进行测序工作。基本配置是i7-7700k+16G+1TSSD/1T HD。一般可以做到70%以上的MinKnow实时basecalling。但是如果要使用guppy进行更准确的basecalling的话,就需要将数据同步到服务器上进行。

这里设置服务器端 fast5 数据目录存放于:$HOME/data/fast5;采用的是R94的测序芯片,各个不同测序芯片basecalling设置参数可以参见 这里

artic 的 demultiplex 命令是

针对MinKnow生成的数据

秘籍最好用
Left4Dead秘籍调出方法:
首先主界面 Options -> Keyboard/Mouse -> Allow Developers Console
(选项-> 键盘/鼠标- >允许开启控制台)
然后游戏中按 ~ 开启控制台,输入 Sv_Cheats 1 回车确认开启秘籍模式。
游戏秘籍
最后游戏中按 ~ 开启控制台,输入以下秘籍回车确认可得到对应效果
god 1 无敌
noclip 穿墙
sv_infinite_ammo 1 无限d药
give pistol 手q
give pumpshotgun 散dq
give autoshotgun 连散
give rifle M4/M16
give smg 乌兹
give hunting_rifle 狙击
give pipe_bomb 土制炸d
give molotov 燃烧瓶
give oxygentank 氧气瓶
give propanetank 煤气罐
give gascan 油桶
give pain_pills 药瓶
give first_aid_kit 急救包
give health 满血100
give ammo d药
z_spawn hunter(创造Hunter)
z_spawn smoker(创造smoker)
z_spawn boomer (创造boomer)
z_spawn tank (创造tank)
z_spawn witch(创造witch)
ent_fire !self setteam 1 变目击者
ent_fire !self setteam 2 变幸存者
ent_fire !self setteam 3 被感染
changelevel 地图名 快速改变地图
give物品名 制造指定物品(武器等等)
nb_blind 1 让僵尸看不到你,不过碰到僵尸的话他们还是会发现你
nb_delete_all 清除所有被感染的头目及幸存者
z_add 增加一只僵尸在游戏中
z_spawn bossname 增加一只Boss怪物,bossname分别是:
tank, boomer, smoker, witch, hunter
cl_drawhud 0 消除抬头状态列HUD
r_drawviewmodel 0 使你的武器隐形
sv_lan 0 启用Internet网络;
在 "Campaign Lobby" 界面开启
map地图名 启动网络服务器;
在 "Campaign Lobby" 界面开启
openserverbrowser 显示可用的服务器
z_difficulty "Easy" 游戏难度简单
z_difficulty "Normal" 正常
z_difficulty "Hard" 困难
z_difficulty "Impossible" 专家
noclip "1" 穿墙模式+随心所欲的飞
director_force_panic_event --->这就是僵尸爆走事件。(以下的事件)
survivor_burn_factor_expert "015" ---被火烧得爽度 越高越痛 其中 expert是专家(easy-简单)
survivor_crouch_speed "999" ---蹲著的速度
survivor_friendly_fire_factor_expert "01" ---打队友痛不痛 expert一样专家,可自行修改
director_panic_forever "1" 就一直来怪事件(例如打到车子的警铃,就一直来)
z_common_limit "100" 同时出现怪物的数量,辅助上一个
z_mega_mob_size "120" 不理他XD
rescue_min_dead_time "3" 人死掉后3秒就可以出现在任一房间给人救
survivor_revive_health "75" 躺在地上被人拉起来的血量
survivor_revive_duration "175" 拉人起来的时间175秒
tongue_victim_max_speed "80" smoker吐舌头拉你的速度
z_non_head_damage_factor_expert "11" 如果不是打头的伤害(11是倍数,小q打脚一级必杀,如果改成-1,那就一定要抱头才会死)
nb_gravity "125" 怪物的重力,越高掉下来越快。
director_force_witch "2" 每次出现事件(打到警铃,或萤幕出现等待救援的时候)的女巫量
director_force_tank "1" 同上 是Tank
first_aid_kit_use_duration "1" 用急救包的时间 ,这里是1秒救治疗好了。
director_build_up_min_interval "0" 怪物产出得间隔
director_special_battlefield_respawn_interval "10" vs的复活时间
director_special_initial_spawn_delay_min "10" 事件与事件间的休息时间,0就是怪物狂来
director_special_initial_spawn_delay_max "10" 同上
director_special_initial_spawn_delay_max_extra "10" 同上
z_acquire_far_range "9000" 僵尸可以看到你的距离 9000 =超远
z_acquire_far_time "05" 看到你之后经过"05"秒,就会往你那里冲,如果改成0就直接冲
z_acquire_near_range "500" 你靠近怪物的距离500
z_acquire_near_time "0" 在上面的距离内他通像你的反应时间
z_mob_spawn_max_size "60"
z_mob_spawn_min_size "20"
z_must_wander "1" 0:预设 1:僵尸永远不会做下或躺下 2:僵尸永远都躺下
z_health "200" 僵尸的血量
z_speed "50" 僵尸的速度
z_walk_speed "200" 僵尸慢走的速度
以下内容请添加在servercfg内
//组成员游戏(0为公共游戏,任何人都可以加入;1为没人时仅限组成员加入,组成员加入后他们
的非组成员好友也能加入;2为永远只有组成员可以加入游戏,即使是他们的好友,只要不是本组
成员就不能加入游戏)
sm_cvar sv_steamgroup_exclusive 0
//地区代码: 0 - 美国东海岸, 1 - 美国西海岸, 2 - 南美洲, 3 - 欧洲, 4 - 亚洲, 5 - 澳大利
亚, 6 - 中东, 7 - 非洲, 255 - 世界
sm_cvar sv_region 4
//只能在游戏大厅连接
sm_cvar sv_allow_lobby_connect_only 0
//-----------------------------------------
//最大支持玩家数量
sm_cvar sv_visiblemaxplayers 16
//服务器告知外界的最大玩家数(该参数不会影响上面的参数,只是显示在服务器列表信息中)
sm_cvar sv_maxplayers 6
//-----------------------------------------
//连接速率,默认10000(设20000以上是没有任何意义的,甚至会降低网络性能。)
sm_cvar rate 12000
//每秒客户端发给服务器的数据包数量,设置过高没什么大坏处,只是浪费了你的带宽。
sm_cvar sv_cl_cmdrate 30
//每秒服务器发给客户端的数据包数量,如果服务器设定每秒更新发送30次数据,你设30就正好
sm_cvar sv_cl_updaterate 30
//-----------------------------------------
//地图模式"coop(合作),versus(对抗),survival(生存)"
//sm_cvar sv_gametypes "coop"
//sm_cvar sv_gametypes "versus"
//sm_cvar sv_gametypes "survival"
//激活游戏模式"coop(合作),versus(对抗),survival(生存)"
sm_cvar mp_gamemode coop
//sm_cvar mp_gamemode versus
//sm_cvar mp_gamemode survival
//-----------------------------------------
//游戏难度设置(分别对应:简单、正常、困难、专家)
//sm_cvar z_difficulty "Easy"
//sm_cvar z_difficulty "Normal"
//sm_cvar z_difficulty "Hard"
sm_cvar z_difficulty "Impossible"
//蹲坑自动踢人
//sm_cvar mp_disable_autokick 1
//设为1可防止玩家加入感染者方,仅战役模式
//sm_cvar director_no_human_zombies 1
//-----------------------------------------
//设为1允许作弊(同时也允许客户端作弊)
//sm_cvar sv_cheats 1
//任意变换角色,Bill、Louis、Zoey、Francis
//sm_cvar sb_takecontrol Zoey
//怪物ai级别(1-3)
sm_cvar skill 1
//设为1就是无限d药(使用LXD插件请保持为0)
sm_cvar sv_Infinite_ammo 0
//设为1就是无敌
sm_cvar god 0
//穿墙+飞
//sm_cvar noclip "1"
//隐身,僵尸看不到你,不过碰触到僵尸还是会发现你(使用LXD插件请保持为0)
sm_cvar nb_blind 0
//设0为关闭友军伤害,分别对应4种难度
sm_cvar survivor_friendly_fire_factor_easy 0
sm_cvar survivor_friendly_fire_factor_normal 0
sm_cvar survivor_friendly_fire_factor_hard 0
sm_cvar survivor_friendly_fire_factor_expert 0
//打队友痛不痛(打开这个参数,上面的关闭友军伤害无效)
//sm_cvar survivor_friendly_fire_factor_expert "01"
//电脑BOT开q延迟,默认为0,改成10电脑BOT完全没用
sm_cvar sb_open_fire "0"
//没有电脑BOT帮助
//sm_cvar director_no_survivor_bots "0"
//蹲下移动速度变快
//sm_cvar survivor_crouch_speed 999
//丢东西的力量
sm_cvar z_throw_force "5000"
//右键推的力量,默认为25
sm_cvar z_gun_physics_force "500"
//右键推的范围
sm_cvar z_gun_range "75"
//-----------------------------------------
//盖特机q冷却时间
sm_cvar z_minigun_cooldown_time "3"
//盖特机q过热时间
sm_cvar z_minigun_overheat_time "60"
//盖特机q攻击范围
sm_cvar z_minigun_rate_of_fire "1500"
//-----------------------------------------
//无限刷僵尸(如果使用LXD插件请保持为0)
sm_cvar director_panic_forever 0
//触发事件无限刷僵尸(和上个参数配合使用)
//sm_cvar director_force_panic_event
//事件与事件间的休息时间,0就是怪物狂来
sm_cvar director_special_initial_spawn_delay_min "1"
sm_cvar director_special_initial_spawn_delay_max "5"
sm_cvar director_special_initial_spawn_delay_max_extra "3"
//怪物产出的间隔
sm_cvar director_build_up_min_interval "1"
//每次刷新的僵尸数,默认30(更改这个数值会严重影响PING)
//sm_cvar z_common_limit 60
//每次触发警钟发动进攻的僵尸数,默认30(更改这个数值会严重影响PING)
//sm_cvar z_mega_mob_size 60
//丧尸暴走时产生的疆尸最大总数量,默认30(更改这个数值会严重影响PING)
//sm_cvar z_mob_spawn_max_size 60
//丧尸暴走时产生的疆尸最小总数量,默认30(更改这个数值会严重影响PING)
//sm_cvar z_mob_spawn_min_size 60
//每次刷新最多同时出现的BOSS数量
//sm_cvar z_minion_limit 6
//每次刷新出现的胖子的数量,默认1
sm_cvar z_exploding_limit 3
//每次刷新出现的烟鬼的数量
sm_cvar z_gas_limit 1
//每次刷新出现的猎人的数量
sm_cvar z_hunter_limit 1
//每回合出现的女巫数量,默认0
//sm_cvar director_force_witch 4
//每回合出现的TANK数量,默认0(不能和上个参数一起使用,会不出tank)
sm_cvar director_force_tank 6
//-----------------------------------------
//对抗模式的复活时间(默认10)
sm_cvar director_special_battlefield_respawn_interval "3"
//拉人起来的时间(秒)
sm_cvar survivor_revive_duration "1"
//躺在地上被人拉起来的血量
sm_cvar survivor_revive_health "100"
//人死掉后3秒就可以出现在任一房间给人救,默认60
sm_cvar rescue_min_dead_time 3
//被火烧得爽度 越高越痛
sm_cvar survivor_burn_factor_easy "010"
sm_cvar survivor_burn_factor_normal "015"
sm_cvar survivor_burn_factor_hard "020"
sm_cvar survivor_burn_factor_expert "030"
//-----------------------------------------
//AI随机放置汽油d密度(设为0就等于禁止了汽油d)
//sm_cvar director_molotov_density "0"
//AI随机放置土制炸d密度(设为0就等于禁止了土制)
//sm_cvar director_pipe_bomb_density "0"
//土制炸d的爆炸时间
sm_cvar pipe_bomb_timer_duration "5"
//-----------------------------------------
//冲锋q子d上限量
sm_cvar ammo_smg_max "999"
//散dq子d上限量
sm_cvar ammo_buckshot_max "999"
//自动步q子d上限量
sm_cvar ammo_assaultrifle_max "999"
//狙击子d上限量
sm_cvar ammo_huntingrifle_max "999"
//-----------------------------------------
//僵尸的重力,越高掉下来越快
sm_cvar nb_gravity 150
//如果不是打头的伤害(05是倍数,改成-1,那就必须要暴头,使用LXD插件请保持为05)
sm_cvar z_non_head_damage_factor_expert "05"
//僵尸看到你之后经过"1"秒,就会往你那里冲,如果改成0就直接冲
sm_cvar z_acquire_far_time "1"
//僵尸可以看到你的距离,9000=超远
//sm_cvar z_acquire_far_range "9000"
//僵尸慢走的速度
sm_cvar z_walk_speed 50
//僵尸的血量
z_health "500"
//僵尸的速度
sm_cvar z_speed "200"
//僵尸重生距离
sm_cvar z_respawn_distance 5
//僵尸重生延迟
sm_cvar z_respawn_interval 2
//-----------------------------------------
//坦克行走速度,默认210
sm_cvar z_tank_speed 210
//坦克行走速度,默认210(对抗模式)
sm_cvar z_tank_speed_vs 210
//坦克生命值,默认4000
sm_cvar z_tank_health 6000
//坦克无法行动生命值
sm_cvar z_tank_incapacitated_health 2000
//坦克攻击距离
sm_cvar tank_attack_range 100
//坦克燃烧伤害(对抗模式)
sm_cvar tank_burn_duration_vs 35
//坦克燃烧伤害
sm_cvar tank_burn_duration_normal 35
//坦克投掷石头延迟,默认5
sm_cvar z_tank_throw_interval 3
//坦克投掷石头最小延迟
sm_cvar tank_throw_min_interval 1
//坦克投掷石头的速度,默认800
sm_cvar z_tank_throw_force "1600"
//坦克的石块(会被打爆)的耐力值
sm_cvar z_tank_throw_health 50
//坦克的岩石打击范围,默认100
sm_cvar z_tank_rock_radius 150
//坦克的攻击间隔,默认15
sm_cvar z_tank_attack_interval 1
//坦克走路的震动幅度
sm_cvar z_tank_footstep_shake_amplitude 10
//坦克走路的震动间隔
sm_cvar z_tank_footstep_shake_interval 1
//坦克走路的震动范围
sm_cvar z_tank_footstep_shake_radius 1500
//坦克的攻击半径,默认15
sm_cvar tank_fist_radius 20
//-----------------------------------------
//女巫生命值,默认1000
sm_cvar z_witch_health 2000
//女巫的发飙范围,默认200
sm_cvar z_witch_berserk_range 400
//女巫的燃烧时间,烧完就死了
sm_cvar z_witch_burn_time 15
//女巫的伤害,默认100
sm_cvar z_witch_damage 200
//女巫对手电筒照射的反应范围,默认400
sm_cvar z_witch_flashlight_range 800
//-----------------------------------------
//猎人生命值,默认250
sm_cvar z_hunter_health 1000
//猎人跳跃角度
sm_cvar hunter_pounce_max_loft_angle 90
//猎人爪子伤害值,默认6
sm_cvar hunter_pz_claw_dmg 12
//猎人行走速度,默认300
sm_cvar z_hunter_speed 600
//猎人飞扑的速度,默认700
sm_cvar hunter_pounce_air_speed 1000
//猎人飞跃距离,默认1000
sm_cvar hunter_leap_away_give_up_range 2000
//猎人最长距离的飞扑仰角,默认45
sm_cvar hunter_pounce_max_loft_angle 45
//猎人的扑倒范围,默认240
sm_cvar z_hunter_claw_force 260
//猎人扑倒后的攻击力,默认5
sm_cvar z_pounce_damage 7
//猎人扑倒持续伤害间隔,默认1
sm_cvar z_pounce_damage_delay 05
//-----------------------------------------
//烟鬼移动速度,默认210
sm_cvar z_gas_speed 400
//烟鬼蹲走速度,默认75
sm_cvar z_crouch_speed 150
//烟鬼的爪子的攻击力,默认4
sm_cvar smoker_pz_claw_dmg 8
//烟鬼吐舌头拉你的速度,默认80
sm_cvar tongue_victim_max_speed "100"
//烟鬼拖行时的伤害
sm_cvar tongue_drag_damage_amount 15
//烟鬼舌头受到多少损伤使它放弃猎物
sm_cvar tongue_break_from_damage_amount "50"
//烟鬼拖行速度,默认175
sm_cvar tongue_victim_max_speed 200
//烟鬼拖行加速度,默认30
sm_cvar tongue_victim_acceleration 30
//烟鬼舌头未命中目标的等待时间
sm_cvar tongue_dropping_to_ground_time "2"
//烟鬼舌头断掉后可移动的时间
sm_cvar tongue_player_dropping_to_ground_time "1"
//烟鬼生命值,默认250
sm_cvar z_gas_health 500
//烟鬼舌头射速,默认1000
sm_cvar tongue_fly_speed 1500
//烟鬼逃生距离
sm_cvar Smoker_escape_range 500
//烟鬼蓄舌延迟,默认15
sm_cvar tongue_hit_delay 6
//烟鬼再次蓄舌延迟
sm_cvar tongue_miss_delay 10
//烟鬼舌头长度,默认750
sm_cvar tongue_range 1000
//烟鬼的烟雾让你咳的时间,默认5
sm_cvar z_cough_duration 10
//-----------------------------------------
//胖子喷射胆汁延时时间
sm_cvar boomer_vomit_delay 1
//胖子生命值,默认50
sm_cvar z_exploding_health 100
//胖子移动速度,默认175
sm_cvar z_exploding_speed 300
//胖子的爆炸范围,默认200
sm_cvar z_exploding_splat_radius 400
//胖子的爪子的攻击力,默认4
sm_cvar boomer_pz_claw_dmg 8
//胖子喷射胆汁的间隔,默认30
sm_cvar z_vomit_interval 15
//胖子喷射胆汁的距离,默认300
sm_cvar z_vomit_range 600
//胆汁最大喷射距离
sm_cvar z_vomit_maxdamagedist 600
//胖子胆汁致盲时间,默认5
sm_cvar sb_vomit_blind_time 10
//胆汁褪色所需时间
sm_cvar z_vomit_fade_duration 3
//胆汁褪色时刻(被喷到的第三秒)
sm_cvar z_vomit_fade_start 3
//胖子喷射胆汁的速度,默认1700
sm_cvar z_vomit_velocity 2000
//胆汁贴图大小
sm_cvar z_vomit_boxsize 2
//-----------------------------------------
//医疗包恢复生命百分比,这里为1,即100%
sm_cvar first_aid_heal_percent 1
//医疗包恢复生命数
sm_cvar first_aid_kit_max_heal 500
//医疗包恢复生命距离
sm_cvar first_aid_kit_range 200
//医疗包恢复生命所需时间(秒)
sm_cvar first_aid_kit_use_duration 1
//重生后的血量
sm_cvar z_survivor_respawn_health "100"
//药丸的补血量(默认40)
sm_cvar pain_pills_health_value "100"
//药丸的损耗速度(默认034)
sm_cvar pain_pills_decay_rate "010"

salt-ssh 可以独立运行的,不用minion的~ 要是需要用salt-ssh的特殊参数,比如grains获取数据的话,还是需要安装minion的,不然他是不好判断你是redhat,debian的 ~ 说句废话 要是能安装minion,谁还用salt-ssh呀。。。。
这类ssh的集群工具还是不少的,我这边简单分析下优缺点!
pdsh、pssh 这东西是要建立在你做好了key关联之后,他的优点就是简单,并发执行。
Python
1
2
3
4
5
6
7
vi server1txt
192168111
192168112
192168113
192168114
pssh -h server1txt -l root -P dir
expect 最大的有点就是交互,但是要成高性能的话,需要自己写多线程的。
Python
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/expect -f
set toip [lindex $argv 0 ]
set ip 1022014
set password 123123
set timeout 10
spawn ssh root@$ip
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$password\r" }
}
fabric、paramiko python之利器,用过一段时间,该有的都有的,很是强大
Python
1
2
3
4
from fabric import env
envhosts = ['user1@host1:port1', 'user2@host2port2']
envpasswords = {'user1@host1:port1': 'password1', 'user2@host2port2': 'password2'}
但是个人觉得salt-api背靠着saltstack这个大树,前景还是不错的。
salt-ssh 可以代替expect之类的密码推送脚本,另外说明下 salt-ssh 用的是sshpass进行密码交互的,首先看下版本,17版本后才开始有的,现在基本都是2014了。
我们先开始安装 salt-ssh ~
Python
1
2
3
4
git clone >一、构建篇
在构建方面,PayPal的工程师最关心扩展性和可用性,具体涉及以下几个方面:
1,首先是可用性,基于Nova的Cell来实现IT服务的可用性。
2,其次是弃用那些过时的工具,以负载均衡为例,eBay和PayPal花了几年时间试图自己开发工具以实现LBaaS,最终还是决定改用社区的功能组件,因为社区的组件更开放,合作伙伴更容易在上面开发插件。
3,在线升级和测试 这一功能对于的健壮性和扩展性尤为重要,能够在线升级,才能跟上社区发展的脚步。
4,实时容量扩展 PayPal的目标是新机架到货之后,只需要1-2天就可以完成部署并上线应用。
二、迁移篇
相对于构建一个新的系统,将应用和数据迁移到新的架构则更具挑战,我们来看看这次迁移任务的细节和面对的挑战:
1,有限的工作人员;
2,超过8000台机器;
3,2PB的公共数据,以及大量存储于虚拟机内的本地数据;
4,上述应用和数据位于3个不同的地点;
5,通过迁移将可用性技术从Nova Availability Zone变更为Nova Cell Service以实现更好的可用性和扩展性;
6,变更防火墙配置,制定访问规则;
7,检验并解决新硬件的兼容性问题,确保新系统的稳定性。
下面是PayPal通过这一次迁移总结出的经验:
1,基础架构的可见性对保持配置一致性非常重要 如果你没有一个关于基础架构的完整视图,那将是致命的。比如你在部署应用的过程中如果有虚拟机宕机了,等它重新恢复工作时,上面的应用和配置将是不正确的。
2,不要指望所有的应用和开发工作都能迁移到新的环境 必然会有无法迁移的部分,在云计算时代,少几个虚拟机应该不是什么大问题。
3,不要一开始就使用自动化配置工具 PayPal先用手工的方式完成5%-10%的配置工作,在确定一定正常之后才引入自动化的方法完成后绪的工作。
4,迁移API服务的时候要万分小心 很多自动化 *** 作基于这些API完成,因此你不能随便停止这些API服务,选择关键 *** 作的执行间隙来迁移服务,并且不要指望在一个时间窗口内迁移所有API服务。
5,要清楚你迁移的是什么 不要为了节省时间而停止你的生产API或实例的虚IP,那样会增加风险。
6,切记,如果遇到问题,你不一定可以回滚配置。
补充说明一下这个Cell,它是用来替代原来的Zone以更好地解决OpenStack的扩展性问题,这部分内容OS借鉴了AWS的做法。一个OS云首先分为多个Region,不同的Region通常需要不同的地域,多个Region之间只有KeyStone和Horizon服务是共享的,因此Region可以用来实现隔离和优化访问。Region的下一级就是Cell,每个Cell都有一套独立的数据库和消息队列服务,另外Cell是树形结构,只有树根Cell有Nova-API服务,因此也被称为API-Cell。其它的子Cell都共享这个Nova-API服务,而Nova的其它服务则分布于每一个Cell,子Cell也称计算Cell。
PayPal提到Cell这个组件目前功能还不完整,在数据同步方面还有一些不足,但是因为扩展性和可用性需要,PayPal必须用Cell来代替原有的Zone。
三、工具篇
PayPal使用了一些开源工具:
1,Graphite用于绘图
2,Puppet和Salt用于配置管理
3,Zabbix用于监视
4,Cobbler用于裸机部署
另外PayPal自己开发了一个名为Flyway的迁移工具,用于从eBay云向PayPal云迁移几千台虚拟机和相关资源。它负责完成下述资源的迁移工作:
1,Nova虚拟机
2,用户、租户、角色、密钥对和限额
3,镜像和快照
4,Cinder卷和数据
5,Trove数据库实例
6,LBaaS VIP实例和证书
PayPal计划将这一工具开源到GitHub。此外,PayPal还开发了其它一些迁移辅助工具:
1,Stackwatch/Stackmetrics用于健康检查和度量
2,Reparo用于服务器修复和置备,也负责硬件监测和补丁管理
3,Cloudinfo用于云的可见性,将各种视图和相关数据汇总到一起,也提供Metric视图。
4,CloudMinion用于资源回收 通过扫描网络流量发现闲置虚拟机,管理过期时间,发送告警,自动回收资源并提供报告。
5,CMS 用做中央配置数据库,集中存储和管理物理和虚拟组件,基础架构和应用等所有资源的信息,并可以呈现这些资源之间的关系。
四、未来篇
1,采用Masterless Puppet构建更具扩展性和可用性的配置管理方案,消除单一故障点。
2,Infra AZ项目:通过OpenStack来部署OpenStack,开发更好的控制平面,提高容量扩展速度,实现一键扩容。
3,从H版直接升级到Kilo版,数据平面不能停,控制只有几个小时的窗口,部分网络需要从Nova-Network升级到Neutron。
五、西蒙乱谈
1,采用开源技术要跟对主流,社区是靠一个庞大的群体来支持的,你对社区产品的增强只能是锦上添花,如果那块绣布烂掉了,你的手艺再好也是白搭。
2,OpenStack成长很快,正在不断完善,可堪大用,但因为它的定位只是一个框架,需要与大量的相关组件进行集成才能落地,因此采用社区版本自主开发云并不容易,你需要组建一个与社区联系紧密的专家团队。
3,OS在监控和运维管理方面相对薄弱,还有很多不足,PayPal在这方面花的功夫最多,如果不能很好地解决这一问题,就不要大规模采用OS,否则你会把自己拖死。
4,网络也是OpenStack短板之一,PayPal采用Neutron加上NSX来满足业务对网络服务的需求。

打开控制台输入Sv_Cheats 1
下面就是命令代码:
god 1 无敌
buddha 打不死
noclip 穿墙
impulse 10 全部武器,子d
give health 加满血
give ammo 加满d夹
respawn 死亡后复活 仅限于复活自己,且在出生点复活
--------------------------------------------------------------------------------------------------------
god 1 无敌
noclip 穿墙
sv_infinite_ammo 1 无限不换d夹
give health 加满血
give ammo 加满d夹
melee_range 70 (预设为70)近战武器的伤害范围数值越高能砍得越远
sb_dont_bash 1 强制电脑队友不用手推
sb_dont_shoot 1 强制电脑队友不开q
sb_takecontrol 游戏中在4个人物之间切换控制(代表Ellis,Nick,Rochelle,Coach也可以不要后缀为随机切换)
sb_move 0 所有电脑队友停止移动
sb_escort 1 强制所有电脑队友保护你紧跟在你身边
sb_open_fire 1 强制所有电脑队友不停的开火
sb_crouch 1 强制所有电脑队友蹲下
sb_flashlight 1 强制所有电脑队友使用手电筒(-1为强制不使用)
sb_give 给予所有电脑一个道具或武器(代表物品名如fireaxe参见下面的道具参数)
sb_give_random_weapon 给每个电脑随机分配一把武器
cl_showfps 1 显示帧数(1=显示帧数和地图名2=显示帧数和平滑率3=服务器信息4=显示帧数和日志文件)
thirdpersonshoulder 第三人称模式(再输入一次可还原为第一人称)
nb_delete_all 踢掉所有电脑队友和附近的僵尸和所有的特殊僵尸(但是所有的僵尸还是会刷新)
nb_blind 1 所有电脑僵尸都看不到你(但是撞到僵尸还是会攻击你)
cl_drawhud 0 关闭所有的界面包括准星(现实模式)
--------------------------------------------------------------------------------------------------------
z_add 创造一个普通僵尸
z_spawn jockey 创造一个Jockey骑头怪
z_spawn charger 创造一个Charger小坦克
z_spawn spitter 创造一个Spitter口水婆
z_spawn hunter 创造一个Hunter猎人怪
z_spawn smoker 创造一个Smoker烟怪
z_spawn boomer 创造一个Boomer爆炸怪
z_spawn tank 创造一个Tank大坦克
z_spawn witch 创造一个Witch女巫
z_speed 250 普通僵尸的移动速度
z_health 50 普通僵尸的生命值
z_tank_health 4000 Tank大坦克的生命值
z_tank_speed 210 Tank大坦克的移动速度
z_witch_speed 300 Witch女巫的移动速度
z_witch_health 1000 Witch女巫的生命值
z_witch_damage 100 Witch女巫的伤害值
z_exploding_health 50 Boomer爆炸怪的生命值
z_exploding_speed 175 Boomer爆炸怪的移动速度
z_gas_health Smoker烟怪的生命值
z_gas_speed Smoker烟怪的移动速度
z_hunter_health 250 Hunter猎人怪的生命值
z_hunter_speed 300 Hunter猎人怪的移动速度
z_spitter_health 100 Spitter口水婆的生命值
z_spitter_speed 210 Spitter口水婆的移动速度
z_charger_health 600 Charger小坦克的生命值
z_charge_max_speed Charger小坦克的移动速度
z_charge_max_damage Charger小坦克的摔击伤害
z_jockey_health 325 Jockey骑头怪的生命值
z_jockey_speed 250 Jockey骑头怪的移动速度
z_jockey_ride_damage Jockey骑头怪的每秒伤害
z_special_spawn_interval 45 刷新特殊僵尸的时间间隔
--------------------------------------------------------------------------------------------------------
upgrade_add Incendiary_ammo 获得燃烧子d的升级效果
upgrade_add explosive_ammo 获得爆炸子d的升级效果
upgrade_add laser_sight 获得激光瞄准的升级效果
--------------------------------------------------------------------------------------------------------
give adrenaline 肾上腺素针
give defibrillator 电震仪器
give first_aid_kit 医药包
give pain_pills 药丸
give gascan 汽油红桶
give propanetank 煤气罐
give oxygentank 氧气瓶
give pipe_bomb
give molotov 燃烧酒瓶
give vomitjar 胆汁瓶
give autoshotgun 1代的连发散dq
give shotgun_spas 2代的连发散dq
give pumpshotgun 1代的单发散dq
give shotgun_chrome 2代的单发散dq
give hunting_rifle 1代的连狙
give sniper_military 2代的连狙
give rifle M16
give rifle_ak47 AK47
give rifle_desert SCAR
give smg 小型冲锋q
give smg_silenced 消声器小型冲锋q
give pistol
give pistol_magnum 玛格南
give crowbar 铁撬棍(仅限第1、2、4大关战役可用)
give fireaxe 斧头(仅限第1、2、4大关战役可用)
give katana 东洋武士刀(仅限第1、2、4大关战役可用)
give weapon_chainsaw 电锯
give weapon_grenade_launcher 榴d发射器
give cricket_bat 板球棒(仅限第1、3大关战役可用)
give baseball_bat 棒球棍(不可用或未知)
give frying_pan 平底锅(仅限第3、4、5大关战役可用)
give electric_guitar 电吉他(仅限第2、5大关战役可用)
give tonfa 警棍(仅限第5大关战役可用)
give machete 砍刀(仅限第3、5大关战役可用)
give weapon_upgradepack_explosive 爆炸子d升级铁盒
give weapon_upgradepack_incendiary 燃烧子d升级铁盒
give melee 猎人僵尸的手
give weapon_gnome 圣诞老人
give weapon_fireworkcrate 一盒烟花
give weapon_sniper_awp 麦格农大型狙击q(CS隐藏武器重新读取地图才有伤害)
give weapon_sniper_scout 斯太尔小型狙击q(CS隐藏武器重新读取地图才有伤害)
give weapon_smg_mp5 MP5冲锋q(CS隐藏武器重新读取地图才有伤害)
give weapon_rifle_sg552 SIG SG552(CS隐藏武器重新读取地图才有伤害)
对于一些会更改配置文件的命令我会加入提醒,请慎重修改,更改钱请务必备份配置文件(x:\left 4 dead 2\left4dead2\cfg)
因为怕弄多了让大家眼花缭乱,所以只罗列了相对实用的指令,我会继续从指令中挑选适合给大家献上的。
按“~”控制台输入
sv_cheats 0 关闭(默认)
sv_cheats 1 打开
sv_alltalk 0 打开全局语音通话(默认)
sv_alltalk 1 关闭全局语音通话
命令中"1"表示打开 "0"表示关闭
status 游戏信息,可查看本游戏IP和玩家
ping 游戏延迟查看
connect 连接指定IP就行游戏
sensitivity 30 鼠标速度(默认)
volume 10 音量(默认)
cl_showfps 1 屏幕显示fps数值和地图名称
net_graph 0,1,2,3 显示当前客户端参数如fps 网络连接 上传速度 下载速度和ping值
pause 暂停游戏
kill 自杀
--------------------------------------------------------------------------------------------------------
创建游戏
--------------------------------------------------------------------------------------------------------
hostname 创建指定主机名的游戏
hostname Left 4 Dead 2 创建指定主机名为 "Left 4 Dead 2" 的游戏
map 创建指定地图,并开始游戏
游戏模式
map 地图名 coop 战役模式
map 地图名 versus 对抗模式
map 地图名 realism 写实模式
map 地图名 survival 生存模式
map 地图名 scavenge 清道夫模式
地图名参考如下:
map c1m1_hotel 死亡中心第一张地图
map c2m1_highway 黑色狂欢节第一张地图
map c3m1_plankcountry 沼泽激战第一张地图
map c4m1_milltown_a 暴风骤雨第一张地图
map c5m1_waterfront 教区第一张地图
游戏中更换地图
changelevel 地图名 玩家不掉线更换地图
changelevel 地图名 游戏模式 更换游戏模式,需要重新开始游戏才能生效
更改游戏难度
z_difficulty Easy Easy, Normal, Hard, Expert, 对应简单、普通、困难、专家
survivor_burn_factor_easy 02 简单难度 队友伤害值(默认:02 关闭:0)
survivor_burn_factor_normal 02 普通难度 队友伤害值(默认:02 关闭:0)
survivor_burn_factor_hard 04 普通难度 队友伤害值(默认:04 关闭:0)
survivor_burn_factor_expert 1 普通难度 队友伤害值(默认:1 关闭:0)
restart 重新开始游戏
upgrade_add 武器升级
upgrade_add Incendiary_ammo 获得燃烧子d的升级效果
upgrade_add explosive_ammo 获得爆炸子d的升级效果
upgrade_add laser_sight 获得激光瞄准的升级效果
warp_ 传送
warp_all_survivors_here 所有人传送到你身边
warp_all_survivors_to_checkpoint 所有人传送到CHECKPOIN(好像就是终点安全门)
warp_all_survivors_to_finale 所有人传送到最后一关(不太明白)
warp_to_start_area 所有人传送到下一关(可是每次起点安全门)
director_force_panic_event 立即爆发僵尸暴走事件
director_panic_forever 1 僵尸暴走事件不停,即一波接一波(默认:0) 可用上一个命令激活生效,或者下一次爆发时生效。survivor_burn_factor_expert 10 火焰伤害(默认:10 具体参照上文)
survivor_friendly_fire_factor_expert 10 队友误伤(默认:10 具体参照上文)
survivor_crouch_speed 75 蹲著的速度(默认:75 数字越大越快)
以下文字描述和默认值有待修改
z_common_limit "100" 同时出现怪物的数量,辅助上一个
z_mega_mob_size "120"
rescue_min_dead_time "3" 人死掉后3秒就可以出现在任一房间给人救
survivor_revive_health "75" 躺在地上被人拉起来的血量
survivor_revive_duration "175" 拉人起来的时间175秒
tongue_victim_max_speed "80" smoker吐舌头拉你的速度
z_non_head_damage_factor_expert "11" 如果不是打头的伤害(11是倍数,小q打脚一级必杀,如果改成-1,那就一定要抱头才会死)
nb_gravity "125" 怪物的重力,越高掉下来越快。
director_force_witch "2" 每次出现事件(打到警铃,或萤幕出现等待救援的时候)的女巫量
director_force_tank "1" 同上 是Tank
first_aid_kit_use_duration "1" 用急救包的时间 ,这里是1秒救治疗好了。
director_build_up_min_interval "0" 怪物产出得间隔
director_special_battlefield_respawn_interval "10" vs的复活时间
director_special_initial_spawn_delay_min "10" 事件与事件间的休息时间,0就是怪物狂来
director_special_initial_spawn_delay_max "10" 同上
director_special_initial_spawn_delay_max_extra "10" 同上
z_acquire_far_range "9000" 僵尸可以看到你的距离 9000 =超远
z_acquire_far_time "05" 看到你之后经过"05"秒,就会往你那里冲,如果改成0就直接冲
z_acquire_near_range "500" 你靠近怪物的距离500
z_acquire_near_time "0" 在上面的距离内他通像你的反应时间
z_mob_spawn_max_size "60"
z_mob_spawn_min_size "20"
z_must_wander "1" 0:预设 1:僵尸永远不会做下或躺下 2:僵尸永远都躺下
z_health "200" 僵尸的血量
z_speed "50" 僵尸的速度
z_walk_speed "200" 僵尸慢走的速度
//怪物ai级别(1-3)
sm_cvar skill "1"
//丢东西的力量
sm_cvar z_throw_force "5000"
//右键推的力量,默认为25
sm_cvar z_gun_physics_force "500"
//右键推的范围
sm_cvar z_gun_range "75"
//盖特机q冷却时间
sm_cvar z_minigun_cooldown_time "3"
//盖特机q过热时间
sm_cvar z_minigun_overheat_time "60"
//盖特机q攻击范围
sm_cvar z_minigun_rate_of_fire "1500"
//每次刷新的僵尸数,默认30(更改这个数值会严重影响PING)
//sm_cvar z_common_limit "60"
//sm_cvar z_mega_mob_size "60"
//僵尸暴走时产生的僵尸最大总数量,默认30(更改这个数值会严重影响PING)
//sm_cvar z_mob_spawn_max_size "60"
//僵尸暴走时产生的僵尸最小总数量,默认30(更改这个数值会严重影响PING)
//sm_cvar z_mob_spawn_min_size "60"
//每次刷新最多同时出现的BOSS数量
//sm_cvar z_minion_limit "6"
//每次刷新出现的胖子的数量,默认1
sm_cvar z_exploding_limit "3"
//每次刷新出现的烟鬼的数量
sm_cvar z_gas_limit "1"
//每次刷新出现的猎人的数量
sm_cvar z_hunter_limit "1"
//每回合出现的女巫数量,默认0
//sm_cvar director_force_witch "4"
//每回合出现的TANK数量,默认0(不能和上个参数一起使用,会不出tank)
sm_cvar director_force_tank "6"
//AI随机放置汽油d密度(设为0就等于禁止了汽油d)
//sm_cvar director_molotov_density "0"
//AI随机放置土制密度(设为0就等于禁止了土制)
//sm_cvar director_pipe_bomb_density "0"
//土制的爆炸时间
sm_cvar pipe_bomb_timer_duration "8"
//坦克行走速度,默认210
sm_cvar z_tank_speed "210"
//坦克行走速度,默认210(对抗模式)
sm_cvar z_tank_speed_vs "210"
//坦克生命值,默认4000
sm_cvar z_tank_health "6000"
//坦克无法行动生命值
sm_cvar z_tank_incapacitated_health "2000"
//坦克攻击距离
sm_cvar tank_attack_range "100"
//坦克燃烧死亡秒数
sm_cvar tank_burn_duration_normal "35"
sm_cvar tank_burn_duration_expert "60"
//坦克燃烧死亡秒数(对抗模式)
sm_cvar tank_burn_duration_vs "35"
//坦克投掷石头延迟,默认5
sm_cvar z_tank_throw_interval "3"
//坦克投掷石头最小延迟
sm_cvar tank_throw_min_interval "1"
//坦克投掷石头的速度,默认800
sm_cvar z_tank_throw_force "1600"
//坦克的石块(会被打爆)的耐力值
sm_cvar z_tank_throw_health "50"
//坦克的岩石打击范围,默认100
sm_cvar z_tank_rock_radius "150"
//坦克的攻击间隔,默认15
sm_cvar z_tank_attack_interval "1"
//坦克走路的震动幅度
sm_cvar z_tank_footstep_shake_amplitude "10"
//坦克走路的震动间隔
sm_cvar z_tank_footstep_shake_interval "1"
//坦克走路的震动范围
sm_cvar z_tank_footstep_shake_radius "1500"
//坦克的攻击半径,默认15
sm_cvar tank_fist_radius "20"
//女巫生命值,默认1000
sm_cvar z_witch_health "2000"
//女巫的发飙范围,默认200
sm_cvar z_witch_berserk_range "400"
//女巫的燃烧时间,烧完就死了
sm_cvar z_witch_burn_time "15"
//女巫的伤害,默认100
sm_cvar z_witch_damage "200"
//女巫对手电筒照射的反应范围,默认400
sm_cvar z_witch_flashlight_range "800"
//-----------------------------------------
//猎人生命值,默认250
sm_cvar z_hunter_health "1000"
//猎人跳跃角度
sm_cvar hunter_pounce_max_loft_angle "90"
//猎人爪子伤害值,默认6
sm_cvar hunter_pz_claw_dmg "12"
//猎人行走速度,默认300
sm_cvar z_hunter_speed "600"
//猎人飞扑的速度,默认700
sm_cvar hunter_pounce_air_speed "1000"
//猎人飞跃距离,默认1000
sm_cvar hunter_leap_away_give_up_range "2000"
//猎人最长距离的飞扑仰角,默认45
sm_cvar hunter_pounce_max_loft_angle "45"
//猎人的扑倒范围,默认240
sm_cvar z_hunter_claw_force "260"
//猎人扑倒后的攻击力,默认5
sm_cvar z_pounce_damage "7"
//猎人扑倒持续伤害间隔,默认1
sm_cvar z_pounce_damage_delay "05"
//-----------------------------------------
//烟鬼移动速度,默认210
sm_cvar z_gas_speed "400"
//烟鬼蹲走速度,默认75
sm_cvar z_crouch_speed "150"
//烟鬼的爪子的攻击力,默认4
sm_cvar smoker_pz_claw_dmg "8"
//烟鬼吐舌头拉你的速度,默认80
sm_cvar tongue_victim_max_speed "100"
//烟鬼拖行时的伤害
sm_cvar tongue_drag_damage_amount "15"
//烟鬼舌头受到多少损伤使它放弃猎物
sm_cvar tongue_break_from_damage_amount "50"
//烟鬼拖行速度,默认175
sm_cvar tongue_victim_max_speed "200"
//烟鬼拖行加速度,默认30
sm_cvar tongue_victim_acceleration "30"
//烟鬼舌头未命中目标的等待时间
sm_cvar tongue_dropping_to_ground_time "2"
//烟鬼舌头断掉后可移动的时间
sm_cvar tongue_player_dropping_to_ground_time "1"
//烟鬼生命值,默认250
sm_cvar z_gas_health "500"
//烟鬼舌头射速,默认1000
sm_cvar tongue_fly_speed "1500"
//烟鬼逃生距离
sm_cvar Smoker_escape_range "500"
//烟鬼蓄舌延迟,默认15
sm_cvar tongue_hit_delay "6"
//烟鬼再次蓄舌延迟
sm_cvar tongue_miss_delay "10"
//烟鬼舌头长度,默认750
sm_cvar tongue_range "1000"
//烟鬼的烟雾让你咳的时间,默认5
sm_cvar z_cough_duration "10"
//-----------------------------------------
//胖子喷射胆汁延时时间
sm_cvar boomer_vomit_delay "1"
//胖子生命值,默认50
changelevel 地图名 玩家不掉线更换地图
changelevel 地图名 游戏模式 更换游戏模式,需要重新开始游戏才能生效
sm_cvar z_exploding_health "100"
//胖子移动速度,默认175
sm_cvar z_exploding_speed "300"
//胖子的爆炸范围,默认200
sm_cvar z_exploding_splat_radius "400"
//胖子的爪子的攻击力,默认4
sm_cvar boomer_pz_claw_dmg "8"
//胖子喷射胆汁的间隔,默认30
sm_cvar z_vomit_interval "15"
//胖子喷射胆汁的距离,默认300
sm_cvar z_vomit_range "600"
//胆汁最大喷射距离
sm_cvar z_vomit_maxdamagedist "600"
//胖子胆汁致盲时间,默认5
sm_cvar sb_vomit_blind_time "10"
//胆汁褪色所需时间
sm_cvar z_vomit_fade_duration "3"
//胆汁褪色时刻(被喷到的第三秒)
sm_cvar z_vomit_fade_start "3"
//胖子喷射胆汁的速度,默认1700
sm_cvar z_vomit_velocity "2000"
//胆汁贴图大小
sm_cvar z_vomit_boxsize "2"
//-----------------------------------------
//医疗包恢复生命百分比,这里为1,即100%
sm_cvar first_aid_heal_percent "1"
//医疗包恢复生命数
sm_cvar first_aid_kit_max_heal "500"
//医疗包恢复生命距离
sm_cvar first_aid_kit_range "200"
//医疗包恢复生命所需时间(秒)
sm_cvar first_aid_kit_use_duration "1"
//重生后的血量
sm_cvar z_survivor_respawn_health "100"
//止痛药的补血量,默认40
sm_cvar pain_pills_health_value "100"
//止痛药的损耗速度,默认034
sm_cvar pain_pills_decay_rate "010"
//AI随机放置止痛药的密度(设为0就等于禁止了止痛药)
//sm_cvar director_pain_pill_density "0"
changelevel 地图名 玩家不掉线更换地图
changelevel 地图名 游戏模式 更换游戏模式,需要重新开始游戏才能生效
大型物品:
give gascan (汽油桶斯桶)
give oxygentank(长型瓦斯桶)
give propanetank( 大瓦斯罐)
sv_cheats 1
开启模式
sv_alltalk 1 对抗语音共享 0 关掉
net_graph 1 游戏显示FPS+ping的命令
prop_dynamic_create "props_street\police_barricademdl" 铁丝网
Prop_dynamic_create props_vehicles/bus01mdl 汽车
prop_physics_create props_junk/wood_crate001amdl 木箱
输入“status”。查自己用户名,格式一般为STEAM_X:X:XXXXXX X为数字。(查自己STEAM)的ID
机q增加: ent_create prop_minigun 建出来的机q模型错误 虽然可以用 (暂时没找出来)没错误的机q 模型命令: setmodel
这个命令是做好某件物品后 然后输入picker
对准需要调整的物体 输入ent_text
MODEL:后面就是这个物品的地址
创建物品时会用到
(239) 是这个物品的编号 可以用ent_teleport 239
把物品移动到你所在的位置
PS:四个人的编号是 1-4 可以用此命令把远处的SBNPC移动到自己附近
再输入ent_rotate 来调整位置
ent_rotate 90或者ent_rotate -90
就是正逆旋转90度
不需要物品就用ent_remove进行删除
如果把人删了 - - 重新开游戏吧
E:\GAME\Steam\steamapps\common\left 4 dead\left4dead\models
这个是游戏的models目录 创建物品时要在里面找东西
像BUS就在

url是Uniform Resource Locator的简称(统一资源定位符),互联网标准资源的地址,通过一个URL只能找到一个资源,URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL。
url的基本格式

>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13439929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-06
下一篇 2023-08-06

发表评论

登录后才能评论

评论列表(0条)

保存