LINUX.ORG.RU

Сообщения SpaceRanger

 

Puppet и возвращаемые значения из функций

Привет, ЛОРчик!

Подскажи, что я делаю не так, пожалуйста. Написал функцию, которая должна на ноде чекать содержимое файла и возвращать результат в зависимости от.

Puppet::Functions.create_function(:'check') do
  dispatch :isin do
    param 'String', :path_string
    param 'String', :check_string
    return_type 'Boolean'
  end 

  def isin(path_string, check_string)
    if File.readlines("/etc/default/grub").each do | line |
      return true if line.include?("ipv6")
    end 
      return false
    end 
  end 
end

Функция работает и действительно возвращает верный результат в зависимости от того, есть ли что нибудь про ipv6 в файле или нет.

Затем в модуле описываю логику так

class m_grub {
  include stdlib
  $grub_path="/etc/default/grub"

  $res = Deferred("check",['/etc/default/grub','ipv6']) 
  notify { 'TEST RES':
    message => Deferred(
                 'sprintf',
                 ['Result is : %s', $res]
               ),
  }  
   
  if $res == 'true' {
    notify { 'TRUE': }
  } elsif $res == 'false' {
    notify { 'FALSE': }
  }
}

Проблема в том, что возвращается true, а ни одна нотифайка не выполняется. Причем, если вручную назначать $res = ‘true’ или ‘false’, то всё работает, как положено.

Подскажи, лорчик, гдле ошибка?

Заранее высылаю бандероль с квантами успеха.

Перемещено hobbit из general

 

SpaceRanger
()

Крик души

Извините, но я больше не могу молчать. Господи! Какое же дерьмище этот паппет! Я сейчас изучаю по нужде этот кусок медвежьего говна и страдаю каждую минуту.

Документация это отдельный разговор. Не припомню сходу, видел ли я доки хуже. Такое ощущение складывается, что они специально написали ей левой ногой, чтобы народ у них курсы по их корявой поделке покупал. Вот вышла версия паппета номер 2 и там появилась функция А - окей, авторы описали эту функцию в доке к верссии 2. Затем вышла версия паппет номер 3 - и в документации к верссии 3 будет только функция Б, функция А останется в доках ко второй версии. И приходится постоянно прыгать между версиями, а их на минуточку 7 и промежуточные релизы.

В дополнение к сказанному, эта технология ещё и полудохлая. Последняя книга выходила аж в 2015 году. Инфу как сделать то и как сделать это надо искать по крупицам в гугле, буквально по крупицам!

Возможно, на моё восприятие ещё повлиял синдром утки, так как первым я изучил ансибл. Боженька ты мой, какие светлые воспоминания. Всё логично, стройно и подробнейшим образом расписано. А вкупе с огромным коммьюнити, можно решить или хотя бы нагуглить решение практически любой проблемы. Слава ансиблу. Позор и свалка истории паппету.

Паппет сложен просто по приколу. ни одной причины я не увидел зачем было чрезмерно усложнять и запутывать устройство этого выблева пьяной бомжихи.

Даже денег некому дать, чтобы научили пользоваться этим пережитком прошлого. Тот же скиллбокс вежливо пояснил, что такому отсталому говну не учат. Мол, сорян, это вам к сантехникам.

Я кончил.

 

SpaceRanger
()

ssh соединение оказывается в маленьком окне

Посоны, привет. Первый раз такое вижу. Погуглил, но даже как правильно составить запрос не знаю. Вобщем в виртуалбоксе крутится центось, к ней по ссш и цепляюсь. И получается:

  1. Маленькая активная область окна.
  2. Как будто бы лайв режим. То есть всё, что я делаю в удаленном подключении - отображается и на виртуалке. Нажал ентер в путти - ентер нажался и на экране виртуалбокса.

конфиг sshd на виртуалке вот такой

#       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#PubkeyAuthentication no
#AuthorizedKeysFile     .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
#PasswordAuthentication yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#KerberosUseKuserok yes

# GSSAPI options
#GSSAPIAuthentication no
GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM no
#UsePAM yes

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding no
#X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server
UseDNS no
GSSAPIAuthentication no

Это что такое и как лечить?

 , ,

