RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-191416

don Rumata's questions

Martin Hope
don Rumata
Asked: 2024-01-08 19:41:12 +0000 UTC

FROM 的 ARG 在 Dockerfile 中不起作用

  • 5

docker info:

Client: Docker Engine - Community
 Version:    24.0.7
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.21.0
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 15
  Running: 1
  Paused: 0
  Stopped: 14
 Images: 339
 Server Version: 24.0.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dd1e886e55dd695541fdcd67420c2888645a495
 runc version: v1.1.10-0-g18a0cb0
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
 Kernel Version: 5.4.0-132-generic
 Operating System: Ubuntu 20.04.5 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.839GiB
 Name: ubuntu-2004-clean-01
 ID: e397e021-a07f-4d31-8542-a4a52e25c357
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  172.16.11.200:5000
  cache.localdomain:5000
  repo.localdomain:5000
  127.0.0.0/8
 Live Restore Enabled: false

部分Dockerfile:

ARG DOCKER_REGISTRY_ADDRESS="cache.localdomain:5000"
ARG DISTRO=alpine
ARG DISTRO_VERSION=3.18
ARG DOCKER_NODEJS_IMAGE_NAME=${DOCKER_REGISTRY_ADDRESS}/node-${DISTRO}${DISTRO_VERSION}

FROM ${DOCKER_NODEJS_IMAGE_NAME} AS nodejs

我执行docker build . --tag image-custom并得到:

ERROR: failed to solve: base name (${DOCKER_NODEJS_IMAGE_NAME}) should not be blank

在不同的网络上,我计划使用 docker 镜像的不同注册表地址和 docker 镜像本身的不同名称。这就是我写作的原因ARG,以便我能做到docker build --build-arg。

docker
  • 1 个回答
  • 30 Views
Martin Hope
don Rumata
Asked: 2023-07-07 06:31:32 +0000 UTC

如何限制zabbix agent从外网发现?

  • 5

我计划使用zabbix监控iron服务器。zabbix 服务器本身将位于同一服务器上的虚拟机内。我如何确保扫描我的白色 IP 的每个人都看不到我打开了代理端口?在互联网上,他们建议要么将端口更改为非标准端口,要么不要洗澡,因为设置中指定了服务器地址,这意味着其他请求将下降。但这一切听起来都像是半途而废。

linux
  • 2 个回答
  • 19 Views
Martin Hope
don Rumata
Asked: 2022-07-21 19:38:36 +0000 UTC

如何将 2 个列表转换为 Ansible 中的字典?

  • 0

有2个变量:

test2_dom_array:
  - example.com
  - example.org
test2_ip_array:
  - 127.0.0.1
  - 127.0.0.10

我该如何使用ansible:

[
  {
    "site": "example.com",
    "ip": "127.0.0.1"
  },
  {
    "site": "example.org",
    "ip": "127.0.0.10"
  }
]

我只得到:

block:
  - set_fact:
      dig_fact: []
  - set_fact: 
      dig_fact: "{{ dig_fact + [{ 'site': item.0 },{ 'ip': item.1 }] }}"

带排气:

[
  {
    "site": "example.com"
  },
  {
    "ip": "127.0.0.1"
  },
  {
    "site": "example.org"
  },
  {
    "ip": "127.0.0.10"
  }
]
администрирование ansible
  • 1 个回答
  • 52 Views
Martin Hope
don Rumata
Asked: 2022-09-05 06:33:31 +0000 UTC

如何从 Ansible 中的两个数组中获取第三个数组?

  • 0

有2个数组:

"names_fact": [
    "site1", 
    "site1"
]

和

"tiers_fact": [
    "prod", 
    "test"
]

我需要得到第三个:

"lxd_containers_names_fact": [
    "site1-test",
    "site1-prod"
]

我试图理解这里写的内容(比如我的案例)并进行调整,但什么也没发生。

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2022-05-05 17:35:27 +0000 UTC

