gpt4 book ai didi

amazon-web-services - Ansible + AWS EC2 插件 + 用户名 + 动态 list 文件上的 ssh key

转载 作者:行者123 更新时间:2023-12-04 17:18:32 27 4
gpt4 key购买 nike

我正在使用 aws_ec2 插件在 AWS 上获取我的库存,但我需要一些帮助。

我想在动态 list 文件上设置“ansible_user”和“ansible_ssh_private_key_file”,但我无法让它工作。这可能吗?所以我不需要在命令行上设置“--private-key”和“-u”选项。

这是我当前的 aws_ec2.yaml:

---
plugin: aws_ec2
aws_access_key: 123
aws_secret_key: 345
filters:
tag:Cliente: CustName
instance-state-name : running

有什么想法吗?

谢谢!

最佳答案

您可以为每个 Ansible 主机组创建和加载动态变量。您需要在库存目录中创建适当的文件。例如:假设您已经使用指向相对路径 ./inventoryinventory 键配置了您的 ansible.cfg 文件。这告诉 Ansible 它应该在名为 ./inventory 的文件或 ./inventory 文件夹内的一系列文件中查找主机组的信息。

您只需遵循文件夹结构的适当约定,即可告诉 Ansible 为每个组加载不同的变量:

  • ./inventory/group_vars:将保存组变量。
  • ./inventory/host_vars:将保存主机变量。

Ansible 将使用每个文件夹中的文件名来引用相应的 grouphost。如果您想使用多个文件来保存所有变量,您还可以使用带有组名的子目录。

It's important that your aws_ec2.yml file be located inside the ./inventory directory.

例如:如果您想存储适当的 userkey 配置以访问标记有 Project 标记的 EC2 实例,设置为 stackoverflow,您需要在 ./inventory/group_vars/tag_Project_stackoverflow 处创建一个目录,其中包含如下变量文件:

ansible_user: ec2-user
ansible_ssh_private_key_file: ~/.ssh/id_rsa

The EC2 dynamic inventory module can create dynamic groups from the configuration of your EC2 instances. Check its documentation to see how to configure it.

您甚至可以使用任务动态创建这些文件。我在这里创建一个新的 ec2 key ,将其存储在本地,并创建必要的文件夹结构来保存连接信息:

- name: Create a new EC2 key
amazon.aws.ec2_key:
name: "{{ ec2_key_name }}"
register: ec2_key_output

- name: Save private key
ansible.builtin.copy:
content: "{{ ec2_key_output.key.private_key }}"
dest: "{{ ec2_key_path }}"
mode: 0600
when: ec2_key_output.changed == True

- name: Create the group_vars folder
ansible.builtin.file:
path: ./inventory/group_vars
state: directory
mode: '0755'

- name: Create the group_vars configuration file
ansible.builtin.copy:
content: |
ansible_user: "{{ ec2_user }}"
ansible_ssh_private_key_file: "{{ ec2_key_path }}"
dest: ./inventory/group_vars/tag_Project_stackoverflow

请查看Ansible's documentation regarding inventory management获取更多信息。

关于amazon-web-services - Ansible + AWS EC2 插件 + 用户名 + 动态 list 文件上的 ssh key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67676051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com