SpaceRanger
()

Превью с generate-all в nextcloud

Всем привет. ЛОР, подскажи, где проблема?

Есть сскриптик, который раз в 5 минут по крону должен стартовать и генерировать превьюшки

#!/bin/bash

echo $(date) Generator has started >> generator_counter
php /var/www/html/occ preview:generate-all -vvv
echo $(date) Generator has finished >> generator_counter

Когда я запускаю его ручками, то в логе generator_counter разница во времени правдоподобна времени работы скрипта - 20 секунд

Fri Apr 7 14:35:45 UTC 2023 Generator has started
Fri Apr 7 14:36:25 UTC 2023 Generator has finished

Когда же запуск происходит по крону

*/5 * * * * bash -c /var/www/preview-generator.sh

то время работы вообще 0 секунд

Fri Apr 7 14:45:01 UTC 2023 Generator has started
Fri Apr 7 14:45:01 UTC 2023 Generator has finished

В чём косяк то?

 

SpaceRanger
()

Как копировать красиво по scp через миллион хопов?

Вот есть в винде китти, а там встроен WinSCP. Захожу на нужный хост, првый клик - > открыть winscp и я готов к копированию. На линуксе же либо пердолинг с туннелями, либо scp последовательно с хоста на хост, пока не доберёшься до нужного. Как решить эту проблему с юзабилити и по красоте?

 

SpaceRanger
()

Кастом модуль для ансибл

Привет, посоны.

Написал свой модуль для ансибла - всё работает, но есть одна деталь, которая не даёт покоя. Почему, когда условие модуля отрабатывает без ошибок, то ансибл просто пишет

ok: [HOSTNAME -> localhost]

вместо того, чтобы мне показать моё сообщение? Причем, в многословном режиме -vvv мессага показывается. Щито делать и кто виноват?

from ansible.module_utils.basic import *
import os


def check(file, ip):
    with open(file, 'r+') as f:
        content = f.readline()
        if content == "":
            os.remove(file)
            msg = "NO ERRORS FOUND IN %s" % (ip)
            rc=0
            return {'changed':False,'failed':False,'message': msg}
        else:
            msg = "ERRORS FOUND IN %s" % (ip)
            rc=1
            return {'changed':True,'failed':True,'message': msg}


def run_module():
    # Arguments
    module_args = dict(
        directory=dict(type='str', required=True),
        ip=dict(type='str', required=True)
    )

    # Result Dictionary
    result = dict(
        changed=False,
        failed=False,
        message=''
    )

    # Handle Exception
    try:
        # Initialize AnsibleModule
        module = AnsibleModule(
            argument_spec=module_args,
            supports_check_mode=True
        )

        # Get Module Parameters
        dir = module.params['directory']
        ip = module.params['ip']

        # Construct Response Message
        result = check(dir, ip)

        # Return The Response
        module.exit_json(**result)

    except Exception as e:
        # Handle Exception
        result['message'] = str(e)
        module.fail_json(msg=result['message'])

if __name__ == '__main__':
    run_module()

Заранее рассылаю во все стороны флюиды токсичной маскулинности и гендерного абьюза.

 ,

SpaceRanger
()

Хочу гугол пиксель 7

Посоны, поясните по хардкору, почему EU версия стоит ощутимо дороже JP и US? Я знаю, что в японке не отключаемые звуки камеры (пишут, что отключаются относительно легко рутованием и прочим шаманством). Но в чем такая разница между EU и US? US уважаемые западные партнёры могу блокирнуть, а ЕЮ не могут?

Также хотелось бы выяснить, сильно ли я сосну с 128Гб вместо 256? ФОткаю раз в месяц счётчики.

Хочу избавиться от ифона, потому что это такой кал, что я того Кука маму в кино водил. Плюс к тому, все эти санкционные двигули от производителя телефонов меня огорчают. На андроиде хотя бы можно воткнуть альтернативные магазины. К тому же, поговаривают, что по фоточкам ифон отсасывает у пикселя по полной.

Ну и пользовался кто яндекс сплитом? какие подводные?

 ,

SpaceRanger
()

Получить список субдиректорий, распарсить имена и использовать в качестве переменных

