mirror of
https://github.com/1C-Company/docker_fresh.git
synced 2025-02-09 13:14:03 +02:00
edit readme
This commit is contained in:
parent
f21a1a6b00
commit
030e4f940c
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,3 +6,4 @@ workdir
|
||||
workdir/
|
||||
test.py
|
||||
.vscode/launch.json
|
||||
.hostname
|
@ -51,8 +51,12 @@ cd docker_fresh
|
||||
```
|
||||
|
||||
##### Размещение дистрибутитов
|
||||
Все ранее скачанные дистрибутивы необходимо разместить в каталоге `/docker_fresh/distr/`. После добавление всех дистрибутивов в каталог, он должен выглядить следубщим образом
|
||||
Все ранее скачанные дистрибутивы необходимо разместить в каталоге `/docker_fresh/distr/`.
|
||||
После добавления всех дистрибутивов в каталог, он должен выглядить примерно следующим образом
|
||||
![](https://i.ibb.co/S50sF96/2020-04-10-16-03-22.png)
|
||||
|
||||
##### Настройка списка создваемых информационных баз
|
||||
В файле `/docker_fresh/other_files/params.json` расположен список информационных баз которые требуется создать в формате **JSON**
|
||||
В файле `/docker_fresh/other_files/params.json` расположен список информационных баз в формате **JSON** которые требуется создать
|
||||
- Информационная база **SM** всегда должна быть первой в списке
|
||||
- Для каждой базы необходимо прописать имя **CF** файла расположенного в каталоге`/docker_fresh/distr/`
|
||||
- В данный список можно добавить свои информационные базы
|
353
conf/web/httpd.conf
Normal file
353
conf/web/httpd.conf
Normal file
@ -0,0 +1,353 @@
|
||||
#
|
||||
# This is the main Apache HTTP server configuration file. It contains the
|
||||
# configuration directives that give the server its instructions.
|
||||
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
|
||||
# In particular, see
|
||||
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
|
||||
# for a discussion of each configuration directive.
|
||||
#
|
||||
# Do NOT simply read the instructions in here without understanding
|
||||
# what they do. They're here only as hints or reminders. If you are unsure
|
||||
# consult the online docs. You have been warned.
|
||||
#
|
||||
# Configuration and logfile names: If the filenames you specify for many
|
||||
# of the server's control files begin with "/" (or "drive:/" for Win32), the
|
||||
# server will use that explicit path. If the filenames do *not* begin
|
||||
# with "/", the value of ServerRoot is prepended -- so 'log/access_log'
|
||||
# with ServerRoot set to '/www' will be interpreted by the
|
||||
# server as '/www/log/access_log', where as '/log/access_log' will be
|
||||
# interpreted as '/log/access_log'.
|
||||
|
||||
#
|
||||
# ServerRoot: The top of the directory tree under which the server's
|
||||
# configuration, error, and log files are kept.
|
||||
#
|
||||
# Do not add a slash at the end of the directory path. If you point
|
||||
# ServerRoot at a non-local disk, be sure to specify a local disk on the
|
||||
# Mutex directive, if file-based mutexes are used. If you wish to share the
|
||||
# same ServerRoot for multiple httpd daemons, you will need to change at
|
||||
# least PidFile.
|
||||
#
|
||||
ServerRoot "/etc/httpd"
|
||||
|
||||
#
|
||||
# Listen: Allows you to bind Apache to specific IP addresses and/or
|
||||
# ports, instead of the default. See also the <VirtualHost>
|
||||
# directive.
|
||||
#
|
||||
# Change this to Listen on specific IP addresses as shown below to
|
||||
# prevent Apache from glomming onto all bound IP addresses.
|
||||
#
|
||||
#Listen 12.34.56.78:80
|
||||
Listen 80
|
||||
|
||||
#
|
||||
# Dynamic Shared Object (DSO) Support
|
||||
#
|
||||
# To be able to use the functionality of a module which was built as a DSO you
|
||||
# have to place corresponding `LoadModule' lines at this location so the
|
||||
# directives contained in it are actually available _before_ they are used.
|
||||
# Statically compiled modules (those listed by `httpd -l') do not need
|
||||
# to be loaded here.
|
||||
#
|
||||
# Example:
|
||||
# LoadModule foo_module modules/mod_foo.so
|
||||
#
|
||||
Include conf.modules.d/*.conf
|
||||
|
||||
#
|
||||
# If you wish httpd to run as a different user or group, you must run
|
||||
# httpd as root initially and it will switch.
|
||||
#
|
||||
# User/Group: The name (or #number) of the user/group to run httpd as.
|
||||
# It is usually good practice to create a dedicated user and group for
|
||||
# running httpd, as with most system services.
|
||||
#
|
||||
User usr1cv8
|
||||
Group grp1cv8
|
||||
|
||||
# 'Main' server configuration
|
||||
#
|
||||
# The directives in this section set up the values used by the 'main'
|
||||
# server, which responds to any requests that aren't handled by a
|
||||
# <VirtualHost> definition. These values also provide defaults for
|
||||
# any <VirtualHost> containers you may define later in the file.
|
||||
#
|
||||
# All of these directives may appear inside <VirtualHost> containers,
|
||||
# in which case these default settings will be overridden for the
|
||||
# virtual host being defined.
|
||||
#
|
||||
|
||||
#
|
||||
# ServerAdmin: Your address, where problems with the server should be
|
||||
# e-mailed. This address appears on some server-generated pages, such
|
||||
# as error documents. e.g. admin@your-domain.com
|
||||
#
|
||||
ServerAdmin root@localhost
|
||||
|
||||
#
|
||||
# ServerName gives the name and port that the server uses to identify itself.
|
||||
# This can often be determined automatically, but we recommend you specify
|
||||
# it explicitly to prevent problems during startup.
|
||||
#
|
||||
# If your host doesn't have a registered DNS name, enter its IP address here.
|
||||
#
|
||||
ServerName localhost
|
||||
|
||||
#
|
||||
# Deny access to the entirety of your server's filesystem. You must
|
||||
# explicitly permit access to web content directories in other
|
||||
# <Directory> blocks below.
|
||||
#
|
||||
<Directory />
|
||||
AllowOverride none
|
||||
Require all denied
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# Note that from this point forward you must specifically allow
|
||||
# particular features to be enabled - so if something's not working as
|
||||
# you might expect, make sure that you have specifically enabled it
|
||||
# below.
|
||||
#
|
||||
|
||||
#
|
||||
# DocumentRoot: The directory out of which you will serve your
|
||||
# documents. By default, all requests are taken from this directory, but
|
||||
# symbolic links and aliases may be used to point to other locations.
|
||||
#
|
||||
DocumentRoot "/var/www/html"
|
||||
|
||||
#
|
||||
# Relax access to content within /var/www.
|
||||
#
|
||||
<Directory "/var/www">
|
||||
AllowOverride None
|
||||
# Allow open access:
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
# Further relax access to the default document root:
|
||||
<Directory "/var/www/html">
|
||||
#
|
||||
# Possible values for the Options directive are "None", "All",
|
||||
# or any combination of:
|
||||
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
|
||||
#
|
||||
# Note that "MultiViews" must be named *explicitly* --- "Options All"
|
||||
# doesn't give it to you.
|
||||
#
|
||||
# The Options directive is both complicated and important. Please see
|
||||
# http://httpd.apache.org/docs/2.4/mod/core.html#options
|
||||
# for more information.
|
||||
#
|
||||
Options Indexes FollowSymLinks
|
||||
|
||||
#
|
||||
# AllowOverride controls what directives may be placed in .htaccess files.
|
||||
# It can be "All", "None", or any combination of the keywords:
|
||||
# Options FileInfo AuthConfig Limit
|
||||
#
|
||||
AllowOverride None
|
||||
|
||||
#
|
||||
# Controls who can get stuff from this server.
|
||||
#
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# DirectoryIndex: sets the file that Apache will serve if a directory
|
||||
# is requested.
|
||||
#
|
||||
<IfModule dir_module>
|
||||
DirectoryIndex index.html
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The following lines prevent .htaccess and .htpasswd files from being
|
||||
# viewed by Web clients.
|
||||
#
|
||||
<Files ".ht*">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
#
|
||||
# ErrorLog: The location of the error log file.
|
||||
# If you do not specify an ErrorLog directive within a <VirtualHost>
|
||||
# container, error messages relating to that virtual host will be
|
||||
# logged here. If you *do* define an error logfile for a <VirtualHost>
|
||||
# container, that host's errors will be logged there and not here.
|
||||
#
|
||||
ErrorLog "logs/error_log"
|
||||
|
||||
#
|
||||
# LogLevel: Control the number of messages logged to the error_log.
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
#
|
||||
LogLevel warn
|
||||
|
||||
<IfModule log_config_module>
|
||||
#
|
||||
# The following directives define some format nicknames for use with
|
||||
# a CustomLog directive (see below).
|
||||
#
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||||
|
||||
<IfModule logio_module>
|
||||
# You need to enable mod_logio.c to use %I and %O
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The location and format of the access logfile (Common Logfile Format).
|
||||
# If you do not define any access logfiles within a <VirtualHost>
|
||||
# container, they will be logged here. Contrariwise, if you *do*
|
||||
# define per-<VirtualHost> access logfiles, transactions will be
|
||||
# logged therein and *not* in this file.
|
||||
#
|
||||
#CustomLog "logs/access_log" common
|
||||
|
||||
#
|
||||
# If you prefer a logfile with access, agent, and referer information
|
||||
# (Combined Logfile Format) you can use the following directive.
|
||||
#
|
||||
CustomLog "logs/access_log" combined
|
||||
</IfModule>
|
||||
|
||||
<IfModule alias_module>
|
||||
#
|
||||
# Redirect: Allows you to tell clients about documents that used to
|
||||
# exist in your server's namespace, but do not anymore. The client
|
||||
# will make a new request for the document at its new location.
|
||||
# Example:
|
||||
# Redirect permanent /foo http://www.example.com/bar
|
||||
|
||||
#
|
||||
# Alias: Maps web paths into filesystem paths and is used to
|
||||
# access content that does not live under the DocumentRoot.
|
||||
# Example:
|
||||
# Alias /webpath /full/filesystem/path
|
||||
#
|
||||
# If you include a trailing / on /webpath then the server will
|
||||
# require it to be present in the URL. You will also likely
|
||||
# need to provide a <Directory> section to allow access to
|
||||
# the filesystem path.
|
||||
|
||||
#
|
||||
# ScriptAlias: This controls which directories contain server scripts.
|
||||
# ScriptAliases are essentially the same as Aliases, except that
|
||||
# documents in the target directory are treated as applications and
|
||||
# run by the server when requested rather than as documents sent to the
|
||||
# client. The same rules about trailing "/" apply to ScriptAlias
|
||||
# directives as to Alias.
|
||||
#
|
||||
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
|
||||
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
|
||||
# CGI directory exists, if you have that configured.
|
||||
#
|
||||
<Directory "/var/www/cgi-bin">
|
||||
AllowOverride None
|
||||
Options None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
<IfModule mime_module>
|
||||
#
|
||||
# TypesConfig points to the file containing the list of mappings from
|
||||
# filename extension to MIME-type.
|
||||
#
|
||||
TypesConfig /etc/mime.types
|
||||
|
||||
#
|
||||
# AddType allows you to add to or override the MIME configuration
|
||||
# file specified in TypesConfig for specific file types.
|
||||
#
|
||||
#AddType application/x-gzip .tgz
|
||||
#
|
||||
# AddEncoding allows you to have certain browsers uncompress
|
||||
# information on the fly. Note: Not all browsers support this.
|
||||
#
|
||||
#AddEncoding x-compress .Z
|
||||
#AddEncoding x-gzip .gz .tgz
|
||||
#
|
||||
# If the AddEncoding directives above are commented-out, then you
|
||||
# probably should define those extensions to indicate media types:
|
||||
#
|
||||
AddType application/x-compress .Z
|
||||
AddType application/x-gzip .gz .tgz
|
||||
|
||||
#
|
||||
# AddHandler allows you to map certain file extensions to "handlers":
|
||||
# actions unrelated to filetype. These can be either built into the server
|
||||
# or added with the Action directive (see below)
|
||||
#
|
||||
# To use CGI scripts outside of ScriptAliased directories:
|
||||
# (You will also need to add "ExecCGI" to the "Options" directive.)
|
||||
#
|
||||
#AddHandler cgi-script .cgi
|
||||
|
||||
# For type maps (negotiated resources):
|
||||
#AddHandler type-map var
|
||||
|
||||
#
|
||||
# Filters allow you to process content before it is sent to the client.
|
||||
#
|
||||
# To parse .shtml files for server-side includes (SSI):
|
||||
# (You will also need to add "Includes" to the "Options" directive.)
|
||||
#
|
||||
AddType text/html .shtml
|
||||
AddOutputFilter INCLUDES .shtml
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Specify a default charset for all content served; this enables
|
||||
# interpretation of all content as UTF-8 by default. To use the
|
||||
# default browser choice (ISO-8859-1), or to allow the META tags
|
||||
# in HTML content to override this choice, comment out this
|
||||
# directive:
|
||||
#
|
||||
AddDefaultCharset UTF-8
|
||||
|
||||
<IfModule mime_magic_module>
|
||||
#
|
||||
# The mod_mime_magic module allows the server to use various hints from the
|
||||
# contents of the file itself to determine its type. The MIMEMagicFile
|
||||
# directive tells the module where the hint definitions are located.
|
||||
#
|
||||
MIMEMagicFile conf/magic
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Customizable error responses come in three flavors:
|
||||
# 1) plain text 2) local redirects 3) external redirects
|
||||
#
|
||||
# Some examples:
|
||||
#ErrorDocument 500 "The server made a boo boo."
|
||||
#ErrorDocument 404 /missing.html
|
||||
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
|
||||
#ErrorDocument 402 http://www.example.com/subscription_info.html
|
||||
#
|
||||
|
||||
#
|
||||
# EnableMMAP and EnableSendfile: On systems that support it,
|
||||
# memory-mapping or the sendfile syscall may be used to deliver
|
||||
# files. This usually improves server performance, but must
|
||||
# be turned off when serving from networked-mounted
|
||||
# filesystems or if support for these functions is otherwise
|
||||
# broken on your system.
|
||||
# Defaults if commented: EnableMMAP On, EnableSendfile Off
|
||||
#
|
||||
#EnableMMAP off
|
||||
EnableSendfile on
|
||||
|
||||
# Supplemental configuration
|
||||
#
|
||||
# Load config files in the "/etc/httpd/conf.d" directory, if any.
|
||||
IncludeOptional conf.d/*.conf
|
@ -92,6 +92,7 @@ services:
|
||||
- ./artifacts/web/log:/var/log/1c
|
||||
- ./artifacts/web/www/a/:/var/www/a/
|
||||
- ./artifacts/web/www/int/:/var/www/int/
|
||||
- ./artifacts/web/conf/httpd.conf:/etc/httpd/conf/httpd.conf
|
||||
- ./mnt:/mnt
|
||||
depends_on:
|
||||
- srv
|
||||
|
10
install.py
10
install.py
@ -14,12 +14,12 @@ class colors:
|
||||
WHITE = '\033[97m'
|
||||
|
||||
images = []
|
||||
# images.append(centos.New())
|
||||
# images.append(db.New())
|
||||
images.append(centos.New())
|
||||
images.append(db.New())
|
||||
images.append(site.New())
|
||||
# images.append(forum.New())
|
||||
# images.append(core.New())
|
||||
# images.append(gate.New())
|
||||
images.append(forum.New())
|
||||
images.append(core.New())
|
||||
images.append(gate.New())
|
||||
|
||||
debug = '-debug' in sys.argv
|
||||
start_time = datetime.now()
|
||||
|
@ -53,7 +53,7 @@ def web_publish_command(host_name, conf_name, internal, descriptor, base_name=''
|
||||
command.append('\'/mnt/other-files/vrd/{}.vrd\''.format(descriptor))
|
||||
return command
|
||||
|
||||
def create_ib_command(host_name, ib_name, conf_ver='', job_dn='N'):
|
||||
def create_ib_command(host_name, ib_name, file_name, job_block):
|
||||
command = []
|
||||
command.append('docker')
|
||||
command.append('exec')
|
||||
@ -62,9 +62,9 @@ def create_ib_command(host_name, ib_name, conf_ver='', job_dn='N'):
|
||||
command.append('/opt/1C/v8.3/x86_64/1cv8')
|
||||
command.append('CREATEINFOBASE')
|
||||
command.append('\'Srvr="srv";Ref="{0}";DBMS=PostgreSQL;DBSrvr="db";DB="{0}";DBUID="postgres";LicDstr="Y";Locale="ru_RU";CrSQLDB="Y";SchJobDn="{1}";\''.format(
|
||||
ib_name, job_dn))
|
||||
ib_name, job_block))
|
||||
command.append('/UseTemplate')
|
||||
command.append('/mnt/' + ib_name + '_' + conf_ver.replace('.', '_') + '.cf')
|
||||
command.append('/mnt/{}'.format(file_name))
|
||||
command.append('/Out "/mnt/create_ib_' + ib_name + '.out"')
|
||||
command.append('/DumpResult "/mnt/create_ib_' + ib_name + '.result"')
|
||||
return command
|
||||
|
Binary file not shown.
@ -1,6 +1,21 @@
|
||||
{
|
||||
"ИмяХоста": "HOSTNAMEREPLACE",
|
||||
"ИнформационныеБазы": [
|
||||
{
|
||||
"Сервер": "web/int/sm",
|
||||
"ИмяВКластере": "sm",
|
||||
"КодКонфигурации": "sm",
|
||||
"ТипКонфигурации": "Управляющая",
|
||||
"Администратор": "Администратор",
|
||||
"ПользовательУправления": "RemoteAccess",
|
||||
"ИмяВнешнейПубликации": "adm",
|
||||
"ИмяВнутреннейПубликации": "sm",
|
||||
"ИмяФайлаШаблонаВнешненийПубликации": "zoneless",
|
||||
"ИмяФайлаШаблонаВнутреннейПубликации": "zoneless",
|
||||
"СоздаватьВМенеджере": true,
|
||||
"ИмяФайлаКонфигурации":"sm.cf",
|
||||
"БлокироватьРаботуРегЗаданийПриСоздании": true
|
||||
},
|
||||
{
|
||||
"Сервер": "web/int/smtl",
|
||||
"ИмяВКластере": "smtl",
|
||||
@ -9,10 +24,12 @@
|
||||
"Администратор": "Admin",
|
||||
"ПользовательУправления": "RemoteAccess",
|
||||
"ИмяВнешнейПубликации": "smtl",
|
||||
"ИмяВнутреннейПубликации": "smtl",
|
||||
"ИмяФайлаШаблонаВнешненийПубликации": "withzone",
|
||||
"ИмяФайлаШаблонаВнутреннейПубликации": "zoneless",
|
||||
"СоздаватьВМенеджере": true,
|
||||
"ИмяФайлаКонфигурации":"smtl.cf"
|
||||
"ИмяФайлаКонфигурации":"smtl.cf",
|
||||
"БлокироватьРаботуРегЗаданийПриСоздании": false
|
||||
},
|
||||
{
|
||||
"Сервер": "web/int/sa",
|
||||
@ -22,10 +39,12 @@
|
||||
"Администратор": "",
|
||||
"ПользовательУправления": "",
|
||||
"ИмяВнешнейПубликации": "sa",
|
||||
"ИмяВнутреннейПубликации": "sa",
|
||||
"ИмяФайлаШаблонаВнешненийПубликации": "zoneless",
|
||||
"ИмяФайлаШаблонаВнутреннейПубликации": "zoneless",
|
||||
"СоздаватьВМенеджере": true,
|
||||
"ИмяФайлаКонфигурации":"sa.cf"
|
||||
"ИмяФайлаКонфигурации":"sa.cf",
|
||||
"БлокироватьРаботуРегЗаданийПриСоздании": false
|
||||
},
|
||||
{
|
||||
"Сервер": "",
|
||||
@ -35,23 +54,12 @@
|
||||
"Администратор": "Администратор",
|
||||
"ПользовательУправления": "",
|
||||
"ИмяВнешнейПубликации": "",
|
||||
"ИмяВнутреннейПубликации": "am",
|
||||
"ИмяФайлаШаблонаВнешненийПубликации": "",
|
||||
"ИмяФайлаШаблонаВнутреннейПубликации": "zoneless",
|
||||
"СоздаватьВМенеджере": false,
|
||||
"ИмяФайлаКонфигурации":"am.cf"
|
||||
},
|
||||
{
|
||||
"Сервер": "web/int/sm",
|
||||
"ИмяВКластере": "sm",
|
||||
"КодКонфигурации": "sm",
|
||||
"ТипКонфигурации": "Управляющая",
|
||||
"Администратор": "Администратор",
|
||||
"ПользовательУправления": "RemoteAccess",
|
||||
"ИмяВнешнейПубликации": "adm",
|
||||
"ИмяФайлаШаблонаВнешненийПубликации": "zoneless",
|
||||
"ИмяФайлаШаблонаВнутреннейПубликации": "zoneless",
|
||||
"СоздаватьВМенеджере": true,
|
||||
"ИмяФайлаКонфигурации":"sm.cf"
|
||||
"ИмяФайлаКонфигурации":"am.cf",
|
||||
"БлокироватьРаботуРегЗаданийПриСоздании": false
|
||||
}
|
||||
]
|
||||
}
|
138
start.py
138
start.py
@ -25,6 +25,16 @@ class colors:
|
||||
GREEN = '\033[92m'
|
||||
WHITE = '\033[97m'
|
||||
|
||||
class ib_prop:
|
||||
a_name = 'ИмяВнешнейПубликации'
|
||||
a_desc = 'ИмяФайлаШаблонаВнешненийПубликации'
|
||||
int_name = 'ИмяВнутреннейПубликации'
|
||||
int_desc = 'ИмяФайлаШаблонаВнутреннейПубликации'
|
||||
conf_file = 'ИмяФайлаКонфигурации'
|
||||
name = 'ИмяВКластере'
|
||||
job = 'БлокироватьРаботуРегЗаданийПриСоздании'
|
||||
adm = 'Администратор'
|
||||
|
||||
|
||||
def print_description(function_to_decorate):
|
||||
|
||||
@ -49,7 +59,7 @@ def call(command, remote=True, debug=False, action='', measure_duration=False, s
|
||||
commands.append(docker_run_str)
|
||||
commands.append(command)
|
||||
|
||||
if action != '':
|
||||
if action != '' and (debug or global_debug):
|
||||
print(action, end='\r')
|
||||
if debug or global_debug:
|
||||
print(' '.join(commands))
|
||||
@ -66,7 +76,7 @@ def call(command, remote=True, debug=False, action='', measure_duration=False, s
|
||||
stdout=stdout, stderr=stderr)
|
||||
end_time = datetime.now() - start_time
|
||||
|
||||
if action != '':
|
||||
if action != '' and (debug or global_debug):
|
||||
print(action, 'is fihish.', 'Duration:{}'.format(
|
||||
end_time) if measure_duration else '')
|
||||
|
||||
@ -84,44 +94,71 @@ def get_configurations_data():
|
||||
info_base_list.append(ib_data)
|
||||
|
||||
|
||||
def prepare_new_ib(key, post_data='', job_dn=False):
|
||||
def prepare_new_ib(ib_name, int_name, conf_file_name, job_block):
|
||||
|
||||
job_dn_str = 'Y' if job_dn else 'N'
|
||||
job_dn_str = 'Y' if job_block else 'N'
|
||||
|
||||
call(' '.join(helper.create_ib_command(host_name, key, configurations[key], job_dn_str)),
|
||||
call(' '.join(helper.create_ib_command(host_name, ib_name, conf_file_name, job_dn_str)),
|
||||
remote=False,
|
||||
action='Creating ' + key,
|
||||
action='Creating ' + ib_name,
|
||||
measure_duration=True)
|
||||
|
||||
call(' '.join(helper.install_control_ext_command(host_name, key)),
|
||||
call(' '.join(helper.install_control_ext_command(host_name, ib_name)),
|
||||
remote=False,
|
||||
action='Installing control extension',
|
||||
measure_duration=True)
|
||||
|
||||
ext_name = helper.replace_sep(local_work_dir + 'mnt/' + key + '.cfe')
|
||||
ext_name = helper.replace_sep(local_work_dir + 'mnt/' + ib_name + '.cfe')
|
||||
if os.path.isfile(ext_name):
|
||||
call(' '.join(helper.install_ext_command(host_name, key)),
|
||||
call(' '.join(helper.install_ext_command(host_name, ib_name)),
|
||||
remote=False,
|
||||
action='Installing extension',
|
||||
measure_duration=True)
|
||||
|
||||
if key == 'sm':
|
||||
call(' '.join(helper.install_sm_ext_command(host_name, key)),
|
||||
remote=False,
|
||||
action='Installing gate control extension',
|
||||
measure_duration=True)
|
||||
if ib_name == 'sm':
|
||||
post_data = '/mnt/other-files/params.json'
|
||||
call(' '.join(helper.install_sm_ext_command(host_name, ib_name)),
|
||||
remote=False,
|
||||
action='Installing gate control extension',
|
||||
measure_duration=True)
|
||||
else:
|
||||
post_data = ''
|
||||
|
||||
call(' '.join(helper.disable_safe_mode(host_name, key)),
|
||||
call(' '.join(helper.disable_safe_mode(host_name, ib_name)),
|
||||
remote=False,
|
||||
action='Disabling safe mode for extensions',
|
||||
measure_duration=True)
|
||||
|
||||
str_post = '-d @{}'.format(post_data) if post_data != '' else ''
|
||||
call('docker exec web.{} curl {} -X POST http://localhost/int/{}/hs/api.1cfresh/init'.format(host_name, str_post, key),
|
||||
call('docker exec web.{} curl {} -X POST http://localhost/int/{}/hs/api.1cfresh/init'.format(host_name, str_post, int_name),
|
||||
remote=False,
|
||||
action='Initialization',
|
||||
measure_duration=True)
|
||||
|
||||
@print_description
|
||||
def prepare_bases():
|
||||
"""Prepare all bases"""
|
||||
|
||||
sm_ib = None
|
||||
|
||||
for ib_data in info_base_list:
|
||||
if ib_data[ib_prop.name] == 'sm':
|
||||
sm_ib = ib_data
|
||||
continue
|
||||
prepare_new_ib(
|
||||
ib_name=ib_data[ib_prop.name],
|
||||
int_name=ib_data[ib_prop.int_name],
|
||||
conf_file_name=ib_data[ib_prop.conf_file],
|
||||
job_block=ib_data[ib_prop.job]
|
||||
)
|
||||
|
||||
# prepare sm base
|
||||
prepare_new_ib(
|
||||
ib_name=sm_ib[ib_prop.name],
|
||||
int_name=sm_ib[ib_prop.int_name],
|
||||
conf_file_name=sm_ib[ib_prop.conf_file],
|
||||
job_block=sm_ib[ib_prop.job]
|
||||
)
|
||||
|
||||
@print_description
|
||||
def renew_nginx_files():
|
||||
@ -147,6 +184,8 @@ def renew_workdir():
|
||||
call('rm -rf /out_files/workdir')
|
||||
call('mkdir -p {}mnt'.format(work_dir))
|
||||
call('mkdir -p {}artifacts'.format(work_dir))
|
||||
call('mkdir -p {}artifacts/web/conf'.format(work_dir))
|
||||
call('sh -c "cp /out_files/conf/web/httpd.conf {}artifacts/web/conf/httpd.conf"'.format(work_dir))
|
||||
call('sh -c "cp /out_files/distr/*.cf {}mnt/"'.format(work_dir))
|
||||
|
||||
|
||||
@ -172,23 +211,21 @@ def renew_other_files():
|
||||
def publish_sevises():
|
||||
"""Publish services"""
|
||||
|
||||
# publish a services
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'adm', False, 'zoneless', 'sm')), remote=False)
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'smtl', False, 'withzone')), remote=False)
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'sa', False, 'zoneless')), remote=False)
|
||||
for ib_data in info_base_list:
|
||||
if ib_data[ib_prop.a_name] != '':
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name=host_name,
|
||||
conf_name=ib_data[ib_prop.a_name],
|
||||
internal=False,
|
||||
descriptor=ib_data[ib_prop.a_desc],
|
||||
base_name=ib_data[ib_prop.name])), remote=False)
|
||||
|
||||
# publish int services
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'sm', True, 'zoneless')), remote=False)
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'smtl', True, 'zoneless')), remote=False)
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'sa', True, 'zoneless')), remote=False)
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name, 'am', True, 'zoneless')), remote=False)
|
||||
call(' '.join(helper.web_publish_command(
|
||||
host_name=host_name,
|
||||
conf_name=ib_data[ib_prop.int_name],
|
||||
internal=True,
|
||||
descriptor=ib_data[ib_prop.int_desc],
|
||||
base_name=ib_data[ib_prop.name])), remote=False)
|
||||
|
||||
# publish special services
|
||||
call(' '.join(helper.web_publish_command(
|
||||
@ -199,9 +236,8 @@ def publish_sevises():
|
||||
'extreg', 'sm;Usr=ExtReg;Pwd=' + sup_password)), remote=False)
|
||||
|
||||
# restart Apache
|
||||
call('docker exec web.' + host_name +
|
||||
' chown -R usr1cv8:grp1cv8 /var/www', remote=False)
|
||||
call('docker exec web.' + host_name + ' httpd -k graceful', remote=False)
|
||||
call('docker exec web.{} chown -R usr1cv8:grp1cv8 /var/www'.format(host_name), remote=False)
|
||||
call('docker exec web.{} httpd -k graceful'.format(host_name), remote=False)
|
||||
|
||||
|
||||
@print_description
|
||||
@ -211,11 +247,11 @@ def set_full_host_name(is_new):
|
||||
global host_name
|
||||
if is_new:
|
||||
part_host_name = helper.get_host_name(sys.argv)
|
||||
f = open(local_work_dir + 'hostname', 'x+')
|
||||
f = open('.hostname', 'w+')
|
||||
f.write(part_host_name)
|
||||
f.close()
|
||||
else:
|
||||
f = open(local_work_dir + 'hostname')
|
||||
f = open('.hostname')
|
||||
part_host_name = f.read() + host_name
|
||||
f.close()
|
||||
|
||||
@ -245,6 +281,13 @@ def delete_control_extension(ib_name, user, desc):
|
||||
|
||||
call(' '.join(helper.delete_control_extension(ib_name, host_name, user)), remote=False)
|
||||
|
||||
def delete_all_control_ext():
|
||||
for ib_data in info_base_list:
|
||||
delete_control_extension(
|
||||
ib_name=ib_data[ib_prop.name],
|
||||
user= None if ib_data[ib_prop.adm] == '' else ib_data[ib_prop.adm],
|
||||
desc=ib_data[ib_prop.name]
|
||||
)
|
||||
|
||||
@print_description
|
||||
def configurate_site():
|
||||
@ -271,18 +314,22 @@ def init_gate():
|
||||
|
||||
call('docker exec -t web.{0} curl --user Администратор: https://{0}/a/adm/hs/docker_control/update_appgate'.format(host_name),
|
||||
remote=False)
|
||||
|
||||
|
||||
@print_description
|
||||
def wait_postgres():
|
||||
"""Waiting for postgres"""
|
||||
|
||||
call('docker exec -t db.{} /wait_postgres.sh'.format(host_name), remote=False)
|
||||
|
||||
|
||||
@print_description
|
||||
def wait_site():
|
||||
"""Waiting for site"""
|
||||
|
||||
call('docker exec -t site.{} /wait_site.sh'.format(host_name), remote=False)
|
||||
|
||||
|
||||
@print_description
|
||||
def enable_job_in_sm():
|
||||
"""Enable scheduled jobs sm"""
|
||||
@ -290,6 +337,7 @@ def enable_job_in_sm():
|
||||
call('docker exec -t ras.{} deployka scheduledjobs unlock -db sm -db-user \'Администратор\''.format(host_name),
|
||||
remote=False)
|
||||
|
||||
|
||||
global_start_time = datetime.now()
|
||||
print('{}Fresh is starting{}'.format(colors.GREEN, colors.WHITE))
|
||||
|
||||
@ -299,13 +347,11 @@ call(docker_compose_str + 'down', remote=False, silent=False)
|
||||
new_server = '-new' in sys.argv
|
||||
global_debug = '-debug' in sys.argv
|
||||
|
||||
if new_server:
|
||||
renew_workdir()
|
||||
get_configurations_data()
|
||||
|
||||
set_full_host_name(new_server)
|
||||
|
||||
if new_server:
|
||||
renew_workdir()
|
||||
get_configurations_data()
|
||||
renew_nginx_files()
|
||||
renew_docker_compose()
|
||||
renew_other_files()
|
||||
@ -316,10 +362,7 @@ wait_postgres()
|
||||
|
||||
if new_server:
|
||||
publish_sevises()
|
||||
prepare_new_ib('smtl')
|
||||
prepare_new_ib('sa')
|
||||
prepare_new_ib('am')
|
||||
prepare_new_ib('sm', post_data='/mnt/other-files/params.json')
|
||||
prepare_bases()
|
||||
enable_job_in_sm()
|
||||
create_db_site()
|
||||
create_db_forum()
|
||||
@ -329,10 +372,7 @@ call(docker_compose_str + 'up -d nginx site', remote=False, silent=False)
|
||||
wait_site()
|
||||
|
||||
if new_server:
|
||||
delete_control_extension('smtl', 'Admin', 'smtl')
|
||||
delete_control_extension('am', 'Администратор', 'am')
|
||||
delete_control_extension('sm', 'Администратор', 'sm')
|
||||
delete_control_extension('sa', None, 'sa')
|
||||
delete_all_control_ext()
|
||||
configurate_site()
|
||||
init_gate()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user