我在独立的剧本中使用了一段时间的 ansible,现在想在我的环境中配置角色结构。这是文件夹结构(例如,总结)
├── hosts
├── playbooks
│ ├── project1-staging.yml
│ └── project1-production.yml
├── roles
│ └── project1-compile
│ ├── files
│ │ └── project1.conf
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ └── vars
│ └── main.yml
│ └── ec2-create
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ └── vars
│ └── main.yml
│ └── project1-deploy
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ └── vars
│ └── main.yml
├── vars.yml
它看起来很简单。我想执行 project1-staging.yml 剧本来为特定版本创建一个新的暂存环境,就像这样;ansible-playbook project1-staging.yml -e 'version=1'
和下面的剧本;
---
- name: deploy project1 (staging) {{ version }}
hosts: local
connection: local
roles:
#- project1-compile version={{ version }}
- { role: ec2-create, project: project1, count:1 }
- { role: project1-compile, version: {{ version }} }
- { role: project1-deploy, version: {{ version }}, target: {{last_ec2}} }
这种结构存在一些问题,我也不喜欢它。- 这是正确的方法吗?- 我如何使用 ec2-create 角色的结果,我想将代码部署到刚刚创建但我不知道 id 的服务器。- 是否有另一种将参数传递给角色的方法?