Привет, ЛОРчик!

Подскажи, как действовать, плес. Есть список директорий в /home/user/test_dir

/home/user/test_01
/home/user/test_2
/home/user/test_30
/home/user/blabla
/home/user/blabla1

Задача состоит в том, чтобы из test_1 взять только 1 и потом её где-то там дальше использовать.

Получить список директорий могу вот так

- name: test
  hosts: all
  tasks:
    - name: get dir names
      find:
        paths: /home/user/test_dir
        file_type: directory
        use_regex: yes
        patterns:'.*(?!test_)[0-9]+'
      register: dir_list

   -debug:
        msg: "{{ item.path }}"
    with_items: "{{ dir_list.files }}"

Пробема тут в том, что дебак выводит в msg полный путь path, а не последний цифры в имени директории test_01. и как это самое test_01 потом парсить, штоп 01 извлечь? Точнее гвооря, как вытаскивать 01 то я знаю, а как оперировать с перемнной в ансибле -нет

Кстати, как вообще просто вывести список директорий, прошедших через регэксп?

Прошу не гнать ссаными тряпками, потому как ансибл я толькл-только постигаю.

 

SpaceRanger
()

Вот я и докатился

…до ощущения, что винда на домашнем компе мне не удобна и хочется накатить арчик с великолепным КДЕ. Проблема в том, что ввиду наличия 47 хромосом, я вместо комьютера купил игровой ноут и установить линупс на него значит испытать вселенские страдания и погрузится в хтонь. Не повторяйте моих ошибок.

P.S. В игорях линупс по прежнему сосёт.

 

SpaceRanger
()

k3s не запускается

ЛОР, привет. Такое дело, что к3s ставится и даже стартует, но висит на этапе CreatePodSandbox for pod failed Сама установка вроде как банальна - скопировать строку с сайта к3с и вставить в командную строку. Вот что пишет в логе

 kuberuntime_manager.go:782] "CreatePodSandbox for pod failed" err="rpc error: code = Unknown desc = failed to get sandbox image \"rancher/mirrored-pause:3.6\": failed to pull image \"rancher/mirrored-pause:3.6\": failed to pull and unpack image \"docker.io/rancher/mirrored-pause:3.6\": failed to resolve reference \"docker.io/rancher/mirrored-pause:3.6\": failed to do request: Head \"https://registry-1.docker.io/v2/rancher/mirrored-pause/manifests/3.6\": dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:38609->[::1]:53: read: connection refused" pod="kube-system/coredns-5c6b6c5476-5cnqm"

Там на самом деле много больше строк, но все они сводятся к тому, что не может скачать \"docker.io/rancher/mirrored-pause:3.6\"

А почему не может то? Ставлю в виртуалку, виртуалка в мосте с сетевым интерфейсом хоста. Доступ к интернетам вполне себе есть. Если верить гуглу, то я один из двух бедолаг с такой проблемой. Заранее высылаю лучи тестостерона и харизмы в стороны ответивших.

 k3s

SpaceRanger
()

КДЕ - лучшее ДЕ со времен зарождения линукса

Гном 2 был хорош, но он рипнулся. XFCE - жалкая попытка возродить былую славу.

Тайлинговые ДЕ - игрушка для пердоликов с кучей свободного времени, чтобы ковыряться в бесконечных попытках настроить под себя километровые конфиги

Гном 3 - наркоманское поделию уколовшихся кокаином манагеров.

КДЕ 5 - спасение мира во всём его великолепии. А вкупе с висмутом - бесспорный лидер, собирающий все овации. Тяночки улыбаются, суровые админы утирают скупую слезу счастья.

Бурные аплодисметы. Все встают.

 

SpaceRanger
()

KDE bismuth

Привет, ЛОР. Наверное, многие знают о таком пушечном плагине для квина, как висмут? Если нет, то это норм тема, рекомендую. Вопрос к тем, кто знает и пользуется. Если я мышкой беру окно и тащу его на второй монитор, то как висмут заставить встроить это окно в стройный тайловый порядок? Дело в том, что если с первого раза получится - то всё норм (окна разъезжаются и освобождают место для нового окна), а если с первой попытки не вышло, то окно какбэ не в тайлинге уже и какбэ само по себе. То есть в талинговом лейауте уже не отображается, а как будто бы отдельное такое себе окно. ЧЯДНТ?

 bismuth,

