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
Bagian AWS OpsWorks Stacks layanan 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 Support Tim di AWS Re: posting
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_cookbooks
direktori, buat direktori bernamacreatefile
dan navigasikan ke sana. -
Tambahkan
metadata.rb
filecreatefile
dengan konten berikut.name "createfile" version "0.1.0"
-
Inisialisasi dan konfigurasikan Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket, dan hapus CentOS dari
platforms
daftar. -
Tambahkan
recipes
subdirektori kecreatefile
.
File yang akan diinstal berisi JSON data berikut.
{ "my_name" : "myname", "your_name" : "yourname", "a_number" : 42, "a_boolean" : true }
Untuk mengatur file data
-
Tambahkan
files
subdirektori kecreatefile
dandefault
subdirektori ke.files
Setiap file yang Anda instal dengancookbook_file
harus dalam subdirektorifiles
, sepertifiles/default
dalam contoh ini.catatan
Jika Anda ingin menentukan file yang berbeda untuk sistem yang berbeda, Anda dapat menempatkan setiap file khusus sistem dalam subfolder bernama untuk sistem, seperti.
files/ubuntu
cookbook_file
Sumber daya menyalin file spesifik sistem yang sesuai, jika ada, dan sebaliknya menggunakan file tersebut.default
Untuk informasi selengkapnya, lihat cookbook_file. -
Buat file bernama
example_data.json
dengan 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 destroy
untuk memulai dengan contoh baru. -
Buat
default.rb
file yang berisi resep sebelumnya dan simpan ke.recipes
-
Jalankan
kitchen converge
, lalu masuk ke instance untuk memverifikasi yang/srv/www/shared
berisiexample_data.json
.
Membuat File dari Template
cookbook_file
Sumber 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
files
direktoricreatefile
buku masak dan isinya. -
Tambahkan
attributes
subdirektori kecreatefile
dan tambahkandefault.rb
fileattributes
yang 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
templates
subdirektori kecreatefile
buku masak dandefault
subdirektori ke.templates
catatan
templates
Direktori bekerja sepertifiles
direktori. Anda dapat menempatkan template khusus sistem dalam subdirektori sepertiubuntu
yang dinamai untuk sistem.template
Sumber daya menggunakan templat khusus sistem yang sesuai jika ada dan menggunakan templat.default
-
Buat file bernama
example_data.json.erb
dan masukkan ke dalamtemplates/default
direktori. Nama template bersifat arbitrer, tetapi Anda biasanya membuatnya dengan menambahkan.erb
ke 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. -
source
Atribut menentukan template yang digunakan untuk membuat file. -
mode
Atribut menentukan mode file yang diinstal. -
Sumber daya mendefinisikan dua variabel,
a_boolean_var
dana_string_var
.Ketika sumber daya dibuat
example_data.json
, ia menimpa placeholder variabel dalam template dengan nilai yang sesuai dari sumber daya. -
Atribut
only_if
guard mengarahkan sumber daya untuk membuat file hanya jika['createfile']['install_file']
diatur ketrue
.
Untuk menjalankan resep
-
Jalankan
kitchen destroy
untuk memulai dengan contoh baru. -
Ganti kode
recipes/default.rb
dengan contoh sebelumnya. -
Jalankan
kitchen converge
, lalu masuk ke instance untuk memverifikasi bahwa file tersebut masuk/srv/www/shared
dan memiliki konten yang benar.
Setelah selesai, jalankan kitchen destroy
untuk mematikan instance. Bagian selanjutnya menggunakan buku masak baru.