Giter VIP home page Giter VIP logo

hnimminh / libresbc Goto Github PK

View Code? Open in Web Editor NEW
330.0 30.0 74.0 1.5 MB

An open source Session Border Controller ๐ŸŒŸ The SBC you dream about ๐Ÿ—ฝ LibreSBC will help you save thousands of dollars.

Home Page: https://github.com/hnimminh/libresbc

License: MIT License

Dockerfile 1.13% Shell 0.18% Python 61.54% Lua 22.66% CSS 0.19% JavaScript 8.16% HTML 5.10% Go 1.03%
sbc freeswitch asterisk kamailio freepbx fusionpbx opensips sip sip-server session-border-controller

libresbc's Introduction

LibreSBC

The Open Source Session Border Controller

LibreSBC is a open-source Session Border Controller provide robust security, simplified interoperability, advanced session management, high performance, scale of carrier-grade and reliability for voice over IP (VoIP) infrastructures. LibreSBC designed to typically deployed at the network edge, the demarcation points (borders) among networks/environments.


Contributing

All kinds of contributions are very welcome and appreciated !

If you want to contribute time to LibreSBC then here's a list of suggestions to get you started :

  1. Star ๐ŸŒŸ the project.
  2. Help people in the issues by sharing your knowledge and experience.
  3. Find and report issues.
  4. Influence the future of LibreSBC with feature requests.

You can also contribute money to help secure LibreSBC's future.

Paypal



BITCOIN
1MNjpx5Jy9KUxx2gt5qVmExruehgPi3dQX


Sponsors

Special thanks to




Table of Contents


Why

  • Free & Open: It's free and always free for everyone
  • Comunity & Majoirity: Standing on the shoulders of giants, Kamailio and FreeSWITCH
  • Customisability: Make it do what you want
  • Capability: Carrier-grade

Architecture

image

Functions

SBCs commonly maintain full session state and offer the following functions:

Connectivity & Compatibility

Allow multiple networks to communicate through the use of a variety of techniques such as:

  • Advanced NAT Traversal Capabilities
  • SIP normalization, SIP message and header manipulation
  • Call Party Translatation
  • VPN connectivity
  • Protocol translations between UDP, TCP & TLS
  • Powerful built-in routing engine.
  • Allowing control routing by 3rd-party software via HTTP
  • Dynamic Load Balancing, Failover, Distribution
  • IPv4/IPv6 Dual Stack

Security:

Protect the network and other devices from:

  • Malicious attacks such as a denial-of-service attack (DoS) or distributed DoS
  • Toll fraud via rogue media streams
  • SIP Malformed Packet Protection
  • Topology hiding by back to back user agent (B2BUA)
  • Encryption of signaling (via TLS) and media (SRTP)
  • Access Control List
  • Auto Control Network Firewall
  • SIP Firewall Level

Quality of service

The QoS policy of a network and prioritization of flows is usually implemented by the SBC. It can include such functions as:

Media services

Offer border-based media control and services such as:

  • Media encoding/decoding (SRTP/RTP)
  • DTMF relay and interworking include In-Band Signaling (touch tones), Out-of-Band Signaling (RFC2833) and SIP INFO Method
  • Media Codec transcoding: G711A/U, G729, OPUS, AMR, G.722.2 AMR-WB
  • Tones and announcements (Early Media)
  • Data and fax interworking
  • Support multiple Media mode: Proxy, Bypass, Transcode
  • Voice Activity Detection VAD
  • Confort Noise Generation CNG

Intergration

Support to intergrate with 3rd-party system or customer function easily

  • Flexible JSON for Call Detail Record (CDR), Send CDR to HTTP API, enabling customized/3rd-party usage such as databases, data analysis or billing purpose.
  • Customization routing mechanism via HTTP API
  • Network capture support: Live Capture and Intergrated with Homer

High Avaibility

Documents

Please go to Wiki

Roadmap

Development & Roadmap

Discussions

Community

  • LibreSBC has an initial community on the slack

Who use LibreSBC

On my awareness, here is the list of them