SpaceRanger
()

Сопоставление сетевого интерфейса и службы

ЛОР, подскажи, плез, как сопоставить, какой сервис какой сетевой интерфейс использует? Сходу не нагуглил, а время поджимает. Сейчас у меня такая портянка

lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 1c:1b:0d:d1:4c:50 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.111/24 brd 192.168.0.255 scope global enp3s0
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:f5:30:df brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: br-32124c9c61e6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:8b:c5:90:33 brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.1/16 brd 172.19.255.255 scope global br-32124c9c61e6
       valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:6f:55:c6:85 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
6: br-92d2106e88fe: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:09:39:ad:da brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-92d2106e88fe
       valid_lft forever preferred_lft forever
7: br-eeaf23e556dd: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:f4:81:1a:d5 brd ff:ff:ff:ff:ff:ff
    inet 172.23.0.1/16 brd 172.23.255.255 scope global br-eeaf23e556dd
       valid_lft forever preferred_lft forever
346: br-ed986555cf63: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:a8:25:a7:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.80.1/20 brd 192.168.95.255 scope global br-ed986555cf63
       valid_lft forever preferred_lft forever
348: veth14b7155@if347: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-ed986555cf63 state UP group default 
    link/ether 62:e1:f4:20:be:21 brd ff:ff:ff:ff:ff:ff link-netnsid 0
350: vethba9a3ca@if349: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-ed986555cf63 state UP group default 
    link/ether 0a:c4:e5:0d:b0:c6 brd ff:ff:ff:ff:ff:ff link-netnsid 1
351: br-29a8e5b9b061: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:02:60:1f:3d brd ff:ff:ff:ff:ff:ff
    inet 192.168.49.1/24 brd 192.168.49.255 scope global br-29a8e5b9b061
       valid_lft forever preferred_lft forever
359: veth2288346@if358: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-29a8e5b9b061 state UP group default 
    link/ether 8e:90:cd:66:1e:25 brd ff:ff:ff:ff:ff:ff link-netnsid 2

и вот такие имена veth14b7155@if347 смотрятся огорчительно. Не понятно кто есть кто.

Заранее шлю лучи благодати.

 

SpaceRanger
()

Не верное имя хоста в ответе icmp

Привет, ЛОР. Не гони ссаными тряпками, потому как я в описанной ниже проблеме новичок. Короче, купил доменное имя, сделал А запись в днс. Но почему то при пинге skufidon.ru, в ответе вижу не имя skufidon, а имя сервера хостера. Сам сервер у меня стоит под кроватью, белый ип купил у прова. Чому и как исправить? гугол гуглил, но так и не смог составить правильный запрос, выдаёт какую-то не релевантную фигню

└─[$] ping skufidon.ru                                                                                                                                                                                                                                                                                           [13:59:07]
PING skufidon.ru (46.160.246.28) 56(84) bytes of data.
64 bytes from host246-28.infolink.ru (46.160.246.28): icmp_seq=1 ttl=56 time=3.02 ms
64 bytes from host246-28.infolink.ru (46.160.246.28): icmp_seq=2 ttl=56 time=3.02 ms

В DNS только одна А запись

┌─[shard@arch] - [~] - [675]
└─[$] dig skufidon.ru                                                                                                                                                                                                                                                                                            [14:00:49]

; <<>> DiG 9.18.11 <<>> skufidon.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59729
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;skufidon.ru.                   IN      A

;; ANSWER SECTION:
skufidon.ru.            60      IN      A       46.160.246.28

;; Query time: 0 msec
;; SERVER: 10.30.11.199#53(10.30.11.199) (UDP)
;; WHEN: Sat Feb 04 14:11:08 MSK 2023
;; MSG SIZE  rcvd: 56

как host246-28.infolink.ru заменить на skufidon.ru ??

 ,

SpaceRanger
()

nginx как реверс прокси в контейнере

