我想从URL中提取一些正则表达式匹配.我能做到这一点的唯一方法是:
- name: Set regex pattern for github URL
set_fact: pattern="^(git\@github\.com\:|https?\:\/\/github.com\/)(.*)\/([^\.]+)(\.git)?$"
- name: Extract organization name
set_fact: project_repo="{{ deploy_fork | regex_replace( "^(git\@github\.com\:|https?\:\/\/github.com\/)(.*)\/([^\.]+)(\.git)?$", "\\3" ) }}"
when: deploy_fork | match( "{{ pattern }}" )
Run Code Online (Sandbox Code Playgroud)
通过这种方法,我可以pattern在match过滤器中重用该变量,但不能在set_fact我将提取的文本分配给另一个变量的行上重用.有没有办法在set_fact该用途中重用变量filter(s)?
我正在尝试将ecs_taskdefinition模块用于Ansible(v2.0),我想我已经陷入了基本的Ansible YAML陷阱.
根据模块的示例,如果我为cpu和提供整数值memory,则按预期工作:
- name: "Create task definition"
ecs_taskdefinition:
containers:
- name: simple-app
cpu: 10
memory: 300
essential: true
image: "httpd:2.4"
portMappings:
- containerPort: 80
hostPort: 80
Run Code Online (Sandbox Code Playgroud)
虽然,我希望memory并且cpu是可怜的.这样我就可以在不同的环境中使用相同的容器定义.
APP_ENV: "test"
test:
containers:
simple_app:
memory: 1920
cpu: 2560
- name: "Create task definition"
ecs_taskdefinition:
containers:
- name: simple-app
cpu: "{{vars.get(APP_ENV).containers.simple_app.cpu | int}}"
memory: "{{vars.get(APP_ENV).containers.simple_app.memory | int}}"
essential: true
image: "httpd:2.4"
portMappings:
- containerPort: 80
hostPort: 80
Run Code Online (Sandbox Code Playgroud)
在上面,我从botocore API得到错误:
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid …Run Code Online (Sandbox Code Playgroud) 我有一个 Jenkins 工作,它将环境名称作为参数。在另一个站点/仪表板上,我想创建指向此 Jenkins 作业的链接。但链接应根据点击位置预先填充参数。
像这样的事情,
<a href="https://jenkins/<someJenkinsAPI>?ENV=env1">env1</a>
<a href="https://jenkins/<someJenkinsAPI>?ENV=env2">env2</a>
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我试图使用 docker 运行elasticsearch。并希望使用卷来保存数据。这是我使用的命令。
docker run -it --rm -v $(pwd)/elasticdata:/usr/share/elasticsearch/data elasticsearch:7.5.1
Run Code Online (Sandbox Code Playgroud)
这在我的 Mac 上运行良好。但是当我尝试在 Travis CI 中运行它时,它失败了,权限被拒绝/usr/share/elasticsearch/data/目录权限被拒绝。
这是我注意到 OSX 与 Linux 上 docker 卷的权限不一致的情况
OSX (Docker 版本 19.03.8,构建 afacb8b)
$ ls -l elasticdata/.keepme
-rw-r--r-- 1 nikhil staff 0 Apr 3 13:07 elasticdata/.keepme
$ docker run -it --rm -v $(pwd)/elasticdata:/usr/share/elasticsearch/data elasticsearch:7.5.1 namei -l /usr/share/elasticsearch/data/.keepme
f: /usr/share/elasticsearch/data/.keepme
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxrwxr-x elasticsearch root elasticsearch
drwxr-xr-x root root data
-rw-r--r-- root root .keepme …Run Code Online (Sandbox Code Playgroud)