Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh 6: Membuat File
penting
AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di AWS re:Post
Setelah Anda membuat direktori, Anda sering perlu mengisinya dengan file konfigurasi, file data, dan sebagainya. Topik ini menunjukkan dua cara untuk menginstal file pada sebuah instance.
Menginstal File dari Cookbook
Cara termudah untuk menginstal file pada instance adalah dengan menggunakan cookbook_file/srv/www/shared setelah direktori dibuat. Sebagai referensi, berikut resep aslinya.
directory "/srv/www/shared" do mode 0755 owner 'root' group 'root' recursive true action :create end
Untuk mengatur buku masak
-
Di dalam
opsworks_cookbooksdirektori, buat direktori bernamacreatefiledan navigasikan ke sana. -
Tambahkan
metadata.rbfilecreatefiledengan konten berikut.name "createfile" version "0.1.0" -
Inisialisasi dan konfigurasikan Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket, dan hapus CentOS dari
platformsdaftar. -
Tambahkan
recipessubdirektori kecreatefile.
File yang akan diinstal berisi data JSON berikut.
{ "my_name" : "myname", "your_name" : "yourname", "a_number" : 42, "a_boolean" : true }
Untuk mengatur file data
-
Tambahkan
filessubdirektori kecreatefiledandefaultsubdirektori ke.filesSetiap file yang Anda instal dengancookbook_fileharus dalam subdirektorifiles, sepertifiles/defaultdalam contoh ini.catatan
Jika Anda ingin menentukan file yang berbeda untuk sistem yang berbeda, Anda dapat menempatkan setiap file khusus sistem dalam subfolder yang diberi nama untuk sistem, seperti.
files/ubuntucookbook_fileSumber daya menyalin file khusus sistem yang sesuai, jika ada, dan sebaliknya menggunakan file tersebut.defaultUntuk informasi selengkapnya, lihat cookbook_file. -
Buat file bernama
example_data.jsondengan JSON dari contoh sebelumnya dan tambahkan ke.files/default
Resep berikut menyalin example_data.json ke lokasi tertentu.
directory "/srv/www/shared" do mode 0755 owner 'root' group 'root' recursive true action :create end cookbook_file "/srv/www/shared/example_data.json" do source "example_data.json" mode 0644 action :create_if_missing end
Setelah sumber daya direktori dibuat/srv/www/shared, cookbook_file sumber daya menyalin example_data.json ke direktori itu dan juga menetapkan pengguna, grup, dan mode file.
catatan
Sumber cookbook_file daya memperkenalkan tindakan baru:create_if_missing. Anda juga dapat menggunakan create tindakan, tetapi itu menimpa file yang ada. Jika Anda tidak ingin menimpa apa pun, gunakancreate_if_missing, yang menginstal example_data.json hanya jika belum ada.
Untuk menjalankan resep
-
Jalankan
kitchen destroyuntuk memulai dengan contoh baru. -
Buat
default.rbfile yang berisi resep sebelumnya dan simpan ke.recipes -
Jalankan
kitchen converge, lalu masuk ke instance untuk memverifikasi yang/srv/www/sharedberisiexample_data.json.
Membuat File dari Template
cookbook_fileSumber daya ini berguna untuk beberapa tujuan, tetapi hanya menginstal file apa pun yang Anda miliki di buku masak. template
Contoh ini memodifikasi createfile buku masak untuk menggunakan template sumber daya untuk menginstal versi yang sedikit dimodifikasi. example_data.json
Inilah yang akan terlihat seperti file yang diinstal.
{ "my_name" : "myname", "your_name" : "yourname", "a_number" : 42, "a_boolean" : true, "a_string" : "some string", "platform" : "ubuntu" }
Sumber daya template biasanya digunakan bersama dengan file atribut, jadi contoh menggunakan satu untuk menentukan nilai-nilai berikut.
default['createfile']['my_name'] = 'myname' default['createfile']['your_name'] = 'yourname' default['createfile']['install_file'] = true
Untuk mengatur buku masak
-
Hapus
filesdirektoricreatefilebuku masak dan isinya. -
Tambahkan
attributessubdirektori kecreatefiledan tambahkandefault.rbfileattributesyang berisi definisi atribut sebelumnya.
Template adalah .erb file yang pada dasarnya adalah salinan dari file akhir, dengan beberapa konten diwakili oleh placeholder. Saat template sumber daya membuat file, ia menyalin konten template ke file yang ditentukan, dan menimpa placeholder dengan nilai yang ditetapkan. Berikut template untukexample_data.json.
{ "my_name" : "<%= node['createfile']['my_name'] %>", "your_name" : "<%= node['createfile']['your_name'] %>", "a_number" : 42, "a_boolean" : <%= @a_boolean_var %>, "a_string" : "<%= @a_string_var %>", "platform" : "<%= node['platform'] %>" }
<%=...%>Nilainya adalah placeholder.
-
<%=node[...]%>merupakan nilai atribut node.Untuk contoh ini, nilai “your_name” adalah placeholder yang mewakili salah satu nilai atribut dari file atribut buku masak.
-
<%=@...%>mewakili nilai variabel yang didefinisikan dalam sumber daya template, seperti yang dibahas segera.
Untuk membuat file template
-
Tambahkan
templatessubdirektori kecreatefilebuku masak dandefaultsubdirektori ke.templatescatatan
templatesDirektori bekerja sepertifilesdirektori. Anda dapat menempatkan template khusus sistem dalam subdirektori sepertiubuntuyang dinamai untuk sistem.templateSumber daya menggunakan templat khusus sistem yang sesuai jika ada dan menggunakan templat.default -
Buat file bernama
example_data.json.erbdan masukkan ke dalamtemplates/defaultdirektori. Nama template bersifat arbitrer, tetapi Anda biasanya membuatnya dengan menambahkan.erbke nama file, termasuk ekstensi apa pun.
Resep berikut menggunakan sumber template daya untuk membuat/srv/www/shared/example_data.json.
directory "/srv/www/shared" do mode 0755 owner 'root' group 'root' recursive true action :create end template "/srv/www/shared/example_data.json" do source "example_data.json.erb" mode 0644 variables( :a_boolean_var => true, :a_string_var => "some string" ) only_if {node['createfile']['install_file']} end
Sumber template daya dibuat example_data.json dari template dan menginstalnya di/srv/www/shared.
-
Nama template,
/srv/www/shared/example_data.json, menentukan jalur dan nama file yang diinstal. -
sourceAtribut menentukan template yang digunakan untuk membuat file. -
modeAtribut menentukan mode file yang diinstal. -
Sumber daya mendefinisikan dua variabel,
a_boolean_vardana_string_var.Ketika sumber daya dibuat
example_data.json, ia menimpa placeholder variabel dalam template dengan nilai yang sesuai dari sumber daya. -
Atribut
only_ifguard mengarahkan sumber daya untuk membuat file hanya jika['createfile']['install_file']diatur ketrue.
Untuk menjalankan resep
-
Jalankan
kitchen destroyuntuk memulai dengan contoh baru. -
Ganti kode
recipes/default.rbdengan contoh sebelumnya. -
Jalankan
kitchen converge, lalu masuk ke instance untuk memverifikasi bahwa file tersebut masuk/srv/www/shareddan memiliki konten yang benar.
Setelah selesai, jalankan kitchen destroy untuk mematikan instance. Bagian selanjutnya menggunakan buku masak baru.