Котаны, помогите, я близок к отчаянию. Хочу nginx поставить как реверс, за которым пока что некстклауд, потом будет что-то еще. Это всё в контейнерах. docker-compose:

  1 version: '1'
  2
  3 services:
  4   reverse_proxy:
  5     image: nginx:latest
  6     restart: always
  7     ports:
  8       - "51623:80"
  9     container_name: nginx_reverse
 10     volumes:
 11       - /home/observer/BKP/nextcloud/nginx:/etc/nginx/conf.d
 12     networks:
 13       - nextcloud-net                                                                                                                                                                                      
 14
 15   database:
 16    image: mariadb
 17    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --skip-innodb-read-only-compressed
 18    restart: always
 19    volumes:
 20      -  /home/observer/BKP/nextcloud/mariadb:/var/lib/mysql
 21    container_name: mariadb_docker
 22    environment:
 23      - MYSQL_ROOT_PASSWORD=user
 24      - MYSQL_PASSWORD=Password
 25      - MYSQL_DATABASE=nextcloud
 26      - MYSQL_USER=nextcloud
 27    networks:
 28    - nextcloud-net
 29
 30   nextcloud:
 31     image: nextcloud
 32     restart: always
 33     depends_on:
 34       - database
 35       - reverse_proxy
 36     container_name: nextcloud_docker
 37     volumes:
 38       - /home/observer/BKP/nextcloud/apps:/var/www/html/apps
 39       - /home/observer/BKP/nextcloud/config:/var/www/html/config
 40       - /home/observer/BKP/nextcloud/data:/var/www/html/data
 41     networks:
 42      - nextcloud-net
 43
 44 networks:
 45   nextcloud-net:

А вот default.conf для nginx


╰─ cat default.conf
server {
      listen       80;

      location / {

         proxy_pass http://nextcloud_docker:80;
                 proxy_set_header   Host $host;
         proxy_set_header   X-Real-IP $remote_addr;
         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header   X-Forwarded-Host $server_name;
       }                                                                                                                                                                                                       
}

C таким конфигом он даёт зайти на localhost:51623. Но когда ссылка меняется на, к примеру, http://localhost/apps/dashboard/ - то 403 и форбидден. Причем, если вот так http://localhost:51623/apps/dashboard/ - то работает

У меня 2 вопроса к уважаемым знатокам:

  1. Почему nginx в строке браузера localhost:51623 не меняет на nextcloud_docker
  2. Почему теряется номер порта в ссылках? В идеале то вообще чтобы его не было, а был просто nextcloud_docker в адресной строке.

Заранее шлю лучи благодати в разные стороны.

 , ,

SpaceRanger
()

Послать алерт по ссш

Привет, ЛОР. Есть задача, не знаю как реализовать. Помоги с идеей, плес. Суть следующая: на удаленном хосте есть файлик, у которого надо мониторить время модификации. Если изменений в нем не происходит в течении, допустим, 5 минут - надо как то послать алерт на другую машину. Это всё надо закостылить на питоне. Дело осложняется тем, что на собственно удаленном хосте крутится рхел не лицензионный, то есть поставить из реп ничего не выйдет. Да и вообще там ставить ничего дополнительного какбэ не рекомендуется. Питон там 2.6.6. Собственно, наколхозить программу по отслеживанию проблем не вызывает. Проблема в том, как слать уведомлялки и куда. Может есть у кого КЕЙСЫ ?

Заранее благодарю и желаю процветания, жены хорошей и счастья.

 

SpaceRanger
()

Установка/настройка nextcloud

Посоны, ставлю домашнее облако в контейнерах. докер-композе:

  1 version: '1'
  2
  3 services:
  4   db:
  5     image: mariadb
  6     command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --skip-innodb-read-only-compressed
  7     restart: always
  8     volumes:
  9       -  /home/observer/BKP/nextcloud/mariadb:/var/lib/mysql
 10     container_name: mariadb_docker
 11     environment:
 12       - MYSQL_ROOT_PASSWORD=Super_puper_password
 13       - MYSQL_PASSWORD=Super_secure_password
 14       - MYSQL_DATABASE=nextcloud
 15       - MYSQL_USER=nextcloud
 16
 17   app:
 18     image: nextcloud
 19     restart: always
 20     ports:
 21       - 51623:80
 22     links:
 23       - db
 24     container_name: nextcloud_docker
 25     volumes:
 26       - /home/observer/BKP/nextcloud/apps:/var/www/html/apps
 27       - /home/observer/BKP/nextcloud/config:/var/www/html/config
 28       - /home/observer/BKP/nextcloud/data:/var/www/html/data

