การสร้าง environment ใหม่ภายใน Ruk-Com Cloud PaaS สามารถทำได้โดยอัตโนมัติซึ่งมีหลายวิธีที่แตกต่างกัน เช่นการใช้ CLI โดยตรงผ่าน API request หรือประกาศพารามิเตอร์ที่เหมาะสมผ่าน JPS manifest ถึงแม้ว่าจะเป็นการดำเนินการที่ค่อนข้างง่ายแต่สามารถรวมพารามิเตอร์ต่างๆได้มากมายสำหรับการกำหนดโทโพโลยีที่แม่นยำ
ดังนั้นด้านล่างนี้เราจะอธิบายการตั้งค่าทั้งหมดและยกตัวอย่างการใช้งาน CLI โดยแบ่งออกเป็น 3 ส่วนหลักๆตาม array ของเมธอด ~/jelastic/environment/control/createenvironment โดยตั้งชื่อตามประเภทของ array ที่เหมาะสม – สองรายการทั่วไปและรายการพารามิเตอร์เฉพาะสำหรับการสร้างคอนเทนเนอร์ Docker:
การกำหนดค่าทั่วไปสำหรับ Environment
พารามิเตอร์ด้านล่างต้องระบุภายในอาร์เรย์ env (CLI command หรือไฟล์ JSON) และกำหนดค่า environment ทั่วไป เช่น ภาษาโปรแกรม ชื่อ ภูมิภาค และอื่นๆ:
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
region | Environment region | string | ชื่อ region ที่ต้องการ – ขึ้นอยู่กับการตั้งค่าของผู้ให้บริการ | no |
ishaenabled | High Availability | boolean | true, false หมายเหตุ: ใช้ได้กับ Tomcat 6/7, Jetty6, TomEE, GlassFish3 เท่านั้น | no |
engine | เวอร์ชันของภาษาโปรแกรม | string | java6, java7, java8, php5.3, php5.4, php5.5, etc. | yes (ยกเว้น Docker-based environments) |
displayName | Environment alias | string | my-env-alias | no |
sslstate | SSL | boolean | true, false | no |
shortdomain | ชื่อ environment ที่จะสร้าง | string | my-cli-env | yes |
ยกตัวอย่างเช่น: –env ‘{“region”: “default_hn_group”, “ishaenabled”: “false”, “engine”: “java7”, “displayName”: “my-env-alias”, “sslstate”: “true”, “shortdomain”: “my-cli-env”}’
การกำหนดค่าโหนด
ในส่วนของ nodes สามารถปรับการตั้งค่าให้ละเอียดมากยิ่งขึ้นเพื่อกำหนดพารามิเตอร์ของเซิร์ฟเวอร์ที่ประกอบด้วย ประเภท จำนวน จำนวน reserved/dynamic cloudlets ที่กำหนดไว้และอื่นๆ
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
extip | Public IP | boolean | true, false | no |
count | จำนวนของโหนด | integer | 1, 2, 3, … | no |
fixedCloudlets | จำนวนของ cloudlets ที่กำหนด | integer | 1, 2, 3, … | yes |
flexibleCloudlets | จำนวนของ cloudlets ที่เปลี่ยนแปลงได้ | integer | 1, 2, 3, … แต่ไม่สามารถน้อยกว่า fixedCloudlets | yes |
displayName | โหนดของชื่อนามแฝง | string | my-node-alias | no |
nodeType | ประเภทของสแต็ก | string | docker, tomcat6, tomcat7, tomee, mysql5, apache2, nginxphp, etc. (ดูรายการที่มีอยู่ทั้งหมดที่นี่) | yes |
docker | รายการของการตั้งค่า Docker Container | array | ตรวจสอบส่วนที่เกี่ยวข้องด้านล่างนี้ | สำหรับ docker nodeType โดยเฉพาะ |
ยกตัวอย่างเช่น nodes ‘[{“extip”: “true”, “count”: “2”, “fixedCloudlets”: “16”, “flexibleCloudlets”: “32”, “displayName”: “my-node-alias”, “nodeType”: “docker”, “docker”: {…}}]’
การกำหนดค่า Docker-Based Environment
ในส่วนของ docker มีจุดประสงค์เพื่อระบุพารามิเตอร์ docker คอนเทนเนอร์แบบพิเศษซึ่งจำเป็นสำหรับการ deploy
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
cmd | Run command configuration | string | run.sh | no |
image | ชื่อ Docker image พร้อมกับ tag version (ไม่บังคับ) | string | ubuntu, tutum/apache-php, jelastic/tomcat8:latest, etc. | yes |
nodeGroup | Environment layer ที่ image ควรวางไว้ | string | cp – application server bl – load balancer nosqldb – noSQL database sqldb – SQl database cache – cache node storage – storage node | no (หากไม่ระบุ image จะถูกเพิ่มไปยัง Extra layer) |
links | Linking parameters | array | อธิบายในรายการด้านล่าง | no |
env | รายการของ environment variables | object | อธิบายในรายการด้านล่าง | no |
registry | ข้อมูลประจำตัวสำหรับ private registry | array | อธิบายในรายการด้านล่าง | no |
volumes | รายการของ volumes | array | อธิบายในรายการด้านล่าง | no |
volumeMounts | รายการของไดเร็กทอรี mounted data | array | อธิบายในรายการด้านล่าง | no |
volumesFrom | รายการโหนดที่จะคัดลอกการตั้งค่า volume จาก | array | อธิบายในรายการด้านล่าง | no |
ยกตัวอย่างเช่น docker”: {“cmd”: “run.sh”, “image”: “jelastic/tomcat8:latest”, “nodeGroup”: “cp”, “links”: […], “env”: {…}, “registry”: {…}, “volumes”: […], “volumeMounts”: {…}, “volumesFrom”: [{…}]}
- การกำหนดค่า linking – สำหรับสร้างการเชื่อมต่อระหว่าง Docker container ในขอบเขตของ environment เดียว
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
– | กำหนดเลเยอร์/โหนด อินสแตนซ์ปัจจุบันที่ควรเชื่อมโยงและตั้งค่านามแฝงสำหรับบันเดิลนี้ | string | sqldb:DB, cp:alias | no |
ยกตัวอย่างเช่น “links”: [“cp:alias”, “sqldb:DB”]
- การกำหนดค่า environment variables – สำหรับระบุตัวแปร environment ใน Docker container
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
custom_variable_name | ตั้งค่า environment variables | string | var1 value1 (สตริงทั้งหมดหลังจากช่องว่างแรกจะเป็น value) รวมถึงการเว้นวรรคและเครื่องหมายคำพูด) var2=value1 \value2 \value3 (สำหรับการตั้งค่าหลายค่าในแต่ละครั้ง เช่น การสร้าง array ในที่นี้จะใช้เครื่องหมายคำพูดและ backslashes เป็นตัวคั่น) | no |
ยกตัวอย่างเช่น “env”: [{“var1”: “value1”}, {“var2”: “value1 \value2 \value3”}]
- การกำหนดค่า registry – สำหรับการเชื่อมต่อไปยัง private registry
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
password | รหัสผ่านไปยัง private registry | string | passw0rd | เฉพาะกรณีที่คุณใช้ private registry |
user | ชื่อผู้ใช้งาน private registry | string | admin | เฉพาะกรณีที่คุณใช้ private registry |
url | URLไปยัง private registry | string | http://example.com/private-registry | เฉพาะกรณีที่คุณใช้ private registry |
ยกตัวอย่างเช่น “env”: [{“var1”: “value1”}, {“var2”: “value1 \value2 \value3”}]“registry”: {“password”: “passw0rd”, “user”: “admin”, “url”: “http://example.com/private-registry”}
- local volumes – รายการ volumes ที่จะสร้างระบบไฟล์ภายในเครื่อง docker container
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
custom_path | Local volume path | string | /my_custom_volume | no |
ยกตัวอย่างเช่น“volumes”: [“/volume1”, “/volume2”, “/volume3”**]
- mount points – กลุ่มของพารามิเตอร์ที่กำหนดโฟลเดอร์พร้อมข้อมูลที่ต้องแนบจากเซิร์ฟเวอร์อื่น
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
local_path | เส้นทางของ mounted data ที่จะอ้างอิง | array | /mounted_data | yes |
sourcePath | เส้นทางไปยังไดเร็กทอรีของข้อมูลที่จำเป็นบน remote server | string | */required_data *if not defined, is stated equal to local_path (for remote storage server) | no |
sourceNodeId | Node ID สำหรับ storage container | integer | 459315 | yes ในกรณีที่ไม่ได้ระบุ sourceNodeGroup หรือ sourceHost |
sourceNodeGroup | Environment layer เฉพาะภายใน environment ปัจจุบัน | string | cp – application server bl – load balancer nosqldb – noSQL database sqldb – SQl database cache – cache node storage – storage node | yes ในกรณีที่ไม่ได้ระบุ sourceNodeId หรือ sourceHost |
sourceHost | Public IP หรือโดเมนของData Storage server ภายนอก | string | 195.67.231.39 | yes ในกรณีที่ไม่ได้ระบุ sourceNodeGroup หรือ sourceNodeId |
readOnly | กำหนดสิทธิ์ read only or read & write สำหรับโหนด client | boolean | true is false by default | no |
ยกตัวอย่างเช่น “volumeMaunts”: {“/data”: {“sourcePath”: “/exported”, “sourceNodeId”: “693215”, “readOnly”: “true”}}
- account volumes – รายการโหนดในบัญชีปัจจุบันสำหรับ volumes ที่นำเข้าจาก
ชื่อ | คำอธิบาย | ประเภท | ตัวอย่าง Value | ข้อบังคับ |
---|---|---|---|---|
sourceNodeId | ID ของ storage container | integer | 81725 | yes ในกรณีที่ไม่ได้ระบุ sourceNodeGroup |
sourceNodeGroup | Environment layer เฉพาะภายใน environment ปัจจุบัน | string | cp – application server bl – load balancer nosqldb – noSQL database sqldb – SQl database cache – cache node storage – storage node | yes ในกรณีที่ไม่ได้ระบุ sourceNodeId |
volumes | รายการ volumes ที่จะ export | string | */volume *If not specified, all volumes on a node will be exported | no |
readOnly | กำหนดสิทธิ์ read only or read & write สำหรับโหนด client | boolean | true(states in false by default) | no |
ยกตัวอย่างเช่น “volumesFrom”: [{“sourceNodeGroup”: “cp”, “volumes”: [“/master”, “/local”], “readOnly”: “true”}]