Performance Test

  • System Under Test
    • OS: Debian 4.19.132-1 x86_64 (10.6)
    • CPU: Intel(R) Xeon(R) CPU X5670 @ 2.93GHz
    • RAM: 8GB; SSD: 128GB
  • Result:
    • 50 call per second, 1000 concurent call
    • Used Memory: 1730M, CPU Load: 26%, Call Duration: 600 seconds

License

MIT

libresbc's People

Contributors

ciscomonkey avatar hnimminh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libresbc's Issues

Video and WebRTC support

Is your feature request related to a problem? Please describe.

  • A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Does the libresbc is supporting Video calls and WebRTC?

Describe the solution you'd like

  • A clear and concise description of what you want to happen.

Describe alternatives you've considered

  • A clear and concise description of any alternative solutions or features you've considered.

Additional context

  • Add any other context or screenshots about the feature request here.

[BUG] Update sipprofile API

Describe the bug

Can not update below:
"enable_timer"
"session_timeout"
"minimum_session_expires"

To Reproduce

  • Steps to reproduce the behavior

    • step1: PUT https://sbc02.sample.com:8443/libreapi/sipprofile/sipprofile_FS_loopback
      {
      "name": "sipprofile_FS_loopback",
      "desc": "sipprofile_FS_loopback",
      "user_agent": "LibreSBC",
      "sdp_user": "LibreSBC",
      "local_network_acl": "nat.auto",
      "enable_100rel": false,
      "ignore_183nosdp": true,
      "sip_options_respond_503_on_busy": true,
      "disable_transfer": false,
      "manual_redirect": false,
      "enable_3pcc": false,
      "enable_compact_headers": false,
      "enable_timer": false,
      "session_timeout": 1800,
      "minimum_session_expires": 120,
      "dtmf_type": "rfc2833",
      "media_timeout": 1800,
      "rtp_rewrite_timestamps": false,
      "context": "access",
      "sip_port": 5080,
      "sip_address": "netalias_FS_loopback",
      "rtp_address": "netalias_external",
      "tls": false,
      "tls_only": false,
      "sips_port": 5061
      }
    • step2: GET https://sbc02.sample.com:8443/libreapi/sipprofile/sipprofile_FS_loopback
      {
      "name": "sipprofile_FS_loopback",
      "desc": "sipprofile_FS_loopback",
      "user_agent": "LibreSBC",
      "sdp_user": "LibreSBC",
      "local_network_acl": "nat.auto",
      "enable_100rel": false,
      "ignore_183nosdp": true,
      "sip_options_respond_503_on_busy": true,
      "disable_transfer": false,
      "manual_redirect": false,
      "enable_3pcc": false,
      "enable_compact_headers": false,
      "dtmf_type": "rfc2833",
      "media_timeout": 1800,
      "rtp_rewrite_timestamps": false,
      "context": "access",
      "sip_port": 5080,
      "sip_address": "netalias_FS_loopback",
      "rtp_address": "netalias_external",
      "tls": false,
      "tls_only": false,
      "sips_port": 5061,
      "tls_version": "tlsv1.2",
      "realm": "sipprofile_FS_loopback.libresbc",
      "engagements": [
      "in:interconnection_loopback"
      ]
      }
      Can not find below in detail result:

    "enable_timer"
    "session_timeout"
    "minimum_session_expires"

Actual behavior
Detail sipprofile:

{
"name": "sipprofile_FS_loopback",
"desc": "sipprofile_FS_loopback",
"user_agent": "LibreSBC",
"sdp_user": "LibreSBC",
"local_network_acl": "nat.auto",
"enable_100rel": false,
"ignore_183nosdp": true,
"sip_options_respond_503_on_busy": true,
"disable_transfer": false,
"manual_redirect": false,
"enable_3pcc": false,
"enable_compact_headers": false,
"dtmf_type": "rfc2833",
"media_timeout": 1800,
"rtp_rewrite_timestamps": false,
"context": "access",
"sip_port": 5080,
"sip_address": "netalias_FS_loopback",
"rtp_address": "netalias_external",
"tls": false,
"tls_only": false,
"sips_port": 5061,
"tls_version": "tlsv1.2",
"realm": "sipprofile_FS_loopback.libresbc",
"engagements": [
"in:interconnection_loopback"
]
}

