-
Notifications
You must be signed in to change notification settings - Fork 3
/
csgo.yaml
150 lines (148 loc) · 6.01 KB
/
csgo.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
---
AWSTemplateFormatVersion: '2010-09-09'
Description: CounterStrike Global Offensive linux server template
Mappings:
AWSRegion2AMI:
eu-central-1:
AMI: ami-26c43149
eu-west-1:
AMI: ami-ed82e39e
Parameters:
InstanceType:
AllowedValues:
- t2.nano
- t2.micro
- t2.medium
- c4.large
ConstraintDescription: must be a valid EC2 instance type.
Default: t2.micro
Description: Instance type for EC2 instance.
Type: String
KeyName:
ConstraintDescription: must be the name of an existing EC2 KeyPair.
Default: openvpn
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
Type: AWS::EC2::KeyPair::KeyName
Project:
AllowedPattern: "[\\x20-\\x7E]*"
ConstraintDescription: can contain only ASCII characters.
Default: Counter-Strike
Description: CounterStrike
MaxLength: '255'
MinLength: '1'
Type: String
HostedZone:
AllowedPattern: "[\\x20-\\x7E]*"
ConstraintDescription: can contain only ASCII characters.
Default: example.com.
Description: zone name
MaxLength: '255'
MinLength: '1'
Type: String
GSLT:
AllowedPattern: "[\\x20-\\x7E]*"
ConstraintDescription: can contain only ASCII characters.
Default: 1111
Description: Game Server Login Token
MaxLength: '255'
MinLength: '1'
Type: String
authkey:
AllowedPattern: "[\\x20-\\x7E]*"
ConstraintDescription: can contain only ASCII characters.
Default: 1111
Description: Steam auth key
MaxLength: '255'
MinLength: '1'
Type: String
Resources:
Instance:
Properties:
ImageId: !FindInMap [ AWSRegion2AMI, !Ref "AWS::Region", AMI ]
InstanceType: !Ref InstanceType
KeyName: !Ref KeyName
SecurityGroups: [!Ref SecurityGroup]
BlockDeviceMappings:
- DeviceName: /dev/sda1
Ebs:
VolumeSize: 20 # CSGO is quite big, 12 GB...
Tags:
- Key: Name
Value: !Join [ "-", [EC2-CSGO, !Ref Project] ]
UserData:
Fn::Base64: !Sub |
#!/bin/bash -ex
apt-get update
apt-get install lib32gcc1 -y
mkdir /Steam && cd /Steam
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
/Steam/steamcmd.sh +login anonymous +force_install_dir /Steam/csgo-ds +app_update 740 +quit
echo "rcon_password \"zweibierbitte\"" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "mp_autoteambalance 0" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "mp_autoteambalance 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "mp_limitteams 0" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "mp_limitteams 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "mp_randomspawn 1" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "mp_randomspawn 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "mp_teammates_are_enemies 1" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "mp_teammates_are_enemies 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "bot_quota 0" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "bot_quota 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "mp_solid_teammates 1" >> /Steam/csgo-ds/csgo/cfg/server.cfg
echo "mp_solid_teammates 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_cheats 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_accuracy_nospread 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_debug_spread_gap 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_recoil_cooldown 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_recoil_decay1_exp 99999" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_recoil_decay2_exp 99999" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_recoil_decay2_lin 99999" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_recoil_scale 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "weapon_recoil_suppression_shots 500" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_gravity 300" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_enablebunnyhopping 1" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_staminamax 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_staminajumpcost 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_staminalandcost 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_staminarecoveryrate 0" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
echo "sv_airaccelerate 2000" >> /Steam/csgo-ds/csgo/cfg/gamemode_armsrace.cfg
/Steam/csgo-ds/srcds_run -game csgo -console -usercon -authkey ${authkey} +game_type 1 +game_mode 0 +host_workshop_collection 843890618 +workshop_start_map 175480758 -nobots +sv_setsteamaccount ${GSLT}
Type: AWS::EC2::Instance
SecurityGroup:
Properties:
GroupDescription: 'Enable access to the instance. '
SecurityGroupIngress:
- CidrIp: 0.0.0.0/0
FromPort: '22'
IpProtocol: tcp
ToPort: '22'
- CidrIp: 0.0.0.0/0
FromPort: '27015'
IpProtocol: tcp
ToPort: '27015'
- CidrIp: 0.0.0.0/0
FromPort: '26900'
IpProtocol: udp
ToPort: '27030'
- CidrIp: 0.0.0.0/0
FromPort: '27000'
IpProtocol: udp
ToPort: '27030'
- CidrIp: 0.0.0.0/0
FromPort: '4380'
IpProtocol: udp
ToPort: '4380'
Tags:
- Key: Name
Value: !Join [ "-", [SG-CSGO, !Ref Project] ]
Type: AWS::EC2::SecurityGroup
MyDNS:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneName: !Ref HostedZone
Comment: CNAME for the server
Name: !Join [ ".", [cs, !Ref HostedZone] ]
Type: CNAME
TTL: 300
ResourceRecords: [ !GetAtt Instance.PublicDnsName ]