Папки шлюза: тестовый — igate_exchange_test, боевой — igate_exchange; все папки в сообщении; Samba — в установщике
- Имена папок: тестовый контур — igate_exchange_test, боевой — igate_exchange (было igate_exchange и igate_exchange_prod); bj переименовывает открытые по прежней схеме сам — при сверке, в первый раз через 30 с после запуска. - После сохранения — все открытые папки с контуром: \\IP\igate_exchange_test (тестовый TEST3), \\IP\igate_exchange (боевой). - Закрыть папки — Samba выключается (сервер не отвечает по SMB, пока папок нет). - Установщик (bj-installer, preseed Debian, слой пакетов образа Ubuntu): samba, winbind, libnss-winbind — заранее, чтобы в закрытом контуре папки открывались без интернета; необязательной частью (нет на диске и нет сети — установка bj продолжается); службы выключены до открытия папок. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -300,8 +300,9 @@ func (in *installer) stepPackages() (string, error) {
|
||||
withJava := append(pkgs, javaPkg(debs))
|
||||
args := append([]string{"install", "-y", "-qq", "--no-install-recommends"}, debs...)
|
||||
if _, err := runEnv(env, "apt-get", append(args, withJava...)...); err == nil {
|
||||
smb := in.stepSamba(env, debs)
|
||||
_ = os.RemoveAll(in.P(debsDir))
|
||||
return strings.Join(withJava, ", ") + " (с образа, без загрузки)", nil
|
||||
return strings.Join(withJava, ", ") + " (с образа, без загрузки)" + smb, nil
|
||||
}
|
||||
}
|
||||
if out, err := runEnv(env, "apt-get", "update", "-qq"); err != nil {
|
||||
@@ -312,7 +313,28 @@ func (in *installer) stepPackages() (string, error) {
|
||||
if out, err := runEnv(env, "apt-get", args...); err != nil {
|
||||
return "", fmt.Errorf("apt-get install: %v\n%s", err, tail(out, 12))
|
||||
}
|
||||
return strings.Join(pkgs, ", "), nil
|
||||
return strings.Join(pkgs, ", ") + in.stepSamba(env, nil), nil
|
||||
}
|
||||
|
||||
// sambaPkgs — для папок обмена шлюза НРД по сети (Настройка → НРД → «Папки шлюза по сети»): Samba и вход
|
||||
// через домен (winbind). Ставятся заранее, чтобы в закрытом контуре папки открывались без интернета.
|
||||
var sambaPkgs = []string{"samba", "winbind", "libnss-winbind"}
|
||||
|
||||
// stepSamba — поставить Samba необязательной частью: не вышло (нет на диске образа и нет сети) — установка bj
|
||||
// продолжается, Samba поставится при первом открытии папок. Службы выключены, пока папки не открыты в bj:
|
||||
// иначе сервер сразу отвечал бы по SMB.
|
||||
func (in *installer) stepSamba(env []string, debs []string) string {
|
||||
if in.root != "" {
|
||||
return ""
|
||||
}
|
||||
args := append([]string{"install", "-y", "-qq", "--no-install-recommends"}, debs...)
|
||||
if _, err := runEnv(env, "apt-get", append(args, sambaPkgs...)...); err != nil {
|
||||
return "; Samba не установлена — поставится при первом открытии папок шлюза по сети"
|
||||
}
|
||||
for _, u := range []string{"smbd", "nmbd", "winbind", "samba-ad-dc"} {
|
||||
_, _ = run("systemctl", "disable", "--now", u)
|
||||
}
|
||||
return ", " + strings.Join(sambaPkgs, ", ") + " (службы выключены до открытия папок)"
|
||||
}
|
||||
|
||||
func (in *installer) stepSystem() (string, error) {
|
||||
|
||||
Reference in New Issue
Block a user