Expected behavior
Detail sipprofile:
{
"name": "sipprofile_FS_loopback",
"desc": "sipprofile_FS_loopback",
"user_agent": "LibreSBC",
"sdp_user": "LibreSBC",
"local_network_acl": "nat.auto",
"enable_100rel": false,
"ignore_183nosdp": true,
"sip_options_respond_503_on_busy": true,
"disable_transfer": false,
"manual_redirect": false,
"enable_3pcc": false,
"enable_compact_headers": false,
"dtmf_type": "rfc2833",
"media_timeout": 1800,
"rtp_rewrite_timestamps": false,
"context": "access",
"sip_port": 5080,
"sip_address": "netalias_FS_loopback",
"rtp_address": "netalias_external",
"tls": false,
"tls_only": false,
"sips_port": 5061,
"tls_version": "tlsv1.2",
"realm": "sipprofile_FS_loopback.libresbc",
"engagements": [
"in:interconnection_loopback"
]
}

Log & Screenshots

  • If applicable, add screenshots or log to help explain your problem.

Additional context

  • Add any other context about the problem here, such as:
    • Version: LibreSBC v0.5.9 Release
    • OS: Debian 10
    • Interworking System: None

[BUG] Unable to delete unengaged routing table

Describe the bug
Unable to delete routing table that is no longer in use.

To Reproduce

Add routing table RoutingTableA and add inbound connection InboundA using RoutingTableA.

LibreSBC will not allow you to remove the RoutingTableA while engaged with InboundA. However even when InboundA is deleted it is still impossible to remove RoutingTableA.

Actual behavior
Once InboundA was deleted, attempting a DELETE on RoutingTableA returns:

{
"error": "engaged routing table"
}

despite the inbound connection being deleted.

Expected behavior
The Routing table should be able to be deleted once the engaged inbound connection is deleted.

Log & Screenshots
libre-err

The screenshot shows no registered inbound connections. But DELETE not succeeding on the routing table 'toSIPP12'.

Additional context

  • Version: eg. v0.5.9
  • OS: eg. Debian 10

[BUG] Translation rules not working when escaped + sign included

Describe the bug
When the number_pattern (caller or destination) includes a + sign (in E.164 format) it never matches.

To Reproduce
Create a translation class like the following:
{
"name": "anyName",
"desc": "Localize Caller ID",
"caller_number_pattern": "^+?502([0-9]{8})$",
"destination_number_pattern": "",
"caller_number_replacement": "${1}",
"destination_number_replacement": "",
"caller_name": "_caller_number"
}
Make a call using inbound interconnection that has your "anyName" defined in "translation_classes" list with a device that has a caller ID that matches pattern.

Actual behavior
The CallerID is not changed on the outcome, and logs show there are no translations for the call like in the following example:

2022-11-10T04:44:48.733597+00:00 ny3sbc program=libresbc, pid=784, module=callng, space=main, action=translate, seshid=f4544848-60fd-437b-b6f4-8050d3ea68ef, direction=inbound, uuid=c3943970-f9ed-450d-95de-ed17585f1dd5, tranrules=[], cidnumber=+50212345678, cidname=Name, dstnumber=50298765432

Expected behavior
Translation rule being applied.

Log & Screenshots
I guessed that the + sign must be escaped for the PCRE REGEX to match, but if trying to add it using "^\+?502([0-9]{8})$" on the API I get:

"msg": "Invalid \\escape: line 4 column 32 (char 121)",
"type": "value_error.jsondecode",

Trying to escape it twice "^\\+?502([0-9]{8})$" is accepted on the API request, but also stored as double \\

Also tried to add it directly to redis using redis-cli:

hset class:translation:anyName caller_number_pattern '^\+?502([0-9]{8})$'
(integer) 0

hget class:translation:anyName caller_number_pattern
"^\\+?502([0-9]{8})$"

It gets stored with double quotes

Additional context

  • Version: 0.5.9
  • OS: Debian 10
  • Installed using Ansible playbook

