Rubrik : User Addition/Deletion with API
Background
When you have multiple cluster, you may want to create or revoke access easily to your platform. If your clusters are not connected to a central directory, you need to go one by one and pray for not forgetting one. Hopefully, API comes to the rescue!
Adding/Removing Users to a single Rubrik Cluster
There are a few useful functions in my Php Framework that can help with this.
Adding users
First, we need to provide user details :
Note : pay attention when specifying the passwords, they must comply with the password complexity on the Rubrik side.
Next, we loop through this array and add each users and give the admin rights
Deleting the users is very similar
Adding/Removing users to many Rubrik Clusters
In this case, we need to define all clusters we need to add/remove users and loop through them. We then require to create another array :
Then, in a double loop, we go through the 2 arrays pushing user details into the array of Rubrik clusters.
First, for creating users :
Then, to remove them :
Here is the script output (with 3 users and 2 clusters)
This can be handy for massive cluster environment when user(s) has/have to be added on 20 or 50 clusters at once.
You can find the source code on my GitHub Repository.
When you have multiple cluster, you may want to create or revoke access easily to your platform. If your clusters are not connected to a central directory, you need to go one by one and pray for not forgetting one. Hopefully, API comes to the rescue!
Adding/Removing Users to a single Rubrik Cluster
There are a few useful functions in my Php Framework that can help with this.
- rkCreateUser
- rkDeleteUser
- rkMakeAdminUser
- rkGetUserID
Adding users
First, we need to provide user details :
$bulkUsers=array(
0 => array(
"username" => "user1",
"password" => "P@ss_0rd123!",
"firstName" => "First",
"lastName" => "Last",
"emailAddress" => "me@local.com"
),
1 => array(
"username" => "user2",
"password" => "P@ss_0rd123!",
"firstName" => "First",
"lastName" => "Last",
"emailAddress" => "me@local.com"
)
);
0 => array(
"username" => "user1",
"password" => "P@ss_0rd123!",
"firstName" => "First",
"lastName" => "Last",
"emailAddress" => "me@local.com"
),
1 => array(
"username" => "user2",
"password" => "P@ss_0rd123!",
"firstName" => "First",
"lastName" => "Last",
"emailAddress" => "me@local.com"
)
);
Note : pay attention when specifying the passwords, they must comply with the password complexity on the Rubrik side.
Next, we loop through this array and add each users and give the admin rights
print("Creating ".count($bulkUsers)." user(s)...\n");
for($i=0;$i<count($bulkUsers);$i++)
{
$return=rkCreateUser($clusterConnect,$bulkUsers[$i]["username"],$bulkUsers[$i]["password"]);
$id=rkGetUserID($clusterConnect,$bulkUsers[$i]["username"]);
rkMakeAdminUser($clusterConnect,$id);
if(isset($return->message)) print("-> ".rkColorOutput($return->message)."\n");
else print("-> ".rkColorOutput($return->username)." created.\n");
}
for($i=0;$i<count($bulkUsers);$i++)
{
$return=rkCreateUser($clusterConnect,$bulkUsers[$i]["username"],$bulkUsers[$i]["password"]);
$id=rkGetUserID($clusterConnect,$bulkUsers[$i]["username"]);
rkMakeAdminUser($clusterConnect,$id);
if(isset($return->message)) print("-> ".rkColorOutput($return->message)."\n");
else print("-> ".rkColorOutput($return->username)." created.\n");
}
Deleting the users is very similar
print("\nDeleting ".count($bulkUsers)." user(s)...\n");
for($i=0;$i<count($bulkUsers);$i++)
{
$id=rkGetUserID($clusterConnect,$bulkUsers[$i]["username"]);
print("Deleting ".rkColorOutput($bulkUsers[$i]["username"])." : ");
$result=rkDeleteUser($clusterConnect,$id);
print(rkColorOutput($result)."\n");
}
for($i=0;$i<count($bulkUsers);$i++)
{
$id=rkGetUserID($clusterConnect,$bulkUsers[$i]["username"]);
print("Deleting ".rkColorOutput($bulkUsers[$i]["username"])." : ");
$result=rkDeleteUser($clusterConnect,$id);
print(rkColorOutput($result)."\n");
}
Adding/Removing users to many Rubrik Clusters
In this case, we need to define all clusters we need to add/remove users and loop through them. We then require to create another array :
$clusterConnect=array(
0 => array(
"username" => "username",
"password" => "password",
"ip" => "ip_of_rubrik"
),
1 => array(
"username" => "username",
"password" => "password",
"ip" => "ip_of_rubrik"
)
);
0 => array(
"username" => "username",
"password" => "password",
"ip" => "ip_of_rubrik"
),
1 => array(
"username" => "username",
"password" => "password",
"ip" => "ip_of_rubrik"
)
);
Then, in a double loop, we go through the 2 arrays pushing user details into the array of Rubrik clusters.
First, for creating users :
print("\nCreating ".rkColorOutput(count($bulkUsers))." user(s) on ".rkColorOutput(count($clusterConnect))." cluster(s) ...\n");
for($i=0;$i<count($clusterConnect);$i++)
{
print("Creating users in ".rkColorOutput($clusterConnect[$i]["ip"])."\n");
for($j=0;$j<count($bulkUsers);$j++)
{
$return=rkCreateUser($clusterConnect[$i],$bulkUsers[$j]["username"],$bulkUsers[$j]["password"]);
$id=rkGetUserID($clusterConnect[$i],$bulkUsers[$j]["username"]);
rkMakeAdminUser($clusterConnect[$i],$id);
if(isset($return->message)) print("-> ".rkColorOutput($return->message)."\n");
else print("-> ".rkColorOutput($return->username)." created.\n");
}
}
for($i=0;$i<count($clusterConnect);$i++)
{
print("Creating users in ".rkColorOutput($clusterConnect[$i]["ip"])."\n");
for($j=0;$j<count($bulkUsers);$j++)
{
$return=rkCreateUser($clusterConnect[$i],$bulkUsers[$j]["username"],$bulkUsers[$j]["password"]);
$id=rkGetUserID($clusterConnect[$i],$bulkUsers[$j]["username"]);
rkMakeAdminUser($clusterConnect[$i],$id);
if(isset($return->message)) print("-> ".rkColorOutput($return->message)."\n");
else print("-> ".rkColorOutput($return->username)." created.\n");
}
}
Then, to remove them :
print("\nDeleting ".rkColorOutput(count($bulkUsers))." user(s) on ".rkColorOutput(count($clusterConnect))." cluster(s) ...\n");
for($i=0;$i<count($clusterConnect);$i++)
{
print("Deleting users in ".rkColorOutput($clusterConnect[$i]["ip"])."\n");
for($j=0;$j<count($bulkUsers);$j++)
{
$id=rkGetUserID($clusterConnect[$i],$bulkUsers[$j]["username"]);
print("Deleting ".rkColorOutput($bulkUsers[$j]["username"])." : ");
$result=rkDeleteUser($clusterConnect[$i],$id);
print(rkColorOutput($result)."\n");
}
}
for($i=0;$i<count($clusterConnect);$i++)
{
print("Deleting users in ".rkColorOutput($clusterConnect[$i]["ip"])."\n");
for($j=0;$j<count($bulkUsers);$j++)
{
$id=rkGetUserID($clusterConnect[$i],$bulkUsers[$j]["username"]);
print("Deleting ".rkColorOutput($bulkUsers[$j]["username"])." : ");
$result=rkDeleteUser($clusterConnect[$i],$id);
print(rkColorOutput($result)."\n");
}
}
Here is the script output (with 3 users and 2 clusters)
This can be handy for massive cluster environment when user(s) has/have to be added on 20 or 50 clusters at once.
You can find the source code on my GitHub Repository.
Comments
Post a Comment
Thank you for your message, it has been sent to the moderator for review...