Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use nodeset to concat host #2020

Open
garadar opened this issue May 23, 2022 · 1 comment
Open

use nodeset to concat host #2020

garadar opened this issue May 23, 2022 · 1 comment

Comments

@garadar
Copy link

garadar commented May 23, 2022

Hi all,

I would like to incoporate the nodeset module python from clustershell provided by CEA HPC in shinken:
https://github.com/cea-hpc/clustershell

(cluster)-[root@admin ~]$ yum info clustershell
Loaded plugins: auto-update-debuginfo, etckeeper, fastestmirror, langpacks, versionlock
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
 * epel: mirror.in2p3.fr
 * epel-debuginfo: mirror.in2p3.fr
Installed Packages
Name        : clustershell
Arch        : noarch
Version     : 1.8.4
Release     : 1.el7
Size        : 324 k
Repo        : installed
From repo   : Local-EPEL-7
Summary     : Python framework for efficient cluster administration
URL         : http://cea-hpc.github.io/clustershell/
License     : LGPLv2+
Description : ClusterShell is a set of tools and a Python library to execute commands
            : on cluster nodes in parallel depending on selected engine and worker
            : mechanisms. Advanced node sets and node groups handling methods are provided
            : to ease and improve the daily administration of large compute clusters or
            : server farms. Command line utilities like clush, clubak and nodeset (or
            : cluset) allow traditional shell scripts to take benefit of the features
            : offered by the library.

This will allow us to translate something like that to:

define hostgroup {
  hostgroup_name  node
  members         node0,node1,node2,node3,node4,node5,node6,node7,node8,node9,node10
}

to something like that:

define hostgroup {
  hostgroup_name  node
  members         node[0-10]
}

Someone can help me :)

@geektophe
Copy link
Collaborator

Hello, another way to accomplish what you want to do is to invert the declaration, if that makes sense.

You can specify the hostgroups a machine is member of in the host declaration itself. It's sometimes easier.

With an intermediate template it's even easier.

For instance:

define hostgroup {
  hostgroup_name  node
}

define host {
  name node
  hostghoups node
  register 0
}

define host {
  use node
  host_name node0
}

An expansion mechanism already exists for things like business rules, perhaps could it be adapted to implement such a behavior.

For the moment, we've got few time available, unfortunately, and the effort is given to the python3 port, so don't expect it to be available too soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants