Làm cách nào để nối một nội dung của nhiều tệp vào một biến?Ansible - cách kết nối nội dung tệp thành một biến
Đây là vấn đề: Tôi đang cố gắng đặt khóa công khai cho người dùng trên máy từ xa. Ví dụ từ authorized_key documentation rằng hầu hết các công trình:
- name: Set up authorized_keys for the deploy user
authorized_key: user=deploy
key="{{ item }}"
with_file:
- public_keys/doe-jane
- public_keys/doe-john
Nhưng trong thực tế, tôi cần phải sử dụng exclusive=yes
, vì vậy sau khi cập nhật tất cả các phím không được cung cấp nào được loại bỏ.
Nếu số exclusive=yes
được cung cấp thì chỉ có khóa công khai cuối cùng được liệt kê trong tệp .ssh/authorized_keys
(cũng được báo cáo là bug).
Tiếp cận của tôi hiện tại:
- name: create empty temporary keys file
local_action: "shell > /tmp/auth_keys"
- name: concat keys to temporary file
local_action: "shell echo {{ item }} >> /tmp/auth_keys"
with_file:
- public_keys/doe-jane
- public_keys/doe-john
- name: set up authorized_keys
authorized_key: user=deploy
key="{{ lookup('file', '/tmp/auth_keys') }}"
exclusive=yes
này hoạt động nhưng hai lệnh đầu tiên luôn tạo ra "thay đổi". Ngoài ra tôi cảm thấy phải có một giải pháp thanh lịch hơn cho việc này.
Vì vậy, có cách nào để nối nội dung của nhiều tệp vào một biến không? Hoặc có cách tiếp cận nào tốt hơn nói chung cho nhiệm vụ này không?
Suy nghĩ về điều này, để loại bỏ trạng thái "đã thay đổi" 'changed_when: False' có thể được thêm vào hai lệnh đầu tiên nhưng tôi vẫn không hài lòng với kết quả. –