它是这个问题的补充,典型的解决方案是使用sudo docker container ls显示的命令
CONTAINER ID IMAGE COMMAND CREATED ...\n4114e655e2b1 xx/yy "/bin/sh -c \'exec po\xe2\x80\xa6" 3 days ago ... \nRun Code Online (Sandbox Code Playgroud)\n这里的问题是如何查看完整的 COMMAND 列内容?
\nPS:没有人使用该--format选项,如何以最简单的即插即用方式使用它?
问题
如何迭代枚举标志别名?
from enum import Flag
class Color(Flag):
RED = 1
BLUE = 2
GREEN = 4
WHITE = RED | BLUE | GREEN # <- How do I retrieve this alias?
list(Color)
# [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 4>]
# How do I include Color.White and other aliases in this list?
Run Code Online (Sandbox Code Playgroud)
根据文档,__iter__仅返回非别名成员。
__iter__(self):
返回所有包含的非别名成员
版本 3.11 中的更改:迭代期间不再返回别名。
我的 ansible 变量中加载了一个 json 文件内容。
json 内容(以及我从中写入的结果文件)具有不必要的文件空间和空行。我想通过删除所有不必要的东西来缩小 json 文件。
是否可以做类似的事情{{ myjson_content| to_json_minify }}?
也许这可以通过正则表达式来完成?
我正在尝试制作通过 ssh 连接到服务器并发送文件的 ansible playbook。
我的大部分谷歌搜索都没有产生具体结果。
-
become: true
hosts: all
remote_user: artur
tasks: ~
-
copy:
dest: /home/artur/grep_error.py
group: UnixUsers
mode: 420
owner: artur
src: /Users/artur/Desktop/sublime/projects/scripts/grep_error.py
name: "example copying file with owner and permissions"
Run Code Online (Sandbox Code Playgroud)
我希望将文件复制到 ssh 服务器。
我正在尝试使用 Ansible 向多个主机发送返回字典的命令。然后我想附加每个主机的字典结果来累积所有主机的结果。最后,我想打印累积结果的字典以供以后处理或写入文件。由于结果显示为字符串,我似乎无法合并字典。有办法解决这个问题吗?另外,是否有更 Ansible 有效的方法来完成此任务?
示例手册:
---
- hosts: myhosts
gather_facts: False
vars:
mydict: {}
tasks:
- name: Get dict result
shell: "cat /path/dict_output"
register: output
- set_fact:
result_dict="{{ output.stdout}}"
- debug: var=result_dict
Run Code Online (Sandbox Code Playgroud)
调试输出:
TASK [debug] ****************************************************************************************************************************************************************
ok: [host-a] => {
"result_dict": {
"host_b": [
{
"ip-1": {
"port": "22",
"service": "ssh"
}
},
{
"ip-2": {
"port": "21",
"service": "ftp"
}
}
]
}
}
ok: [host-b] => {
"result_dict": {
"host_a": [
{
"ip-1": {
"port": "22",
"service": …Run Code Online (Sandbox Code Playgroud) 我有一个 ansible 变量,它是一个字典列表:
userdata:
- { first: Mike, last: Smith, username: msmith}
- { first: Jane, last: Largo, username: jlargo}
- { first: Evan, last: Jones, username: ejones}
Run Code Online (Sandbox Code Playgroud)
我想向每个条目添加一个字段,password该字段为每个条目分配一个随机生成的 20 个字符的字母数字密码,以便我可以在剧本期间使用它来执行需要同步该密码的各种操作。我尝试做 a block:,但发现你不能这样做with_items。我也找不到使用with_items和保存回该项目字典的方法。密码查找插件看起来有望获得随机密码,而无需将其保存到文件(/dev/null),但我似乎无法在列表的每个元素中获取它。
最后,我想要一个这样的结构:
userdata:
- { first: Mike, last: Smith, username: msmith, password: FdUChpPtfonoPexMZmt0}
- { first: Jane, last: Largo, username: jlargo, password: QR13sN7CP00LbdXZ0gON}
- { first: Evan, last: Jones, username: ejones, password: OCQSmqCbO8239jHpQiRm}
Run Code Online (Sandbox Code Playgroud) 我在剧本中运行两个角色,一个角色创建用户,另一个角色运行一系列我想作为服务器上新创建的用户运行的任务。
playbook的写法如下:
- hosts: centos
connection: ssh
gather_facts: false
become: true
roles:
- ../roles/user_setup
- ../roles/tasks
Run Code Online (Sandbox Code Playgroud)
假设从user_setup角色创建的用户名为user1:我基本上希望名为 的角色tasks作为 运行user1。最好的方法是什么?谢谢。
我遇到了一个令人难以置信的令人沮丧的问题,Dockerfile 中的 COPY 命令成功复制了除一个之外的所有应用程序文件。我没有 .dockerignore 文件,所以我知道该文件不会以这种方式从构建中排除。
\n注意:我确实有一个.gitignore排除file2.json我不想版本的情况。但正如您将在下面看到的,我是从本地文件夹构建的,而不是从克隆/签出远程构建的,所以我不明白为什么.gitignore在这种情况下会影响 docker 构建。
下面是我的目录的样子:
\n$ tree -a -I .git app\napp\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 data\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file1.txt\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file2.json\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file3.txt\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file4.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 somefile2.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 somefile.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Dockerfile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\nRun Code Online (Sandbox Code Playgroud)\n这就是我的 Dockerfile 中的内容
\nFROM ubuntu:18.04\nFROM python:3.7\n \nCOPY . /app\n \nRUN cp app/app/data/file2.json ~/.somenewhiddendirectory\n \nRUN pip install app/.\n \nENTRYPOINT ["python", "app/app/somefile.py"]\nRun Code Online (Sandbox Code Playgroud)\n由于某种原因,在通话file2.json过程中没有被复制,当我尝试在其他地方复制COPY . /app时,我收到错误。cp我已经完成了类似的调用 …
我正在运行 a docker-compose up -d,收到以下错误消息:
Creating webserver ...
Creating webserver ... error
ERROR: for webserver Cannot start service webserver: error while mounting volume '/var/lib/docker/volumes/backend_dhparam/_data': failed to mount local volume: mount /home/root/SemanaOMnistack/backend/dhparam/:/var/lib/docker/volumes/backend_dhparam/_data, flags: 0x1000: no such file or directory
ERROR: for webserver Cannot start service webserver: error while mounting volume '/var/lib/docker/volumes/backend_dhparam/_data': failed to mount local volume: mount /home/root/SemanaOMnistack/backend/dhparam/:/var/lib/docker/volumes/backend_dhparam/_data, flags: 0x1000: no such file or directory
ERROR: Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)
我的卷路径docker-compose.yml是:
volumes:
certbot-etc:
certbot-var:
dhparam: …Run Code Online (Sandbox Code Playgroud) 我希望在多个库存组上运行相同的任务,例如:
[big_group]
greenhat
localhost
redhat
linux
[small_group]
localhost
[redhat_group]
redhat
Run Code Online (Sandbox Code Playgroud)
在我的剧本中,我需要在[small_group]和[redhat_group]上运行一个任务
我的任务如下
[big_group]
greenhat
localhost
redhat
linux
[small_group]
localhost
[redhat_group]
redhat
Run Code Online (Sandbox Code Playgroud)
收到警告作为
[WARNING]: While constructing a mapping from firewall.yml, line 6, column 5, found a duplicate dict key (when). Using last defined value only.
Run Code Online (Sandbox Code Playgroud)
剧本结果:
TASK [Disable HTTPS service from firewalld] **************************************************************************************************************************************************
skipping: [localhost]
skipping: [redhat]
Run Code Online (Sandbox Code Playgroud)
如何指定多个组 when: inventory_hostname in groups[]
谢谢
ansible ×6
docker ×3
python ×3
jinja2 ×2
devops ×1
dictionary ×1
json ×1
python-3.11 ×1
python-3.x ×1
yaml ×1