[BUG]install failed on task [platform : build bcg729]

Describe the bug
ansible was stopped to install LibreSBC

To Reproduce

  • Steps to reproduce the behavior
    tried to install on debian 10.11 it's failed as well with the same reason failed to build bcg729

Log & Screenshots

Additional context

  • Ansible server:
    root@ansible:~/libresbc/build/ansible/ ansible --version
    ansible [core 2.11.6]
    config file = /root/libresbc/build/ansible/ansible.cfg
    configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python3/dist-packages/ansible
    ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
    executable location = /usr/bin/ansible
    python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
    jinja version = 2.11.3
    libyaml = True

  • LibreSBC server:
    Distributor ID: Debian
    Description: Debian GNU/Linux 11 (bullseye)
    Release: 11
    Codename: bullseye
    root@libresbc-id: python --version
    Python 2.7.18
    root@libresbc-id: python3 --version
    Python 3.9.2

[Deployement] FreeSWITCH require SignalWise PATs

Describe the bug
The installation via ansible fail with this message:
"Failed to download key at https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc: HTTP Error 401: Unauthorized"

To Reproduce

Actual behavior
The installation process fail to download the fsstretch-archive-keyring.asc before installing the rquirement packages.
I saw that the file under the link https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc is password protected.

Expected behavior

  • The installation process finish without errors.

Log & Screenshots

  • If applicable, add screenshots or log to help explain your problem.

Additional context

  • Add any other context about the problem here, such as:
    • OS: Debian 10.12
    • Linux 1 4.19.0-20-amd64 #1 SMP Debian 4.19.235-1 (2022-03-17) x86_64 GNU/Linux

[BUG]

Describe the bug
When making a call it fails with 480 Temporarily Unavailable

To Reproduce
After creating a scenario with 2 SIP profiles (1 internal and 1 public), a gateway on the internal, inbound interconnection, routes and other stuff referred on this page: #39
Sending a call from the public profile for it to be routed to the only gateway defined, the call fails.

Actual behavior
On fs_cli it shows the call being routed through the "access" context and then executing calling/main.lua
After that, apparently the last thing it does ok is setting the variable X-LIBRE-INTCONNAME to the correct IN Interconnect. Then the channel gets destroyed.
The libresbc log shows an error when running some redis stuff:
redis error: ERR wrong number of arguments for 'scard' command

Expected behavior
main.lua should process some other rules before failing

Log & Screenshots
Freeswitch logs:

2022-01-20 05:17:12.050277 [DEBUG] mod_sofia.c:154 sofia/Public5060/[email protected] SOFIA ROUTING
2022-01-20 05:17:12.050277 [DEBUG] switch_core_state_machine.c:236 sofia/Public5060/[email protected] Standard ROUTING
2022-01-20 05:17:12.050277 [INFO] mod_dialplan_xml.c:637 Processing webudo-laptop ->XXXXXXXXXX in context access
Dialplan: sofia/Public5060/[email protected] parsing [access->access_to_any] continue=false
Dialplan: sofia/Public5060/[email protected] Action lua(callng/main.lua)
2022-01-20 05:17:12.050277 [DEBUG] switch_core_state_machine.c:287 (sofia/Public5060/[email protected]) State Change CS_ROUTING -> CS_EXECUTE
2022-01-20 05:17:12.050277 [DEBUG] switch_core_state_machine.c:644 (sofia/Public5060/[email protected]) State ROUTING going to sleep
2022-01-20 05:17:12.050277 [DEBUG] switch_core_state_machine.c:585 (sofia/Public5060/[email protected]) Running State Change CS_EXECUTE (Cur 1 Tot 5)
2022-01-20 05:17:12.050277 [DEBUG] switch_core_state_machine.c:651 (sofia/Public5060/[email protected]) State EXECUTE
2022-01-20 05:17:12.050277 [DEBUG] mod_sofia.c:209 sofia/Public5060/[email protected] SOFIA EXECUTE
2022-01-20 05:17:12.050277 [DEBUG] switch_core_state_machine.c:329 sofia/Public5060/[email protected] Standard EXECUTE
EXECUTE [depth=0] sofia/Public5060/[email protected] lua(callng/main.lua)
EXECUTE [depth=0] sofia/Public5060/[email protected] export(X-LIBRE-SESHID=ebfe80e5-ca13-4ab2-8ef9-34d5049621da)
2022-01-20 05:17:12.050277 [DEBUG] switch_channel.c:1310 EXPORT (export_vars) [X-LIBRE-SESHID]=[ebfe80e5-ca13-4ab2-8ef9-34d5049621da]
2022-01-20 05:17:12.050277 [DEBUG] switch_cpp.cpp:773 CoreSession::setVariable('X-LIBRE-INTCONNAME', 'fromOldSIP')
2022-01-20 05:17:12.050277 [DEBUG] switch_cpp.cpp:1209 sofia/Public5060/[email protected] destroy/unlink session from object
2022-01-20 05:17:12.050277 [NOTICE] switch_core_state_machine.c:386 sofia/Public5060/[email protected] has executed the last dialplan instruction, hanging up.

