Amazon ec2 如何告诉ansible在不同的环境下使用不同的用户?
我正在用Ansible在ec2上构建一台机器。但我也有流浪汉在本地测试脚本 这是我的剧本Amazon ec2 如何告诉ansible在不同的环境下使用不同的用户?,amazon-ec2,vagrant,ansible,ansible-playbook,Amazon Ec2,Vagrant,Ansible,Ansible Playbook,我正在用Ansible在ec2上构建一台机器。但我也有流浪汉在本地测试脚本 这是我的剧本 - name: Provision ec2 hosts: all user: vagrant sudo: yes gather_facts: true vars: gsutil_user_home: "vagrant" 如果我想在EC2上使用这个剧本,我必须将user和gsutil\u user\u home更改为ubuntu,才能让它正常工作。我是否可以将其作为一个变量,并根
- name: Provision ec2
hosts: all
user: vagrant
sudo: yes
gather_facts: true
vars:
gsutil_user_home: "vagrant"
如果我想在EC2上使用这个剧本,我必须将
user
和gsutil\u user\u home
更改为ubuntu
,才能让它正常工作。我是否可以将其作为一个变量,并根据一些参数告诉Ansible它需要运行哪个用户 如果这些值在您的剧本持续时间内通常是一致的,您通常会在资源清册中将它们设置为组/主机变量,并为不同的环境设置不同的资源清册或组。但是,如果您真的想使用vars并使用-e
传递它们,也可以:
- name: Provision ec2
hosts: all
user: {{ my_ec2_user }}
sudo: yes
gather_facts: true
vars:
gsutil_user_home: {{ gsutil_user_home }}
如果这些值在剧本的持续时间内通常是一致的,那么您通常会在资源清册中将它们设置为组/主机变量,并为不同的环境设置不同的资源清册或组。但是,如果您真的想使用vars并使用
-e
传递它们,也可以:
- name: Provision ec2
hosts: all
user: {{ my_ec2_user }}
sudo: yes
gather_facts: true
vars:
gsutil_user_home: {{ gsutil_user_home }}
我建议您创建文件夹,如
开发
,生产
,登台
。将hosts
文件、group\u vars
、hosts\u vars
设置为正确的变量并使用它们
例如:
文件夹结构
test.yml
主机-开发
主机-数据生产
运行它:
我建议您创建文件夹,如
开发
,生产
,登台
。将hosts
文件、group\u vars
、hosts\u vars
设置为正确的变量并使用它们
例如:
文件夹结构
test.yml
主机-开发
主机-数据生产
运行它:
---
- hosts: localhost
gather_facts: no
connection: local
tasks:
- debug: var=ansible_ssh_user
[localhost]
127.0.0.1 ansible_ssh_user=vagrant
[localhost]
127.0.0.1 ansible_ssh_user=ec2-user
$ ansible-playbook -i develop/ test.yml
PLAY [localhost] **************************************************************
TASK: [debug var=ansible_ssh_user] ********************************************
ok: [127.0.0.1] => {
"var": {
"ansible_ssh_user": "vagrant"
}
}
PLAY RECAP ********************************************************************
127.0.0.1 : ok=1 changed=0 unreachable=0 failed=0
$ ansible-playbook -i production/ test.yml
PLAY [localhost] **************************************************************
TASK: [debug var=ansible_ssh_user] ********************************************
ok: [127.0.0.1] => {
"var": {
"ansible_ssh_user": "ec2-user"
}
}
PLAY RECAP ********************************************************************
127.0.0.1 : ok=1 changed=0 unreachable=0 failed=0