Ansible 未在 docker 中执行“命令:”

  • 1

主机:ubuntu 18.04

可靠:2.9.20

docker-ce: 5:20.10.6~3-0~ubuntu-bionic

    - name: test container
      when:
        - ansible_system == 'Linux'
        - ansible_architecture == 'x86_64'
      become: yes
      docker_container:
        name: test-01
        hostname: ansible-ubuntu-20-04
        image: diodonfrost/ansible-ubuntu:20.04
        volumes:
          - /tmp/roles:/root/.ansible/roles
        output_logs: yes
        state: started
        command: touch /tmp/1
        interactive: yes
        tty: yes

一个带有ubuntu的虚拟机,它包含一个docker,计划在容器(绝对沙箱)中测试代码。一切都已创建甚至启动,但不知何故我看不到结果。那些。touch /tmp/1挂但不运行:

root@docker-test-01:~# docker container ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED         STATUS         PORTS     NAMES
fc82da6238a4   diodonfrost/ansible-ubuntu:20.04   "/sbin/init touch /tmp/1…"   6 seconds ago   Up 4 seconds             test-01
root@docker-test-01:~# docker container exec test-01 ls /tmp/
hsperfdata_root
root@docker-test-01:~# 

从主机运行 - 一切正常:

root@docker-test-01:~# docker container exec -i -t test-01 touch /tmp/1
root@docker-test-01:~# docker container exec test-01 ls /tmp/
1
hsperfdata_root
root@docker-test-01:~# 

在哪里挖?

升级版。回应评论:

root@docker-test-01:~# docker container ps -a --format "{{ .Command }}"
"/sbin/init w"

不,之后——沉默。

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2022-01-30 05:15:17 +0000 UTC

如何在 Ansible 中按键比较 2 个 json?

  • 0

如果用户是特定组的成员,我正在编写一个为用户安装共享文件夹的角色。除了按键比较两个对象之外,一切都证明了。在所有操作之后,我有这个:

原则上可以挂载的内容列表(但如果没有权限,那么它当然不会让你进去):

"united_info_about_shares_fact": [
    {
        "PathToShare": "//depit.my.domain/depit",
        "ShareAccessGroups": "it_group",
        "ShareName": "Общая папка управления IT"
    },
    {
        "PathToShare": "//share.edu.my.domain/share",
        "ShareAccessGroups": "edu_ecc_share",
        "ShareName": "Общая папка для студентов и преподавателей"
    },
    {
        "PathToShare": "//storage.my.domain/kaf_raket-dvig",
        "ShareAccessGroups": "kaf_raket-dvig",
        "ShareName": "Общая папка кафедры ракетных двигателей"
    },
    {
        "PathToShare": "//storage.my.domain/dek_fisis",
        "ShareAccessGroups": "dek_fisis_share",
        "ShareName": "Общая папка деканата ФИСИС"
    },
    {
        "PathToShare": "//storage.my.domain/kaf_fiziki-tverd-tela",
        "ShareAccessGroups": "kaf_fiziki-tverd-tela_share",
        "ShareName": "Общая папка кафедры физики твёрдого тела"
    }
]

用户所属组的列表:

"user_groups_list_fact": [
    {
      "ShareAccessGroups": "it_group"
    },
    {
      "ShareAccessGroups": "vpn_users"
    },
    {
      "ShareAccessGroups": "wifi_users"
    },
    {
      "ShareAccessGroups": "edu_ecc_share"
    },
    {
      "ShareAccessGroups": "site_users"
    }
]

那些。我希望它给我:

    {
        "PathToShare": "//depit.my.domain/depit",
        "ShareAccessGroups": "it_group",
        "ShareName": "Общая папка управления IT"
    },
    {
        "PathToShare": "//share.edu.my.domain/share",
        "ShareAccessGroups": "edu_ecc_share",
        "ShareName": "Общая папка для студентов и преподавателей"
    },

谷歌搜索将我带到https://stackoverflow.com/a/58487241和https://stackoverflow.com/a/56396809但我无法适应。结果是这样的,但代码不起作用:

- debug:
    msg: "{{ item.PathToShare }}"
  loop: "{{ united_info_about_shares_fact }}"
  when: "united_info_about_shares_fact | intersect(user_groups_list_fact | json_query('[*].ShareAccessGroups')) | length == 0"

UPD。我又挖了一些,但我只能得到一个元素:

- set_fact:
    matching_by_groups: "{{ united_info_about_shares_fact | json_query('[*].ShareAccessGroups') | intersect(user_groups_list_fact | json_query('[*].ShareAccessGroups')) }}"
  
- set_fact:
    needed_shares: "{{ united_info_about_shares_fact | json_query(query_for_get_needed_shares) }}"
  loop: "{{ united_info_about_shares_fact }}"
  with_items: "{{ united_info_about_shares_fact }}"
  vars:
    query_for_get_needed_shares: "[?ShareAccessGroups == `{{ matching_by_groups[0] }}`]"
json
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2021-12-21 17:06:20 +0000 UTC

如何将远程计算机上文件的路径传递给 Ansible 中的 set_facts 模块?

  • 0

有setup.ini,它位于文件夹TEMP中,您需要从中获取变量。我无法将file路径作为变量传递给参数。我不想硬核,我按照这里写的做了。

- name: Set some fact about Autodesk product
  when:
    - ansible_os_family == 'Windows'
    - ansible_env.PROCESSOR_ARCHITECTURE == 'AMD64'
  vars:
    autodesk_path_to_setup_ini_file: '{{ ansible_env.TMP }}\setup-{{ autodesk_product_directory }}.ini'
    autodesk_product_directory: autocad
  set_fact:
    autodesk_adlm_version_fact: "{{ lookup('ini', 'ADLM_VERSION section=SETUP file={{ autodesk_path_to_setup_ini_file }} encoding=utf-16') }}"
  delegate_to: "{{ inventory_hostname }}"

错误:

fatal: [10.10.10.178]: FAILED! => {
    "msg": "An unhandled exception occurred while running the lookup plugin 'ini'. Error was a <class 'ansible.errors.AnsibleParserError'>, original message: Invalid filename: 'None'"
}

ansible 2.9.13

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-09-27 16:24:29 +0000 UTC

如何在 GNU Screen 会话中查找文本?

  • 1

我有一个在 GNU Screen 会话中运行的程序,我需要在其输出中找到一段文本。怎么做?

那些。你需要类似的东西screen -x --quiet | grep text4search && echo НАЙДЕНО!。

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-08-15 18:58:29 +0000 UTC

或者 Python 或 Ansible 或 Deban\Ubuntu 无法知道所需的 python 库已安装

  • 0

有一个 ansible 角色,您需要在其中通过 .json 向 json 发出请求jmespath。“一切都在我的机器上运行”,直到代码被移植到纯 ubuntu(docker 或 wbox——没关系)。默认情况下,既没有python-jmespath,也没有,也python3-jmespath没有pip install jmespath。合乎逻辑的步骤是通过标准模块,我这样做,但问题是它抛出了:fatal: [localhost]: FAILED! => {"msg": "You need to install \"jmespath\" prior to running json_query filter"}

但!一旦你重新启动它,一切都会开始工作。

其实问题是:如何告诉python\ansible\ubunt“更仔细地寻找这个库”?谷歌搜索PYTHONPATH,但任何安装方法后都没有什么有趣的。

ansible 2.9.12, Ubuntu 18.04.5

python
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-07-31 15:44:03 +0000 UTC

如何在ansible中通过掩码选择包名称?

  • 0

我需要获取名称以dotnet.

该方案有效:

- debug:
    msg: "{{ ansible_facts.packages['dotnet-runtime-3.1'] }}"

而这个不见了:

- debug:
    msg: "{{ ansible_facts.packages['dotnet*'] }}"

"{{ ansible_facts.packages | regex_findall('^dotnet.*') }}"由于某种原因,它也不起作用。

регулярные-выражения
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-05-28 16:08:21 +0000 UTC

如何在 CircleCI 中从一个容器到达另一个容器?

  • 0

有这样的东西CircleCI。码头给出了一次启动两个容器的示例:

  rake_test:
    docker:
      - image: circleci/ruby:2.4-node-jessie
      - image: circleci/postgres:9.4.12-alpine
    steps:
...
      - run: bundle --path vendor/bundle

虚拟机ruby怎么知道附近有pg,需要敲门呢?一位同事抛出了Docker Compose手册页的链接,但我也不了解那里的网络交互机制。

PS 我只读过关于 docker 的知识,并且一般都知道。没有在生产中工作。

PPS我看到了这个答案,但仍然不清楚如何在我的特定情况下应用它。

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-04-25 06:31:39 +0000 UTC

如何使用 json_query 获取 Ansible 中的顶级元素?

  • 0

有一个文件:https://product-details.mozilla.org/1.0/languages.json在那里native: "Русский"。我怎样才能得到ru?不一定json_query——但我也不想在 python 中自写模块。

python
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-04-22 05:41:22 +0000 UTC

找出 Linux 上是否安装了图形环境的最短且最通用的方法是什么?

  • 0

当然,你可以列出与 , , 相关的包x11,wayland或者mir为 写一个很长的正则表达式pgrep,但我要简洁。

linux
  • 2 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-08-14 01:23:01 +0000 UTC

如何在ansible模板中打破字符串并插入连字符?

  • 1

我想在机器上配置同步。配置有device id,即 8 组,每组 7 个字符。就像是:

<device id="XP6UB5O-VIQ22NK-FOXOTX2-JAX3IH5-A4QXPN7-OPWKTGR-V5OD3AF-FHHBIQ4" introducedBy=""></device>

幂等性我没有任何问题,我从主机名中计算了 sha256,但出现了另一个问题:如何将没有分隔符的字符串拆分为相等数量的字符并插入连字符?

现在坚持这个:

debug:
  msg: "{{ (ansible_hostname | hash('sha256'))[:56] | upper }}"

ok: [localhost] => {
    "msg": "1E6F2CDE48E942DAD8777183BC442F10F282C2F015C12405DD1091FF"
}
ansible
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-01-27 05:42:48 +0000 UTC

串行模式下并行启动ansible playbook:1

  • 3

给定:

  • 10 个计算机课程,包含 +/- 10 台计算机。
  • 每个类都有一个 100Mbps 的上行链路。在地板上 - 千兆。
  • CloneZilla 格式的 180 GB 图像。
  • 主机名是已知的,在inventory.ini.
    • 每个班级在其自己的组中:[1403]等[1405]。

需要什么:

  • 将图像分散在每台计算机上。
  • 通过 ansible (v2.7.6 + ubuntu 16.04) 管理部署。
  • 每个类不得同时运行多个实时部署。其余机器正在等待确认。

什么不起作用:

  • 提示serial: 1没有帮助。只部署了一台计算机inventory.ini。
  • 提示serial: 10没有帮助。列表中的前 10 辆汽车已部署,就好像它没有按组划分一样。

一本不能按照您想要的方式工作的剧本:

---
  - name: Run CloneZilla
    hosts: all
    strategy: linear
    serial:
      - 1
    vars:
      filename_rx_end: end-of-rx-label
    tasks:

    - name: Run CloneZilla deploy (send "yes" + Enter)
      when: ansible_system == 'Linux'
      block:
        - command: sudo screen -x -X stuff 'y^M'
        - local_action:
            module: uri
            url: 'http://{{ inventory_hostname }}/{{ filename_rx_end }}'
          register: result
          until: result.status == 200
          retries: 10000
          delay: 10

主要问题:

如何确保同时sudo screen -x -X stuff 'y^M'发送只有1403-01,1405-01等?1407-01然后打开1403-02,1405-02等1407-02。

可能的拐杖:

启动一个单独的会话tmux,创建 10 个终端并启动一个带有单独库存的剧本。但我不想。

和以前一样:

一切同时开始,慢慢地拖了好几天。在某些阶段,无法预测特定计算机是否运行良好或是否需要重做。

或者

在第一个版本中丢失一台计算机意味着整个楼层的重新启动。

linux
  • 3 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-01-13 08:01:39 +0000 UTC

grep -v 模拟 ansible

  • 4

有必要在 Windows 上接收所有曾经进入的用户。该文件夹不应在列表中Public。

这种结构不起作用:

- name: TEST find 4 win
  block:
    - win_find:
        paths: C:\Users\
        file_type: directory
        excludes: Public
      register: win_find_out
    - debug:
        msg: "{{ win_find_out.files }}"

还有另一个参数patterns,但是!Public,?!Public或者not (Public)不工作 - 排气完全消失。

ansible 2.7.5

python
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-11-03 21:46:49 +0000 UTC

如何在没有 shell 模块的情况下找出位于服务器上的文本文件的内容?

  • 2

我有一本安装最新版本 Virtualbox 的剧本。为此,您需要提取文本文件并从中读取内容。当前的实现看起来像这样并且工作正常:

- local_action: shell wget -O - http://download.virtualbox.org/virtualbox/LATEST-STABLE.TXT
  register: virtualbox_latest_version

但是 ansible 发誓这不是 b 并且您需要使用get_url. 一切都会好的,但是我没有找到与 wget 的参数等效的参数-O -。

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-08-05 20:20:22 +0000 UTC

Proxmox 在创建容器时不使用自定义 lxc 模板

  • 0

创建自己的 lxc 模板时 - proxmox 拒绝基于它创建新的虚拟机,抛出以下内容:

Using default stripesize 64.00 KiB.
Logical volume "vm-100-disk-1" created.
mke2fs 1.44.3 (10-July-2018)
Discardindone
Creating filesystem with 2097152 4k blocks and 524288 inodes
Filesystem UUID: 5d45a865-bfc5-4368-8b88-710a39856a3d
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tabdone
Writing inode tabdone
Creating journal (16384 blocks): done
Multiple mount protection is enabled with update interval 5 seconds.
Writing superblocks and filesystem accounting informatdone

extracting archive '/var/lib/vz/template/cache/snap-test-03-2018-08-04.tar.gz'
Total bytes read: 407459840 (389MiB, 86MiB/s)
Architecture detection failed: open '/bin/sh' failed: No such file or directory

Falling back to amd64.
Use `pct set VMID --arch ARCH` to change.
Logical volume "vm-100-disk-1" successfully removed
TASK ERROR: unable to detect OS distribution

当使用来自https://linuxcontainers.org/的模板时- 一切都很好。

linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-12-31 05:28:16 +0000 UTC

如何使用 win_unzip 模块解压缩许多档案?

  • 0

有一个包含一堆 zip 文件的文件夹。在每个档案中 - 一个程序和帮助它。一些档案会定期更新。如何使它像这样工作:

- win_unzip:
    src: '{{ ansible_env.ProgramFiles }}\soft\*.zip'
    dest: '{{ ansible_env.ProgramFiles }}\soft\'
linux
  • 1 个回答
  • 10 Views
Martin Hope
don Rumata
Asked: 2020-12-22 03:33:20 +0000 UTC

当一些主机不可用时,ansible 开始只执行第一个 playbook

  • 1

上周,这还没有发生(好吧,或者我很不专心)。关于这一点 - 我今天才注意到。如果您在清单文件中注释掉那些已熄灭的主机,则它可以ansible-playbook -i ./inventory test-01.yml test-02.yml正常工作。

在哪里挖掘,改变什么变量?

ubuntu 16.04 ansible 2.4.2.0

linux
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5