Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    sr57
    @sr57
    Hi All, nb has an answer to my previous question? I used the "process directive" to check if a process is stopped.
    It's stopped but I get a compliant error with the msg "the process could't be stopped"
    How can we explain this?
    Nicolas Charles
    @ncharles
    can you paste the output of the agent ?
    sr57
    @sr57
    @ncharles Thanks for your reply. No more pb today, don't understand cause I posted mys msg the day after having started this new directive, I though it was enough ...
    For your information my agent run every 6 hours.
    wjterveld
    @wjterveld

    Hi i'm pretty new to Rudder.. I'm trying to get some information into a script. I was trying this with a mustashe file but I'm unable to get it to work..
    I have a template with vars inplace.. But still I do not get the info in the file?
    the template looks like this:

    export OS_PROJECT_ID={{OS_PROJECT_ID}}
    echo "Removing old snapshots" &>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    echo "."&>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    echo "."&>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    {{#volumes}}
    openstack volume snapshot delete {{volume}}-date +%A &>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    sleep 2
    {{/volumes}}

    echo "Creating snapshots" &>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    echo "."&>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    echo "."&>>/opt/beheer/logs/{{klantnaam}}-date +%A.log

    {{#volumes}}
    openstack volume snapshot create --volume {{volume}} --force BCK-{{volume}}-date +%A &>>/opt/beheer/logs/{{klantnaam}}-date +%A.log
    sleep 2
    {{/volumes}}

    Then I try go get that filled with this TXT paramter.
    {
    "klantnaam": "capitar",
    "OS_PROJECT_ID":"9417c7f023714f5f86a010dac76b9a93",
    "volumes": [
    {"volume": "idv01-vol01"},
    {"volume": "idv01-vol02"},
    {"volume": "idv02-vol01"}
    ]

    but nothing happens.. What am I doing wrong?

    Alexis Mousset
    @amousset:matrix.org
    [m]
    Hi @wjterveld, you need to first load the data into a variable with a "Variable dict" or "Variable dict from files" method, then you can call the "File from a mustache template" method. To access it in you template, you need to use the {{vars.var_prefix.var_name}} base (replace var_prefix and var_name by the value used in the method defining the variable ).
    So in your case if you load the data into prefix: snapshot, name: data, you can use for example {{vars.snapshots.data.OS_PROJECT_ID}}.
    In short: you currently can't load a specific data file for a template, the template is always evaluated against the global variable space.
    wjterveld
    @wjterveld

    Thank you for the tip.. I tried the variable dict and filled one like this:
    Variable prefix: snapshot
    Variable name: data
    Value : OS_PROJECT_ID

    now at the Directive level I have a parameter called "config" as TXT with:
    klantnaam: test
    OS_PROJECT_ID: 9417c7f023714f5f86a0193
    volume: idv01-vol01
    volume: idv01-vol02
    volume: idv02-vol01

    When I update and run the agent I get this error:
    error: Error parsing JSON expression 'OS_PROJECT_ID': Unable to parse json data as object, unrecognized token beginning entry

    wjterveld
    @wjterveld
    Oh one more thing.. I'm not able to set the parameter to JS. When I try to safe Rudder returns an error it is unable to do so.
    Suvi
    @Suvi8
    Good Morning, are there any documentaion on how to migrate a rudder-server? (Database, Configs, etc)
    Or how to convert a relay-server to rudder-server?
    Nicolas Charles
    @ncharles
    Hi - there is no tested migration path from a relay server to a rudder server. It's safer to start from scratch to install a Rudder Server
    1 reply
    This documentation about server backup & migration may help you :https://docs.rudder.io/reference/6.2/administration/procedures.html#_migration_backups_and_restores
    @wjterveld what is the error about JS ?
    Suvi
    @Suvi8

    Earlier, the rudder branch update from 6.0 to 6.1 worked well in rudder itself.

    But the same for 6.2 doesn't work.

    https://docs.rudder.io/rudder-by-example/current/system/update-rudder-agent-package.html

    Any idea?

    Nicolas Charles
    @ncharles
    what error do you have?
    Suvi
    @Suvi8

    the update doesn't happen.

    As workaround i need to execute the command : yum clean all , then rudder agent run -u, does the job

    Nicolas Charles
    @ncharles
    do you happen to have any error messages when you run "rudder agent run -I" ?
    18 replies
    also, why a yum clean all ?
    Tanguy PELADO
    @tpelado

    Bonjour Everyone.

    I'm trying to do some templating with mustache and rudder. Basic stuff : custom nftables rules based off a json object in the node properties.

    I'm, however, stuck on one part :

    {{#vars.node.properties.ports_tcp}}
    add rule ip filter INPUT tcp dport {{{.}}} ip daddr {{{vars.sys.ipv4[ens18]}}} accept # {{{@}}} CUSTOM
    {{/vars.node.properties.ports_tcp}}
    ########UDP
    {{#vars.node.properties.ports_udp}}
    add rule ip filter INPUT udp dport {{{.}}} ip daddr {{{vars.sys.ipv4[{{{vars.sys.interfaces}}}]}}} accept # {{{@}}} CUSTOM
    {{/vars.node.properties.ports_udp}}
    #########

    This iterates over the list of ports defined in the json, but I haven't managed to make it work dynamically (see the UDP part). Is there a way to get the interface name dynamically?

    Cheers

    Tanguy PELADO
    @tpelado
    On the same subject, is there a way in a directive to loop over interfaces? The idea would be to deploy firewall rules for each interface.
    Alexis Mousset
    @amousset:matrix.org
    [m]
    Hi @tpelado you have a sys.interfaces_data variable (available with vars.sys.interfaces_data containing the interfaces, with some statistics about them:
    {
        "enp4s0": {
          "device": "enp4s0",
          "receive_bytes": "446377831179",
          "receive_compressed": "0",
          "receive_drop": "0",
          "receive_errors": "0",
          "receive_fifo": "0",
          "receive_frame": "0",
          "receive_multicast": "0",
          "receive_packets": "492136556",
          "transmit_bytes": "428200856331",
          "transmit_compressed": "0",
          "transmit_drop": "0",
          "transmit_errors": "0",
          "transmit_fifo": "0",
          "transmit_frame": "0",
          "transmit_multicast": "0",
          "transmit_packets": "499195545"
        },
        "lo": {
          "device": "lo",
          "receive_bytes": "1210580426",
          "receive_compressed": "0",
          "receive_drop": "0",
          "receive_errors": "0",
          "receive_fifo": "0",
    Tanguy PELADO
    @tpelado
    I had seen this variable. Sadly, I can't find a way to use it with the firewall.
    Alexis Mousset
    @amousset:matrix.org
    [m]
    it is not iterable as is in mustache (as it is not an array but an object), but it should be possible with jinja. The other option is to use a "variable from command" and "variable iterator" to define the list from a command
    1 reply
    Suvi
    @Suvi8
    image.png
    Tanguy PELADO
    @tpelado

    So, I've tried using jinja, but I don't understand something.

    This is the template :

    {#######TCP #}
    {% for interface in vars.sys.interfaces %}
        {% for port_tcp in vars.node.properties['ports_tcp'] %}
        add rule ip filter INPUT tcp dport {{ port_tcp }} meta iifname {{interface}} accept # {{ port_tcp.key }}  CUSTOM 
        {% endfor %}
    {% endfor %}

    This is the "ports_tcp" property :

    {
      "http": 80,
      "https": 443
    }

    Why is it that "port_tcp", my iterator item, is a str (http) and not the value (80) ?

    Stephen Horvath
    @workshopit:matrix.org
    [m]
    Good morning guys.
    Am faced with this issue this morning.
    in ldap.log - mdb_entry_decode: attribute index 909456690 not recognized
    in webapp.log - Error is: Could not get node information from database; cause
    Exception: Error during search cn=rudder-configuration SUB: internal error in mdb_id2edata; cause was: com.unboundid.ldap.sdk.LDAPSearchException: internal error in mdb_id2edata
    -> com.normation.ldap.sdk.RoLDAPConnection.$anonfun$search$1(LDAPConnection.scala:321)
    1 reply
    Alexis Mousset
    @amousset:matrix.org
    [m]
    Hi Stephen Horvath did you recently upgrade your Rudder server? Could be an interrupted post-inst script that was stopped during a reindexing
    1 reply
    @tpelado: by default jinja (python actually) iterates on keys, you need something like this to access both key and value:
    {% for port_name, port_tcp in vars.node.properties['ports_tcp'] %}
    5 replies
    fanf42
    @fanf42:matrix.org
    [m]
    @tpelado: docs here https://docs.rudder.io/reference/6.2/usage/variables.html#_property_syntax agrees, but misses the case for items(). I will see how we can add it
    but if I understand correctly, it's incorrect in the jinja2 section here: https://docs.rudder.io/reference/6.2/usage/variables.html#_file_content_templates_and_edition ?
    Tanguy PELADO
    @tpelado

    Not really incorrect, but as you said, there is no mention of the .items().
    I'd say that this section needs more examples, at least for me, its easier to understand with a given exemple than with a generic explanation.

    I can provide the code I made for a dynamic firewall for NFtables based off a simple json entry in the node property if you feel it might be useful for future reference

    also, I've used https://ttl255.com/jinja2-tutorial-part-2-loops-and-conditionals/ for reference, and its been great so far
    do tell me if you need anything
    (in english, or french)
    fanf42
    @fanf42:matrix.org
    [m]
    I've added the items() part and reference to jinja doc (see https://jinja.palletsprojects.com/en/2.11.x/templates/#list-of-control-structures). Also, we have that entry, I should add it too: https://docs.rudder.io/rudder-by-example/current/files/advanced-file-templating.html
    Tanguy PELADO
    @tpelado
    thanks for your quick reply, appreciate it
    JulianWeis
    @JulianWeis

    Hey there i've got a little problem getting reports from my clients. As far as I see I get following errormassage on my server:
    error: HailServer: ERROR, could not resolve '**'
    error: Rudder agent was interrupted during execution by a fatal error Run with -i to see log messages.
    I already tried:
    checking firewall, running with -i ->nor results or errors

    Have you got any suggestions?

    Fdall
    @Fdall
    Hi @JulianWeis did you check that your policy server name was correctly resolved? If you replace the policy server name by it IP, does it fix the communication issue?
    Rana Masud
    @mrana_dev_gitlab
    Hi,
    I'm new on Rudder.
    I've installed Rudder-Server and Rudder-Agent (on 4 servers). I want to execute simple yum ('yum update -y') command on Agents from Rudder-Server. Please suggest me any documentation or the steps need to follow.
    Thanks in advance.
    Fdall
    @Fdall
    @mrana_dev_gitlab You can try to follow the "getting started guide" to setup your first policies. https://docs.rudder.io/get-started/current/configuration-policies/index.html You will most likely want to create a technique using the same steps than described in the guide, and use an "execution_command_result"
    Rana Masud
    @mrana_dev_gitlab
    @Fdall Thanks a lot. I'll follow that.
    JulianWeis
    @JulianWeis
    @Fdall the policy server is reached and resolved.
    Fdall
    @Fdall
    @JulianWeis Great!
    JulianWeis
    @JulianWeis
    @Fdall But still there is no report showing up!
    JulianWeis
    @JulianWeis
    @Fdall thanx for your help. I checked the DNS-Server - there was no entry for the missing node.
    Rana Masud
    @mrana_dev_gitlab
    Is there anyone can teach me Rudder? I really want to learn and willing to pay for your time. Thank you
    Alexis Mousset
    @amousset:matrix.org
    [m]
    Hi @mrana_dev_gitlab, sure, we do Rudder training sessions (on-site or remote). You can contact us through https://www.rudder.io/contact/ to get more information.
    Rana Masud
    @mrana_dev_gitlab
    Thanks @amousset:matrix.org , remote will work for me.