2015-11-12 12 views
5

Bằng cách xem mã số runcmd (/usr/lib/python2.6/site-packages/cloudinit/config/cc_runcmd.py) Tôi nhận thấy không có 'tần số' được chỉ định so với loại khác. Bên cạnh điều duy nhất mà các kịch bản thực hiện là lưu các tập lệnh được đưa ra dưới dạng tập lệnh shell trong/var/lib/cloud/instance/scripts/runcmd.Cách sử dụng đúng cách runcmd và người dùng tập lệnh trong cloud-init?

Vì vậy, nếu tôi chỉ định rõ ràng các mô-đun, tôi PHẢI đặt tần số.

cloud_config_modules: 
- mounts 
- locale 
- set-passwords 
- timezone 
- [ runcmd, always ] 

cloud_final_modules: 
- scripts-per-once 
- scripts-per-boot 
- scripts-per-instance 
- [ scripts-user, always ] 
- ssh-authkey-fingerprints 

và các kịch bản được tạo ra bởi đặc biệt này có thể được điều hành bởi 'kịch bản người dùng', vì vậy tôi cần phải xác định nghĩa

- [ scripts-user, always ] 

để làm cho kịch bản runcmd làm việc

Có cách thích hợp làm như vậy ? Tài liệu hướng dẫn (ít nhất là 0.7.7) không có giải thích đúng về runcmd và user-scripts và cách chúng có thể được sử dụng

Tôi cũng không hiểu sự khác biệt giữa tất cả các chế độ, một lần (lần đầu tiên khởi động thể hiện), Ví dụ (???), luôn luôn (mà tôi hiểu), ???? khởi động (là một trong những tồn tại đó dường như không làm việc ...

EDIT:

ok, tôi đã tìm thấy trong cloudinit/settings.py:

# Valid frequencies of handlers/modules 
PER_INSTANCE = "once-per-instance" 
PER_ALWAYS = "always" 
PER_ONCE = "once" 

và bên cạnh Tôi tìm thấy giải thích trong tập lệnh này:

[[email protected] ~]# cloud-init-per -h 
Usage: cloud-init-per frequency name cmd [ arg1 [ arg2 [ ... ] ] 
    run cmd with arguments provided. 

    This utility can make it easier to use boothooks or bootcmd 
    on a per "once" or "always" basis. 

    If frequency is: 
     * once: run only once (do not re-run for new instance-id) 
     * instance: run only the first boot for a given instance-id 
     * always: run every boot 

Nhưng tôi không nắm bắt được sự khác biệt giữa 'một lần' và 'thể hiện'. Vì vậy, nếu cùng một hình ảnh (thay vì ảnh chụp nhanh) với id cá thể mới trong trường hợp 'một lần' nó sẽ không bắt đầu? trong trường hợp 'dụ' nó sẽ?

Trả lời

1

Tôi nghĩ sự khác biệt quan trọng nếu bạn đang tạo hình ảnh sẽ được sử dụng để khởi chạy nhiều phiên bản hơn.

Hãy tưởng tượng bạn chạy tập lệnh đám mây-init để đặt một phiên bản. Sau đó bạn tạo một hình ảnh của cá thể đó từ đó bạn có thể khởi chạy nhiều phiên bản hơn.

Khi bạn bắt đầu một trường hợp mới từ hình ảnh:

  • các kịch bản với tần suất "một lần" sẽ không chạy lại
  • các kịch bản với tần suất "dụ" sẽ chạy trên khởi động đầu tiên, và không bao giờ một lần nữa trong trường hợp của ví dụ đó
  • các tập lệnh có tần suất "luôn luôn" sẽ chạy trong mỗi lần khởi động
Các vấn đề liên quan