BKP это отдельный диск, примонтированный дома

Так как, в случае чего, не хотелось бы всё потерять, поэтому спрошу совета, как секурно и надёжно сделать?

Для начала выяснил, что неплохо бы SSL сертификат прикрутить. Щас извне хожу по хттп и это меня напрягает. Но Let’sEncrypt вроде как прекратил их давать для РФ, не? Где тогда брать? Может ещё советы есть от бывалых (кроме сделать бочку и самозабаниться).

благодарю всех докладчиков.

 ,

SpaceRanger
()

Перенос системы с одного компа на другой

Привет, ЛОР. Тут такое дело, что предстоит мне переехать с ноута на десктоп, но как представлю, что нужно заново всё устанавливать/настраивать - так сразу с сердцем плохо становится. Поэтому пришлось вспомнить, что наверняка можно всё красиво перенести на новый диск со старого. У меня пока только одна идея - архивируем корень и переносим на новый раздел, архивируем хоме и пренеосим на новый раздел. Тогда вроде никакие права не должны побиться. Но меня смущает один момент, не будет ли каких конфликтов в дровах, всё таки железо то разное будет?

Или может быть есть какая то утилитка, которая просмотрит мою изначальную систему (ну типа что установлено было, конфиги и файлы добавленные мной), сделает необходимые выводы и автоматически отзеркалит её на новый ССД?

Заранее благодарю всех докладчиков.

 

SpaceRanger
()

Передать значение переменной во внешнюю программу

Привет, ЛОР. Скорее всего вопрос нубовый, но тем не менее. Есть переменная А, значение которой строка. Как мне это значение передать во внешнюю прогу (например, wc)?

subrocess.run(["wc", A])

чот не работает. Ну я и сам вижу, что как-то не так выглядит (о чем мне и говорит вываливающаяся ошибка).

 

SpaceRanger
()

Docker (начала)

Привет, ЛОР. С наступившим! Пусть он принесет меньше кринжа и бугуртов, больше флекса и чила.

Осваиваю контейнеры, чтобы всем говорить о том, насколько они не нужны. Упёрся в как будто бы простую проблему, но решить её не получается. Делаю по старому туториалу и , полагаю, что до сих пор должно работать.

Есть приложение на питоне: my_module.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Connected as volume!\n'

и testapp.py

from my_module import app as application


if __name__ == '__main__':
    application.run(debug=True,host='0.0.0.0')

Собираю образ. Dockerfile

FROM python:3.4

RUN pip install Flask==0.10.1 https://github.com/unbit/uwsgi/archive/uwsgi-2.0.zip#egg=uwsgi
Workdir /app
Copy app /app

CMD ["uwsgi","--http", "0.0.0.0:9000", "--wsgi-file", "/app/testapp.py", "--callable",\
"app", "--stats", "0.0.0.0:9001"]

Образ создается без ошибок, всё красиво. Запускаю образ

docker run --rm -d -p 9000:9000 -p 9001:9001 testapp

и теперь ожидаю, что на портах 9000 и 9001 локалхоста будет ответ от WSGI, однако там Internal server error. То есть сам сервер работает, но питоновский скрипт нет. В логах контейнера вижу:

*** Operational MODE: single process ***
unable to find "application" callable in file /app/testapp.py
unable to load app 0 (mountpoint='') (callable not found or import error)

Соответственно, при запросах к серваку, ругается, что питоновской проги не найдено

--- no python application found, check your startup logs for errors ---

Полагаю, что именно в этом и заключается проблема, но как её победить не знаю и прошу помощи. Кстати, разнести скрипт на основной и модуль мне подсказал гугол ( если модуль прям в основную программу запихнуть - тоже не работает), типа WSGI ожидает увидеть моё application в качестве переменной.

Щито делать то (ну кроме самовыпила с лора)?

 

SpaceRanger
()

RSS подписка на новые темы