Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
Hetzner-Master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Hetzner-Master
Commits
e9bf7776
Commit
e9bf7776
authored
Jan 17, 2020
by
Ahmad Nemati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init
parent
2af272c5
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
110 additions
and
17 deletions
+110
-17
Hetzner.js
Hetzner.js
+51
-12
app.js
app.js
+54
-1
constant.js
constant.js
+2
-1
test.js
test.js
+3
-3
No files found.
Hetzner.js
View file @
e9bf7776
const
HetznerCloud
=
require
(
'
hcloud-js
'
)
const
HetznerCloud
=
require
(
'
hcloud-js
'
)
let
client
let
client
let
_
=
require
(
'
lodash
'
)
let
_
=
require
(
'
lodash
'
)
let
tokens
let
oldG
=
'
#!/bin/bash
\n
'
+
'
cd /root
\n
'
+
'
git clone http://git.fcfglobal.co/root/mt2.git
\n
'
+
'
mv mt2 mt
\n
'
+
'
cd mt
\n
'
+
'
sudo chmod 777 *
\n
'
+
'
sudo ./install.sh
\n
'
+
'
cd ..
\n
'
+
'
git clone http://git.fcfglobal.co/root/newhet.git
\n
'
+
'
cd newhet
\n
'
+
'
echo ahmad > token.txt
\n
'
+
'
sudo chmod 777 *
\n
'
+
'
sudo ./run.sh
\n
'
+
'
sleep 20
'
let
newG
=
'
#!/bin/bash
\n
'
+
'
cd /root
\n
'
+
'
git clone http://git.fcfglobal.co/root/Hetzner-Mt2-NewGeneration.git
\n
'
+
'
mv Hetzner-Mt2-NewGeneration mt
\n
'
+
'
cd mt
\n
'
+
'
sudo chmod 777 *
\n
'
+
'
sudo ./install.sh
\n
'
+
'
cd ..
\n
'
+
'
git clone http://git.fcfglobal.co/root/Hetzner-NewGeneration.git
\n
'
+
'
mv Hetzner-NewGeneration newhet
\n
'
+
'
cd newhet
\n
'
+
'
echo ahmad > token.txt
\n
'
+
'
sudo chmod 777 *
\n
'
+
'
sudo ./run.sh
\n
'
+
'
sleep 20
'
class
Hetzner
{
class
Hetzner
{
...
@@ -8,6 +41,7 @@ class Hetzner {
...
@@ -8,6 +41,7 @@ class Hetzner {
constructor
(
token
)
{
constructor
(
token
)
{
client
=
new
HetznerCloud
.
Client
(
_
.
trim
(
token
))
client
=
new
HetznerCloud
.
Client
(
_
.
trim
(
token
))
tokens
=
_
.
trim
(
token
)
}
}
...
@@ -81,7 +115,6 @@ class Hetzner {
...
@@ -81,7 +115,6 @@ class Hetzner {
}
}
async
removeFloatingIpByIp
(
ip
)
{
async
removeFloatingIpByIp
(
ip
)
{
try
{
try
{
ip
=
_
.
trim
(
ip
)
ip
=
_
.
trim
(
ip
)
...
@@ -111,8 +144,7 @@ class Hetzner {
...
@@ -111,8 +144,7 @@ class Hetzner {
for
(
let
i
=
0
;
i
<
ips
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
ips
.
length
;
i
++
)
{
await
this
.
delFloatingIp
(
ips
[
i
].
id
)
await
this
.
delFloatingIp
(
ips
[
i
].
id
)
}
}
...
@@ -147,31 +179,38 @@ class Hetzner {
...
@@ -147,31 +179,38 @@ class Hetzner {
}
}
createServer
(
region
,
newGeneration
)
{
let
rand
=
this
.
randomInt
(
0
,
100000
)
rand
=
'
Server
'
+
rand
return
new
Promise
(
function
(
resolve
,
reject
)
{
createServer
(
name
)
{
let
command
=
newGeneration
===
true
?
newG
:
oldG
// nuremberg nbg1
command
=
command
.
replace
(
'
ahmad
'
,
tokens
)
//fsn1
return
new
Promise
(
function
(
resolve
,
reject
)
{
client
.
servers
.
build
(
rand
)
client
.
servers
.
build
(
name
)
.
serverType
(
'
cx51
'
)
.
serverType
(
'
cx51-ceph
'
)
.
location
(
region
)
.
location
(
'
fsn1
'
)
.
userData
(
command
)
.
image
(
'
9541194
'
)
.
image
(
'
ubuntu-18.04
'
)
.
sshKey
(
'
ffgf
'
)
.
create
()
.
create
()
.
then
(
function
(
response
)
{
.
then
(
function
(
response
)
{
resolve
(
response
)
resolve
(
response
)
})
})
.
catch
(
function
(
error
)
{
.
catch
(
function
(
error
)
{
console
.
log
(
error
)
reject
(
error
)
// Handle error...
// Handle error...
})
})
})
})
}
}
randomInt
(
low
,
high
)
{
return
Math
.
floor
(
Math
.
random
()
*
(
high
-
low
)
+
low
)
}
createFloatingIp
(
location
,
server
)
{
createFloatingIp
(
location
,
server
)
{
...
...
app.js
View file @
e9bf7776
...
@@ -35,6 +35,12 @@ app.get('/add/:num/', (req, res) => {
...
@@ -35,6 +35,12 @@ app.get('/add/:num/', (req, res) => {
})
})
app
.
get
(
'
/createServer/:num/
'
,
(
req
,
res
)
=>
{
// console.log(req.params.acc)
return
newServerOrder
(
req
,
res
)
})
app
.
get
(
'
/del/
'
,
(
req
,
res
)
=>
{
app
.
get
(
'
/del/
'
,
(
req
,
res
)
=>
{
// console.log(req.params.acc)
// console.log(req.params.acc)
res
.
send
(
'
Done
'
)
res
.
send
(
'
Done
'
)
...
@@ -73,6 +79,38 @@ async function newFloatingIpsOrder(req, res) {
...
@@ -73,6 +79,38 @@ async function newFloatingIpsOrder(req, res) {
// addBaship(req.params.ip)
// addBaship(req.params.ip)
}
}
async
function
newServerOrder
(
req
,
res
)
{
let
order
=
parseInt
(
req
.
params
.
num
)
res
.
send
(
'
Create Server from
'
+
(
order
===
1
?
'
Nuremberg
'
:
order
===
2
?
'
Falkenstein
'
:
'
Helsinki
'
)
+
'
Requested
'
)
let
ips
=
await
het
.
getAllServers
()
if
(
ips
.
length
===
10
)
return
let
floatNum
=
10
-
ips
.
length
let
location
if
(
order
===
1
)
location
=
constant
.
nuremberg
else
if
(
order
===
2
)
location
=
constant
.
falkenstein
else
location
=
constant
.
helsinki
let
newIps
=
[]
for
(
let
i
=
1
;
i
<=
floatNum
;
i
++
)
{
let
ip
=
await
het
.
createServer
(
location
,
order
===
3
)
addBaship
(
ip
)
newIps
.
push
(
ip
)
}
// console.log(req.params.ip)
// addBaship(req.params.ip)
}
async
function
addBaship
(
ip
)
{
async
function
addBaship
(
ip
)
{
return
shell
.
exec
(
'
ip addr add
'
+
ip
+
'
dev eth0
'
).
stderr
;
return
shell
.
exec
(
'
ip addr add
'
+
ip
+
'
dev eth0
'
).
stderr
;
...
@@ -105,10 +143,13 @@ cronRemover.schedule(' */1 * * * *', () => {
...
@@ -105,10 +143,13 @@ cronRemover.schedule(' */1 * * * *', () => {
});
});
init
()
init
()
async
function
init
()
{
async
function
init
()
{
await
initToken
()
await
initToken
()
addMaster
()
postRequest
()
postRequest
()
checkIps
()
checkIps
()
}
}
...
@@ -133,7 +174,6 @@ async function checkIps() {
...
@@ -133,7 +174,6 @@ async function checkIps() {
}
}
}
}
}
}
...
@@ -239,6 +279,19 @@ function getIp() {
...
@@ -239,6 +279,19 @@ function getIp() {
}
}
function
addMaster
()
{
const
request
=
require
(
'
request
'
);
let
url
=
'
http://admin.fcfglobal.co:3000/addMaster/
'
return
new
Promise
(
function
(
resolve
,
reject
)
{
request
(
url
,
{
timeout
:
15000
},
function
(
error
,
res
,
body
)
{
resolve
(
body
)
});
});
}
function
postRequest
()
{
function
postRequest
()
{
let
data
=
{
generation
:
generation
,
groups
:
groups
}
let
data
=
{
generation
:
generation
,
groups
:
groups
}
data
=
JSON
.
stringify
(
data
)
data
=
JSON
.
stringify
(
data
)
...
...
constant.js
View file @
e9bf7776
module
.
exports
=
Object
.
freeze
({
module
.
exports
=
Object
.
freeze
({
falkenstein
:
'
fsn1
'
,
falkenstein
:
'
fsn1
'
,
nuremberg
:
'
nbg1
'
nuremberg
:
'
nbg1
'
,
helsinki
:
'
hel1
'
...
...
test.js
View file @
e9bf7776
...
@@ -15,13 +15,13 @@ const cryptLib = require('@skavinvarnan/cryptlib');
...
@@ -15,13 +15,13 @@ const cryptLib = require('@skavinvarnan/cryptlib');
const
key
=
"
6*sN_rZxHD4!X$=T
"
;
const
key
=
"
6*sN_rZxHD4!X$=T
"
;
let
Hetzner
=
require
(
'
./Hetzner
'
)
let
Hetzner
=
require
(
'
./Hetzner
'
)
let
het
let
het
postFloatingIps
([
'
127.0.0.2
'
,
'
127.0.0.3
'
]
)
tesT
(
)
async
function
tesT
()
async
function
tesT
()
{
{
await
init
()
await
init
()
// let masterid=await het.getMasterServerId()
// let masterid=await het.getMasterServerId()
let
d
=
await
het
.
removeAllFloatingIps
(
'
78.47.38.44
'
)
let
d
=
await
het
.
getAllServers
(
'
fsn1
'
)
console
.
log
(
d
)
console
.
log
(
d
.
length
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment