docker - 是否可以在 ArchLinux Docker 容器中运行 hostnamectl?
问题描述
我想为 Ansible 创建一个角色来配置我的网络。我也在尝试在 Arch Linux Docker 容器中测试我在分子中的角色。在我的角色中,我正在使用 Ansible 的主机名模块。但是当我运行我的分子测试时,我收到以下错误消息:“无法设置属性:无法设置静态主机名:设备或资源忙。”
我是 Docker 新手,所以我的配置中可能缺少一些功能。也许我的 Dockerfile 出了点问题。但也许根本不可能让 hostnamectl 命令在 Arch Linux Docker 容器中运行。我已经安装了 inetutils 包并运行了主机名命令,它有效。但至少 Ansibles 主机名模块不关心主机名命令。
我希望你能给我一些关于我的问题的信息!
这是我正在使用的文件:
网络/默认值/main.yml
---
network_hostname: archlinux
网络/分子/默认/converge.yml
---
- name: Converge
hosts: all
roles:
- network
网络/分子/默认/molecule.yml
---
dependency:
name: galaxy
driver:
name: docker
lint: |
set -e
yamllint .
ansible-lint
platforms:
- name: instance
image: marcstraube/docker-archlinux-base-ansible:latest
pre_build_image: true
privileged: true
command: "/usr/lib/systemd/systemd"
env:
container: docker
capabilities:
- SYS_ADMIN
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
tmpfs:
- /run
- /run/lock
- /tmp
provisioner:
name: ansible
inventory:
host_vars:
instance:
ansible_user: ansible
scenario:
name: default
create_sequence:
- create
check_sequence:
- destroy
- create
- converge
- check
- destroy
converge_sequence:
- create
- converge
destroy_sequence:
- destroy
test_sequence:
- lint
- destroy
- syntax
- create
- converge
- idempotence
- destroy
verifier:
name: ansible
网络/任务/main.yml
---
- name: Set hostname
become: true
hostname:
name: "{{ network_hostname }}"
谢谢你的帮助!
解决方案
推荐阅读
- .net - TLS 1.2 和现有连接被远程主机强行关闭
- r - R 绘图,名称在 y 轴上,值在 x 轴上
- r - 动态多个图,我怎么能一次调用它们?
- swift - Appcelerator Titanium - 无法找到或使用自动链接库“swiftCore”
- reactjs - Material-ui 自动完成过滤列表
- python - 将数字列转换为日期以进行时间序列分析
- r - 使用 JSON Web 令牌将文件发布到外部 API
- sql - Postgres - 获取第 X 周的星期一
- python - Tkinter 按字母顺序对网格元素进行排序
- docker - Neo4j 中的 docker 卷权限