Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.package
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Nicolas Wavrant
slapos.package
Commits
d7a0af70
Commit
d7a0af70
authored
Jul 19, 2013
by
Jondy Zhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refine the process of create slapos-webrunner instance
parent
af65d002
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
106 deletions
+108
-106
windows/docs/using-slapos-in-windows.xml
windows/docs/using-slapos-in-windows.xml
+1
-1
windows/scripts/slapos-include.sh
windows/scripts/slapos-include.sh
+41
-80
windows/scripts/slapos-node.sh
windows/scripts/slapos-node.sh
+66
-25
No files found.
windows/docs/using-slapos-in-windows.xml
View file @
d7a0af70
...
...
@@ -102,7 +102,7 @@ Then waiting for configure script finished. Be sure the configure scrip report s
</section>
<section><title>
SlapOS Node
</title>
<para>
It's used to format slapos node, release software and create instance, you an run it at any time.
</para>
<para>
It's used to
create instance of slapos webrunner,
format slapos node, release software and create instance, you an run it at any time.
</para>
<para>
Click Start -> SlapOS -> SlapOS Node, if the current user isn't Administrator, Right click SlapOS Node, then Run As Administrator.
</para>
<para>
Be sure the scrip reports successfully, otherwise fix the problem and run it again.
</para>
</section>
...
...
windows/scripts/slapos-include.sh
View file @
d7a0af70
...
...
@@ -98,14 +98,14 @@ function check_network_configure()
function
check_node_configure
()
{
csih_inform
"Checking slapos node configure ..."
[[
!
-r
$node_certificate_file
]]
&&
[[
!
-r
$node_certificate_file
]]
&&
csih_error_multi
"Computer certificate file
$node_certificate_file
"
\
"doesn't exists, or you haven't right to visit."
openssl x509
-noout
-in
$node_certificate_file
||
return
1
openssl rsa
-noout
-in
$node_key_file
-check
||
return
1
computer_guid
=
$(
grep
"CN=COMP"
$node_certificate_file
|
\
sed
-e
"s/^.*, CN=//g"
|
sed
-e
"s%/emailAddress.*
\$
%%g"
)
[[
!
"
$computer_guid
"
==
COMP-+
([
0-9]
)
]]
&&
[[
!
"
$computer_guid
"
==
COMP-+
([
0-9]
)
]]
&&
csih_error_multi
"Invalid computer id '
$computer_guid
' specified."
\
"It should look like 'COMP-XXXX'"
csih_inform
"Check slapos node configure Over."
...
...
@@ -242,7 +242,7 @@ slapos_check_and_create_privileged_user()
csih_PRIVILEGED_USERNAME
=
"
${
username
}
"
if
!
csih_privileged_account_exists
"
$csih_PRIVILEGED_USERNAME
"
if
!
csih_privileged_account_exists
"
$csih_PRIVILEGED_USERNAME
"
then
username_in_sam
=
no
dos_var_empty
=
$(
/usr/bin/cygpath
-w
${
LOCALSTATEDIR
}
/empty
)
...
...
@@ -273,7 +273,7 @@ slapos_check_and_create_privileged_user()
fi
/usr/bin/rm
-f
"
${
tmpfile1
}
"
done
csih_PRIVILEGED_PASSWORD
=
"
${
_password
}
"
csih_inform
"User '
${
username
}
' has been created with password '
${
_password
}
'."
csih_inform
"If you change the password, please remember also to change the"
...
...
@@ -323,7 +323,7 @@ slapos_check_and_create_privileged_user()
ret
=
1
fi
fi
if
!
csih_check_program_or_warn /usr/bin/editrights editrights
then
csih_warning
"The 'editrights' program cannot be found or is not executable."
...
...
@@ -345,7 +345,7 @@ slapos_check_and_create_privileged_user()
fi
# ! username_in_sam
# we just created the user, so of course it's in the local SAM,
# and mkpasswd -l is appropriate
# and mkpasswd -l is appropriate
pwd_entry
=
"
$(
/usr/bin/mkpasswd
-l
-u
"
${
username
}
"
| /usr/bin/sed
-n
-e
'/^'
${
username
}
'/s?\(^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\).*?\1'
${
LOCALSTATEDIR
}
'/empty:/bin/false?p'
)
"
/usr/bin/grep
-Eiq
"^
${
username
}
:"
"
${
SYSCONFDIR
}
/passwd"
&&
username_in_passwd
=
yes
&&
/usr/bin/grep
-Fiq
"
${
pwd_entry
}
"
"
${
SYSCONFDIR
}
/passwd"
&&
entry_in_passwd
=
yes
...
...
@@ -381,80 +381,39 @@ function create_template_configure_file()
}
# === create_template_configure_file() === #
# ======================================================================
# Routine:
create
_slapos_webrunner_instance
#
Create one instance of slapos webrunner in local computer
# Routine:
get
_slapos_webrunner_instance
#
Get instance connection information and create slaprunner startup file
# ======================================================================
function
create
_slapos_webrunner_instance
()
function
get
_slapos_webrunner_instance
()
{
local
_
title
local
_
guid
local
_
guid
=
$1
local
_
title
=
$2
local
_feature_code
=
"#-*- SlapOS Web Runner JavaScript Boot Code -*-#"
local
_re6stnet_ipv6
local
_patch_file
=
/etc/slapos/patches/slapos-cookbook-inotifyx.patch
local
_url
echo
Checking SlapOS Webruner ...
if
grep
-q
-F
"
${
_feature_code
}
"
${
slaprunner_startup_file
}
;
then
echo
"Find feature code
${
_feature_code
}
in the
${
slaprunner_startup_file
}
"
echo
"Check SlapOS Webrunner OK."
else
echo
Installing SlapOS Webrunner ...
_guid
=
$(
grep
"CN=COMP"
$node_certificate_file
|
\
sed
-e
"s/^.*, CN=//g"
|
sed
-e
"s%/emailAddress.*
\$
%%g"
)
[[
"
${
_guid
}
"
==
COMP-+
([
0-9]
)
]]
||
csih_error
"Invalid computer id '
${
_guid
}
' specified."
echo
Got computer guid:
${
_guid
}
_title
=
"SlapOS-Node-Runner-In-
${
_guid
}
"
if
[[
-r
$re6stnet_configure_file
]]
;
then
_re6stnet_ipv6
=
$(
grep
"Your subnet"
$re6stnet_configure_file
|
\
sed
-e
"s/^.*subnet: //g"
-e
"s/
\/
80 (CN.*
\$
/1/g"
)
if
[[
-n
"
${
_re6stnet_ipv6
}
"
]]
;
then
echo
"Re6stnet address in this computer:
${
_re6stnet_ipv6
}
"
netsh interface ipv6 show addr
$slapos_ifname
level
=
normal |
\
grep
-q
"
${
_re6stnet_ipv6
}
\$
"
||
\
netsh interface ipv6 add addr
$slapos_ifname
${
_re6stnet_ipv6
}
fi
fi
/opt/slapos/bin/slapos node format
-cv
--now
||
\
csih_error
"Failed to run slapos format."
echo
"Supply slapwebrunner in the computer
${
_guid
}
"
/opt/slapos/bin/slapos supply slaposwebrunner
${
_guid
}
echo
"Request an instance
${
_title
}
..."
while
true
;
do
/opt/slapos/bin/slapos node software
--verbose
# Apply patches to slapos.cookbook for inotifix
if
[[
-r
${
_patch_file
}
]]
;
then
for
x
in
$(
find /opt/slapgrid/
-name
slapos.cookbook-
*
.egg
)
;
do
echo
Apply patch
${
_patch_file
}
at
$x
cd
$x
patch
-f
--dry-run
-p1
<
${
_patch_file
}
>
/dev/null
&&
\
patch
-p1
<
${
_patch_file
}
done
fi
/opt/slapos/bin/slapos node instance
--verbose
/opt/slapos/bin/slapos node report
--verbose
# Connection parameters of instance are:
# {'backend_url': 'http://[2001:67c:1254:45::c5d5]:50000',
# 'cloud9-url': 'http://localhost:9999',
# 'password_recovery_code': 'e2d01c14',
# 'ssh_command': 'ssh 2001:67c:1254:45::c5d5 -p 2222',
# 'url': 'http://softinst39090.host.vifib.net/'}
_url
=
$(
/opt/slapos/bin/slapos request
${
client_configure_file
}
\
${
_title
}
slaposwebrunner
--node
computer_guid
=
${
_guid
}
|
\
grep
backend_url |
sed
-e
"s/^.*': '//g"
-e
"s/',.*
$/
/g"
)
[[
-n
"
${
_url
}
"
]]
&&
echo
"SlapOS Web Runner URL:
${
_url
}
"
&&
break
done
cat
<<
EOF
>
$slaprunner_startup_file
local
_ret
=
0
csih_inform
"Trying to get connection information of SlapOS WebRunner instance ..."
/opt/slapos/bin/slapos request
${
client_configure_file
}
\
${
_title
}
slaposwebrunner
--node
computer_guid
=
${
_guid
}
||
return
1
# Connection parameters of instance are:
# {'backend_url': 'http://[2001:67c:1254:45::c5d5]:50000',
# 'cloud9-url': 'http://localhost:9999',
# 'password_recovery_code': 'e2d01c14',
# 'ssh_command': 'ssh 2001:67c:1254:45::c5d5 -p 2222',
# 'url': 'http://softinst39090.host.vifib.net/'}
_url
=
$(
/opt/slapos/bin/slapos request
${
client_configure_file
}
\
${
_title
}
slaposwebrunner
--node
computer_guid
=
${
_guid
}
|
\
grep
backend_url |
sed
-e
"s/^.*': '//g"
-e
"s/',.*
$/
/g"
)
if
[[
-n
"
${
_url
}
"
]]
;
then
csih_inform
"SlapOS WebRunner URL:
${
_url
}
"
if
grep
-q
-F
"
${
_feature_code
}
"
${
slaprunner_startup_file
}
;
then
csih_inform
"Find feature code
${
_feature_code
}
in the
${
slaprunner_startup_file
}
"
echo
"Check SlapOS Webrunner OK."
else
csih_inform
"Generate SlapOS WebRunner startup file
${
slaprunner_startup_file
}
"
cat
<<
EOF
>
${
slaprunner_startup_file
}
<html>
<head><title>SlapOS Web Runner</title>
<script LANGUAGE="JavaScript">
...
...
@@ -469,8 +428,10 @@ function openwin() {
<!--
$feature_code
-->
</html>
EOF
echo
SlapOS Webrunner boot file
$slaprunner_startup_file
generated.
echo
Install Web Runner OK.
echo
fi
else
csih_error_multi
"Request return true, but I can't find connection information,"
\
"something is wrong with slapos webrunner software."
fi
}
# === create_slapos_webrunner_instance() === #
return
${
_ret
}
}
# === get_slapos_webrunner_instance() === #
windows/scripts/slapos-node.sh
View file @
d7a0af70
#! /bin/bash
source
$(
/usr/bin/dirname
$0
)
/slapos-include.sh
echo
echo
"Start slapos-node script ..."
echo
echo
""
csih_inform
"Start slapos-node script ..."
echo
""
declare
computer_guid
# -----------------------------------------------------------
# Check all the configure files
# -----------------------------------------------------------
check_network_configure
||
exit
1
check_node_configure
||
exit
1
check_client_configure
||
exit
1
check_network_configure
check_node_configure
check_client_configure
check_cron_configure
check_re6stnet_configure
# -----------------------------------------------------------
# Check cygwin services used by slapos
# -----------------------------------------------------------
check_cygwin_service cygserver
||
exit
1
check_cygwin_service syslog-ng
||
exit
1
check_cygwin_service cygserver
check_cygwin_service syslog-ng
check_cygwin_service sshd
check_cygwin_service cron
check_re6stnet_needed
&&
check_cygwin_service re6stnet
# -----------------------------------------------------------
#
Create instance of slap web runner
#
Get computer reference and re6stnet network
# -----------------------------------------------------------
create_slapos_webrunner_instance
||
exit
1
computer_guid
=
$(
grep
"CN=COMP"
${
node_certificate_file
}
|
\
sed
-e
"s/^.*, CN=//g"
|
sed
-e
"s%/emailAddress.*
\$
%%g"
)
[[
"
${
computer_guid
}
"
==
COMP-+
([
0-9]
)
]]
||
csih_error_multi
"
${
computer_guid
}
is invalid computer guid."
\
"It should like 'COMP-XXXX', edit
${
node_certificate_file
}
"
\
"to fix it."
csih_inform
"Got computer reference id:
${
computer_guid
}
"
# -----------------------------------------------------------
#
Format slapos node
#
Get re6stnet network
# -----------------------------------------------------------
echo
"Formating SlapOS Node ..."
/opt/slapos/bin/slapos node format
-cv
--now
||
exit
1
if
[[
-r
${
re6stnet_configure_file
}
]]
;
then
_addr6
=
$(
grep
"Your subnet"
${
re6stnet_configure_file
}
|
\
sed
-e
"s/^.*subnet: //g"
-e
"s/
\/
80 (CN.*
\$
/1/g"
)
if
[[
-n
"
${
_addr6
}
"
]]
;
then
csih_inform
"Re6stnet address in this computer:
${
_addr6
}
"
netsh interface ipv6 show addr
${
slapos_ifname
}
level
=
normal |
\
grep
-q
"
${
_addr6
}
\$
"
||
\
netsh interface ipv6 add addr
${
slapos_ifname
}
${
_addr6
}
fi
fi
# -----------------------------------------------------------
#
Release softwar
e
#
Format slapos nod
e
# -----------------------------------------------------------
echo
"Releasing software ..."
/opt/slapos/bin/slapos node software
--verbose
csih_inform
"Formating SlapOS Node ..."
/opt/slapos/bin/slapos node format
-cv
--now
||
csih_error
"Run slapos node format failed. "
# -----------------------------------------------------------
#
Instance software
#
Request an instance of slapos webrunner
# -----------------------------------------------------------
echo
"Creating instance ..."
/opt/slapos/bin/slapos node instance
--verbose
csih_inform
"Supply slaposwebrunner in the computer
${
computer_guid
}
"
/opt/slapos/bin/slapos supply slaposwebrunner
${
computer_guid
}
_title
=
"SlapOS-WebRunner-In-
${
computer_guid
}
"
csih_inform
"Request slaposwebrunner instance as
${
_title
}
"
/opt/slapos/bin/slapos request
${
client_configure_file
}
\
${
_title
}
slaposwebrunner
--node
computer_guid
=
${
computer_guid
}
# -----------------------------------------------------------
#
Send
report
#
Enter loop to release software, create instance,
report
# -----------------------------------------------------------
echo
"Sending report ..."
/opt/slapos/bin/slapos node report
--verbose
_patch_file
=
/etc/slapos/patches/slapos-cookbook-inotifyx.patch
while
true
;
do
csih_inform
"Releasing software ..."
/opt/slapos/bin/slapos node software
--verbose
||
continue
if
[[
-r
${
_patch_file
}
]]
;
then
for
_x
in
$(
find /opt/slapgrid/
-name
slapos.cookbook-
*
.egg
)
;
do
patch
-d
${
_x
}
-f
--dry-run
-p1
<
${
_patch_file
}
>
/dev/null
&&
csih_inform
"Apply patch
${
_patch_file
}
on
${
_x
}
"
&&
patch
-d
${
_x
}
-p1
<
${
_patch_file
}
)
done
fi
csih_inform
"Creating instance ..."
/opt/slapos/bin/slapos node instance
--verbose
||
continue
csih_inform
"Sending report ..."
/opt/slapos/bin/slapos node report
--verbose
||
continue
get_slapos_webrunner_instance
${
computer_guid
}
${
_title
}
&&
break
done
echo
""
csih_inform
"Run slapos-node script successfully."
echo
""
echo
echo
"Run slapos-node script successfully."
echo
read
-n
1
-t
60
-p
"Press any key to exit..."
exit
0
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