小编Nic*_*ick的帖子

授予 Keycloak 客户端服务帐户权限以在不使用广泛的管理用户角色的情况下创建领域用户

我有一个将 Keycloak 用于 IdM 的 Web 应用程序。

我正在使用 资源所有者密码凭据或直接授予流程进行身份验证,它使用 REST API 调用/auth/realms/{realm}/protocol/openid-connect/token而不是浏览器重定向来为用户获取 JWT。

我想为用户注册实施类似的工作流程。

查看 Keycloak 文档,似乎 Keycloak Admin API 在/auth/admin/realms/{realm}/users公开了一个端点。

要允许客户端与 Keycloak Admin API 交互,您必须创建一个客户端服务帐户并将其与具有足够权限来管理领域用户的 keycloak 角色相关联。

对此的预期方法似乎是将管理用户领域特定角色应用于客户端服务帐户。这比我想授予客户端的权限多。

有没有办法给予客户服务帐户刚刚创建新用户的能力,而不是完整的权限集自带的管理用户?

oauth-2.0 jwt openid-connect keycloak redhat-sso

5
推荐指数
1
解决办法
2339
查看次数

如何通过 ssh 连接到 OpenShift/Kubernetes 集群内运行的容器?

我希望能够通过 ssh 访问 OpenShift Pod 中的容器。

我确实知道,我可以简单地使用oc rsh. 但这是基于这样的假设:我在想要通过 ssh 连接到容器的节点上安装了 openshift cli。

但我真正想要实现的是,从未安装 openshift cli 的节点 ssh 进入容器。该节点与 OpenShift 位于同一网络。该节点确实可以访问托管在容器上的 Web 应用程序(仅作为示例)。但我不想通过 Web 访问,而是希望通过 SSH 访问。

有什么办法可以实现这一点吗?

ssh containers openshift kubernetes

4
推荐指数
1
解决办法
6076
查看次数

VueJS parent mouseover event masking child mouseover event

我正在使用 VueJS 并尝试在两个元素上触发鼠标悬停事件,一个元素是另一个元素的子元素。

我无法触发子鼠标悬停事件。看起来父元素正在“覆盖”子 div,并且只注册了父鼠标悬停事件。

var vm = new Vue({
  el: '#app',
  data: {
    hoverTarget: 'none'
  },
  methods: {
    parentHover: function() {
      this.hoverTarget = 'parent'
    },
    childHover: function() {
      this.hoverTarget = 'child'
    }
  }
});
Run Code Online (Sandbox Code Playgroud)
#parent {
  width: 100px;
  height: 100px;
  background: #000000;
}

#child {
  width: 50px;
  height: 50px;
  background: #FFFFFF;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.13/dist/vue.js"></script>
<div id='app'>
  <div id='parent' @mouseover="parentHover">
    <div id='child' @mouseover="childHover">

    </div>
  </div>
  {{ hoverTarget }}
</div>
Run Code Online (Sandbox Code Playgroud)

html javascript css event-handling vue.js

3
推荐指数
1
解决办法
7036
查看次数

将 Ansible 对象列表减少为串联对象值的单个字符串

我正在尝试解析elasticache_factsansible 模块的输出,以“addr1: port1 addr2:port2 ...”形式的字符串提取 IPS 和 memcached 节点的端口(我想将此字符串存储在 configmap 中在应用程序中使用)。

基本上我想从这样的字典列表中获取两个字段“地址”和“端口”:

list1:
- endpoint: 
    address: "addr1"
    port: "port1"
- endpoint: 
    address: "addr2"
    port: "port2"
Run Code Online (Sandbox Code Playgroud)

并像上面一样连接它们。

我有一个丑陋的解决方案,如下所示:

# register the output of the facts to something I know
elasticache_facts:
  region: "{{ terraform.region }}"
  name: "{{ cluster }}-{{ env }}"
register: elasticache

#declare an empty var in vars file to be used as accumulator
memcache_hosts: ""

# iterate through the list of nodes and append the fields to my …
Run Code Online (Sandbox Code Playgroud)

ansible

3
推荐指数
1
解决办法
5360
查看次数

从kubernetes yaml定义中的文件创建configmap时||和|-之间有什么区别?

我遇到过两种从kubernetes中的文件创建configmap的语法。

第一个 ;


apiVersion: v1
data:
  file1.yaml: |+
    parameter1=value1
kind: ConfigMap
metadata:
  name: my-configmap
Run Code Online (Sandbox Code Playgroud)

第二个 ;

apiVersion: v1
data:
  file1.yaml: | -
    parameter1=value1
kind: ConfigMap
metadata:
  name: my-configmap
Run Code Online (Sandbox Code Playgroud)

| +和|-有什么区别?

yaml kubernetes configmap

3
推荐指数
1
解决办法
221
查看次数

如何使用 Ansible 收集有关磁盘的事实

我正在尝试编写一个 Ansible playbook,它将识别 RHEL 机器上新添加的磁盘。计划是在创建新磁盘之前运行剧本并在该时间点缓存磁盘作为事实。创建新磁盘后,将再次运行相同的 playbook,并计算创建磁盘前后磁盘的差异。

例如,lsblk最初返回以下内容:

NAME              SIZE  TYPE
sda               100G  disk
??sda1              1G  part
??sda2             99G  part
  ??rhel-root      50G  lvm
  ??rhel-swap     7.9G  lvm
  ??rhel-home    41.1G  lvm
sr0              1024M  rom

Run Code Online (Sandbox Code Playgroud)

添加 8 个新磁盘后,lsblk返回:

NAME              SIZE  TYPE
sda               100G  disk
??sda1              1G  part
??sda2             99G  part
  ??rhel-root      50G  lvm
  ??rhel-swap     7.9G  lvm
  ??rhel-home    41.1G  lvm
sdb              18.6G  disk
sdc              18.6G  disk
sdd              18.6G  disk
sde              18.6G  disk
sdf              18.6G  disk
sdg              18.6G  disk
sdh              18.6G  disk …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-facts

3
推荐指数
1
解决办法
1万
查看次数

在 terraform 中使用工作空间时如何更改本地后端状态的路径?

将 terraform工作区本地后端结合使用的预期配置是什么?

本地后端支持工作空间,但似乎您对实际状态的存储位置没有太多控制权。

当您不使用工作区时,您可以path向本地后端提供一个参数来控制状态文件的存储位置。

# Either in main.tf
terraform {
  backend "local" {
    path = "/path/to/terraform.tfstate
  }
}

# Or as a flag
terraform init -backend-config="path=/path/to/terraform.tfstate"
Run Code Online (Sandbox Code Playgroud)

我期望在使用工作区时具有类似的功能,因为您将提供一个目录,path并且工作区将在该目录下创建

例如:

terraform new workspace first
terraform init -backend-config="path=/path/to/terraform.tfstate.d"
terraform apply
terraform new workspace second
terraform init -backend-config="path=/path/to/terraform.tfstate.d"
terraform apply
Run Code Online (Sandbox Code Playgroud)

将导致状态

/path/to/terraform.tfstate.d/first/terraform.tfstate
/path/to/terraform.tfstate.d/second/terraform.tfstate
Run Code Online (Sandbox Code Playgroud)

然而,情况似乎并非如此。看起来本地后端忽略了路径参数并将工作区配置放在工作目录中。

我是否遗漏了什么或者您无法控制本地后端工作区状态?

automation terraform

2
推荐指数
1
解决办法
7521
查看次数