LibreSBC logs:
2022-01-20T05:45:07.860541+00:00 ny-sbc program=libresbc, pid=815, module=callng, space=main, action=inbound_call, seshid=6ed2679b-8464-4e54-93f5-c943b542a097, uuid=5974bbbe-504b-4f7b-ba2d-2e72b2672fd0, context=access, sipprofile=Public5060, network_ip=X.X.X.X, realm=Public5060.libresbc, intconname=fromOldSIP, call_id=[email protected]:5060, transport=udp, caller_name=webudo-laptop, caller_number=webudo-laptop, destination_number=XXXXXXXXXXX
2022-01-20T05:45:07.860689+00:00 ny-sbc program=libresbc, pid=815, module=callng, space=main, action=exception, error=/usr/local/share/lua/5.2/redis.lua:703: /usr/local/share/lua/5.2/redis.lua:426: redis error: ERR wrong number of arguments for 'scard' command

How to get into Web UI?

I installed latest version (0.7.0) but I don't have a clue on how to open GUI
On nginx config I don't see any "location" that may help.

Please advise.

Thanks in advance ;)

[Feature Request] API Requests

Describe the bug
I'm building a web interface to manage the config more visually (will be openly released once finished) but when I try to make a PUT request to the API so I can modify an object I get a CORS error because most of the common web browsers will send first an OPTIONS request to the server but this one is rejecting that request with the message:
{"detail":"Method Not Allowed"}
Is there an easy way to let these request go?

To Reproduce

  • Steps to reproduce the behavior
    • step1: Send a PUT request to any of the API endpoints over a browser
    • step2: Watch console

Actual behavior
The API server refuses the OPTIONS preflight request from the browser

Expected behavior
The server should let pass the OPTIONS and handle CORS

[BUG] every installation will show fatal: [voiptcel]: FAILED! => {"msg": "Failed to connect to the host via ssh: ssh: connect to host X.X.X.X port 22: Connection timed out"}

Hi

I have follow the installation process and wait so long time during process installation

but will show error
2022-07-20 01:46:47,808 p=6612 u=vassupport n=ansible | fatal: [voiptcel]: FAILED! => {"msg": "Failed to connect to the host via ssh: ssh: connect to host X.X.X.X port 22: Connection timed out"}
2022-07-20 01:46:47,808 p=6612 u=vassupport n=ansible | RUNNING HANDLER [nginx : restart nginx] ****************************************
2022-07-20 01:46:47,809 p=6612 u=vassupport n=ansible | NO MORE HOSTS LEFT *************************************************************
2022-07-20 01:46:47,810 p=6612 u=vassupport n=ansible | PLAY RECAP *********************************************************************

then I try again and again it still shows same things

what I have to do, to solve it

please help me
Thank you so much

[BUG] kamailio didnt start on master-branch

Describe the bug
kamailio didnt start on master-branch

To Reproduce
build the master on fresh install - kamailio didnt run - ansible playbook didnt create some systemd.service or something that starts the process.

Expected behavior
all services should be started.

Best
Karsten

[BUG] failed rsync

