Tôi đã tạo một môi trường với một số máy chủ Linux dựa trên KVM. Tôi đang sử dụng trình quản lý virt để tạo các máy ảo khác nhau và tôi đang sử dụng các cầu nối Linux để tạo kết nối giữa các máy ảo trong các máy chủ khác nhau.Tôi có thể chạy môi trường điện toán đám mây-init mà không cần sử dụng openstack hoặc EC2 không?
Bây giờ, tôi muốn có một máy chủ cấu hình tự động để máy ảo của tôi có thể tự động định cấu hình tên, địa chỉ IP, chạy một số tập lệnh, v.v ... dựa trên id duy nhất mà mỗi người có. Có thể sao chép một loại thiết lập đám mây-init trong một môi trường không mở?
Tôi đã thử sử dụng cloud-init nguồn dữ liệu NoCloud theo cách sau. Trước tiên, tôi đã cài đặt cloud-init trong VM và cấu hình cloud.cfg:
datasource:
NoCloud
datasource_list: [ NoCloud ]
disable_ec2_metadata: True
Sau đó, tôi đã tạo ra một tập tin dữ liệu người dùng và tập tin siêu dữ liệu với nội dung sau:
user- dữ liệu:
#cloud-config
hostname: prueba
password: passw0rd
chpasswd: { expire: False }
ssh_pwauth: True
meta-data:
instance-id: iid-local01
local-hostname: prueba
Sau đó, tôi đã tạo ra một tập tin iso:
genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
Cuối cùng, tôi đã đính kèm đĩa vào máy ảo và khởi động nó. Đây là phần liên quan của XML:
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/images/seed.iso'/>
<backingStore/>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
Khi VM bắt đầu, nó nói:
2015-05-12 12:12:40,394 - util.py[WARNING]: Getting data from <class 'cloudinit.sources.DataSourceNoCloud.DataSourceNoCloudNet'> failed
* Stopping Read required files in advance (for other mountpoints) [ OK ]
* Stopping Read required files in advance (for other mountpoints) [ OK ]
* Stopping Read required files in advance (for other mountpoints) [ OK ]
2015-05-12 12:12:48,808 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-data/instance-id' failed [3/120s]: request error [HTTPConnectionPool(host='169.254.169.254', port=80): Max retries exceeded with url: /2009-04-04/meta-data/instance-id (Caused by <class 'socket.error'>: [Errno 113] No route to host)]
Bất kỳ đề xuất về cách để làm cho nó hoạt động?
Nguồn dữ liệu trong /etc/cloud/cloud.cfg không hoạt động đúng với tôi. Tôi đã chạy 'dpkg-reconfigure cloud-init' và chỉ định nguồn dữ liệu NoCloud. Quá trình để tạo ra hình ảnh với dữ liệu người dùng và siêu dữ liệu cũng là một chút khác nhau: truncate --size 2M init.img mkfs.vfat -n cidata init.img mcopy -oi init1.img dữ liệu siêu dữ liệu người dùng :: – garciadeblas
Tôi đã chèn một đĩa mới và kết quả trong bộ mô tả tên miền XML libvirt của VM giống như sau: –
garciadeblas
Với cấu hình trên, tôi có thể thực hiện một số lệnh cấu hình đám mây hoạt động đúng (đặt mật khẩu và tên máy chủ), trong khi các lệnh khác như runcmd hoặc write_files chưa hoạt động – garciadeblas