Как отредактировать свою систему Arch, чтобы на каждом терминале отображалось собственное сообщение?

У меня была та же проблема, и я потратил большую часть своего утра на ее решение. Эта проблема возникает при использовании SSL-сертификата для RabbitMQ в качестве транспорта.

1 )Без SSL :Можно добиться транспортировки через RabbitMQ, имея следующий файл конфигурации config.json (/etc/sensu)

{
  "rabbitmq": {
    "host": "172.19.4.81",
    "port": 5671,
    "vhost": "/sensu",
    "user": "sensu",
    "password": "secret"
  },
 "transport": {
    "name": "rabbitmq",
    "reconnect_on_error": true
  },
  "api": {
    "host": "localhost",
    "bind": "0.0.0.0",
    "port": 4567
  },
"checks": {
    "check_http": {
      "type": "metric",
      "command": "/usr/lib64/nagios/plugins/check_http -I 127.0.0.1",
      "interval": 40,
      "standalone": true,
    }
  },
  "client": {
    "subscriptions": [
      "production"
    ]
  }
}

Это можно разделить на разные файлы и сохранить в /etc/sensu/conf.d. Sensu загружает все файлы, присутствующие в conf.d и config.json. Так что место не имеет значения. Меня это как раз устраивает тем, что вся конфигурация находится в одном месте.

2 )С SSL :Точная причина проблемы может находиться в /var/log/rabbitmq. Однако для моего случая это показало

RABBITMQ ERROR LOG :
** Reason for termination =
** {function_clause,[{tls_v1,enum_to_oid,
[28],
[{file,"tls_v1.erl"},{line,404}]},
{ssl_handshake,'-dec_hello_extensions/2-blc$^1/1-0-',1,
[{file,"ssl_handshake.erl"},{line,1653}]},
{ssl_handshake,'-dec_hello_extensions/2-blc$^1/1-0-',1,
[{file,"ssl_handshake.erl"},{line,1653}]},
{ssl_handshake,dec_hello_extensions,2,
[{file,"ssl_handshake.erl"},{line,1653}]},
{tls_handshake,decode_handshake,3,
[{file,"tls_handshake.erl"},{line,182}]},
{tls_handshake,get_tls_handshake_aux,3,
[{file,"tls_handshake.erl"},{line,153}]},
{tls_connection,next_state,4,
[{file,"tls_connection.erl"},{line,454}]},
{gen_fsm,handle_msg,7,
[{file,"gen_fsm.erl"},{line,505}]}]}

и решение было обновлено до Erlang >= 17.5. как упоминалось здесь и на портале devops.

Эрланг, предоставляемый репозиторием epel, имеет версию R16B03, и его лучше удалить и обновить. Поскольку по какой-то причине Erlang из репозитория Erlang Solutions не был установлен, я взял Zero -зависимость Erlang RPM для RabbitMQ, предоставленную Rabbitmq. репозиторий erlang и настроил ssl, как указано sensu. (загрузите сертификаты ssl, укажите точный путь в файлах конфигурации rabbitmq и sensu)

а. SSL-сертификаты Загрузите его по адресу

wget http://sensuapp.org/docs/1.0/files/sensu_ssl_tool.tar
tar -xvf sensu_ssl_tool.tar

Создайте центр сертификации OpenSSL и самоподписанные -сертификаты с помощью инструмента Sensu SSL:

cd sensu_ssl_tool
./ssl_certs.sh generate

б. Поместите эти сертификаты в каталог, который может найти Rabbitmq.

mkdir /etc/rabbitmq/ssl
cp server_key.pem /etc/rabbitmq/ssl/
cp server_cert.pem /etc/rabbitmq/ssl/
cp testca/cacert.pem /etc/rabbitmq/ssl/

Файл конфигурации RabbitMQ, если он отсутствует, может быть создан в /etc/rabbitmq как

/etc/rabbitmq/rabbitmq.conf
[
  {rabbit, [
     {ssl_listeners, [5671]},
     {ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/cacert.pem"},
                    {certfile,"/etc/rabbitmq/ssl/cert.pem"},
                    {keyfile,"/etc/rabbitmq/ssl/key.pem"},
                    {versions, ['tlsv1.2']},
                    {ciphers,  [{rsa,aes_256_cbc,sha256}]},
                    {verify,verify_peer},   
                    {fail_if_no_peer_cert,false}]}
   ]}
].

Теперь везде, где установлены компоненты sensu (client, api, server ), в папке /etc/sensu/ssl должны быть файлы client/key.pem и client/cert.pem

cp client/key.pem client/cert.pem  /etc/sensu/ssl/

Итак,Эти папки должны быть указаны в конфигурационном файле sensu.

/etc/sensu/config.json
{
  "rabbitmq": {
    "host": "172.19.4.81",
    "port": 5672,
    "vhost": "/sensu",
    "user": "sensu",
    "password": "secret",
    "ssl": {
       "cert_chain_file": "/etc/sensu/ssl/cert.pem",
       "private_key_file": "/etc/sensu/ssl/key.pem"
     }
  },
  "transport": {
    "name": "rabbitmq",
    "reconnect_on_error": true
  },
  "api": {
    "host": "localhost",
    "bind": "0.0.0.0",
    "port": 4567
  },
"client": {
    "subscriptions": [
      "production"
    ]
  }
}

Порт по умолчанию для rabbitmq — 5671, а для ssl — 5672.

0
06.01.2020, 15:39
2 ответа

Если вы хотите отображать содержимое /etc/issue2при открытии tty2, запустите systemctl edit getty@tty2и вставьте следующее содержимое:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --issue-file /etc/issue2 -o '-p -- \\u' --noclear %I $TERM

Это изменяет getty@.service, но только для tty2. См. systemctl cat getty@для не -модифицированного служебного файла.

В этом перетаскивании -во фрагменте первая строка ExecStart=означает «отбросить все строки ExecStart, которые присутствовали в исходном файле службы», а вторая строка ExecStart=— та, которую я нашел в systemctl cat getty@, но я добавил --issue-file /etc/issue2, поэтому tty2 будет использовать другой файл задачи, чем другие tty.

1
28.01.2020, 02:57

Вы можете изменить баннер, отображаемый после входа в систему, изменив содержимое файла /etc/motd.

0
28.01.2020, 02:57

Теги

Похожие вопросы