Hi @hnimminh

while installation show as bellow

TASK [captagent : Copy captagent role source to target host] ***************************************************************************************************************************************************************************
fatal: [voiptcel]: FAILED! => {"changed": false, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsync-path='sudo -u root rsync' --out-format='<>%i %n%L' /home/user/libresbc/third-party/captagent/ /opt/libresbc/0.5.9/third-party/captagent/", "msg": "rsync: change_dir#1 "/opt/libresbc/0.5.9/third-party/captagent/" failed: Permission denied (13)\nrsync error: errors selecting input/output files, dirs (code 3) at main.c(639) [Receiver=3.1.3]\n", "rc": 3}

PLAY RECAP *****************************************************************************************************************************************************************************************************************************
voiptcel : ok=9 changed=4 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

why can it happen?

i use ansible version :
ansible [core 2.11.12]
config file = None
configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/user/.local/lib/python3.7/site-packages/ansible
ansible collection location = /home/user/.ansible/collections:/usr/share/ansible/collections
executable location = /home/user/.local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
jinja version = 3.0.1
libyaml = True

and I've been using config sudoers like this :
ALL=(ALL:ALL) ALL
and
ALL=(ALL) NOPASSWD: ALL

but still not work

even if I use remote user as root, it still failed

and I have try with this command :
ansible-playbook playbooks/deployment.yml -kK -i inventories/production -l "voiptcel" -t "captagent" -e "signalwire_pat_token=pat_eu7G8e1N5k3KVyC6Lk1XXXXX"
to prompt become password, but still failed

in another issue you said :
"or the rsync issue, seems like the permission issue that ssh user was not able become root user. unable to reproduce on my side."

but how to solve it, I can't get it

please help me
Thank you so much

[BUG] installation of libre part failed

Describe the bug

minimal buster image, ansible 2.9.x (documentation didnt told the ansible version needed) with pip3 installed, local install, sudo without password, rsync there.
rsync in roles/libre/tasks/liberator.yml didnt work correctly:

`
ansible-playbook playbooks/deployment.yml -i inventories/production -l "sbc01.example.com" -t "libre"

karsten@sbc01:~/_git/libresbc/build/ansible$ ansible-playbook playbooks/deployment.yml -i inventories/production -l "sbc01.example.com" -t "libre"

PLAY [LibreSBC Deployment] *****************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************************************************************
[WARNING]: Platform linux on host sbc01.example.com is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
ok: [sbc01.example.com]

TASK [libre : deploy liberator] ************************************************************************************************************************************************************************************************
included: /home/karsten/_git/libresbc/build/ansible/roles/libre/tasks/liberator.yml for sbc01.example.com

TASK [Create directory /opt/libresbc/0.5.7/liberator in target host] ***********************************************************************************************************************************************************
ok: [sbc01.example.com]

TASK [libre : Copy liberator role source to target host] ***********************************************************************************************************************************************************************
fatal: [sbc01.example.com]: FAILED! => {"changed": false, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsync-path=sudo rsync --exclude=*.pyc --out-format=<>%i %n%L /home/karsten/_git/libresbc/liberator/ /opt/libresbc/0.5.7/liberator/", "msg": "rsync: ERROR: cannot stat destination "/opt/libresbc/0.5.7/liberator/": Permission denied (13)\nrsync error: errors selecting input/output files, dirs (code 3) at main.c(660) [Receiver=3.1.3]\n", "rc": 3}

PLAY RECAP *********************************************************************************************************************************************************************************************************************
sbc01.example.com : ok=3 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

karsten@sbc01:~/_git/libresbc/build/ansible$ ansible --version
ansible 2.9.13
config file = /home/karsten/_git/libresbc/build/ansible/ansible.cfg
configured module search path = ['/home/karsten/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.7/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]

karsten@sbc01:~/_git/libresbc/build/ansible$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster

`

[REQUEST] SBC Full Backup

Can we do Backup for full configuration ?

It is very important before we do some action or modification and if we got error, so, we can "fall back" to previous backup.

we can restore SBC to backup configuration.

Thank for attention
Arief Hidayat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.