Parameters for CreateEnvironment API

การสร้าง 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ข้อบังคับ
regionEnvironment regionstringชื่อ region ที่ต้องการ – ขึ้นอยู่กับการตั้งค่าของผู้ให้บริการno
ishaenabledHigh Availabilitybooleantruefalse
หมายเหตุ: ใช้ได้กับ Tomcat 6/7, Jetty6, TomEE, GlassFish3 เท่านั้น
no
engineเวอร์ชันของภาษาโปรแกรมstringjava6java7java8php5.3php5.4php5.5, etc.yes (ยกเว้น Docker-based environments)
displayNameEnvironment aliasstringmy-env-aliasno
sslstateSSLbooleantruefalseno
shortdomainชื่อ environment ที่จะสร้างstringmy-cli-envyes

ยกตัวอย่างเช่น: –env ‘{“region”: “default_hn_group”, “ishaenabled”: “false”, “engine”: “java7”, “displayName”: “my-env-alias”, “sslstate”: “true”, “shortdomain”: “my-cli-env”}’

การกำหนดค่าโหนด

ในส่วนของ nodes สามารถปรับการตั้งค่าให้ละเอียดมากยิ่งขึ้นเพื่อกำหนดพารามิเตอร์ของเซิร์ฟเวอร์ที่ประกอบด้วย ประเภท จำนวน จำนวน reserved/dynamic cloudlets ที่กำหนดไว้และอื่นๆ

ชื่อคำอธิบายประเภทตัวอย่าง Valueข้อบังคับ
extipPublic IPbooleantrue, falseno
countจำนวนของโหนดinteger1, 2, 3, …no
fixedCloudletsจำนวนของ cloudlets ที่กำหนดinteger1, 2, 3, …yes
flexibleCloudletsจำนวนของ cloudlets ที่เปลี่ยนแปลงได้integer1, 2, 3, … แต่ไม่สามารถน้อยกว่า fixedCloudletsyes
displayNameโหนดของชื่อนามแฝงstringmy-node-aliasno
nodeTypeประเภทของสแต็กstringdocker, tomcat6, tomcat7, tomee, mysql5, apache2, nginxphp, etc. (ดูรายการที่มีอยู่ทั้งหมดที่นี่)yes
dockerรายการของการตั้งค่า Docker Containerarrayตรวจสอบส่วนที่เกี่ยวข้องด้านล่างนี้สำหรับ 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ข้อบังคับ
cmdRun command configurationstringrun.shno
imageชื่อ Docker image พร้อมกับ tag version (ไม่บังคับ)stringubuntututum/apache-phpjelastic/tomcat8:latest, etc.yes
nodeGroupEnvironment layer ที่ image ควรวางไว้stringcp – application server
bl – load balancer
nosqldb – noSQL database
sqldb – SQl database
cache – cache node
storage – storage node
no (หากไม่ระบุ image จะถูกเพิ่มไปยัง Extra layer)
linksLinking parametersarrayอธิบายในรายการด้านล่างno
envรายการของ environment variablesobjectอธิบายในรายการด้านล่างno
registryข้อมูลประจำตัวสำหรับ private registryarrayอธิบายในรายการด้านล่างno
volumesรายการของ volumesarrayอธิบายในรายการด้านล่างno
volumeMountsรายการของไดเร็กทอรี mounted dataarrayอธิบายในรายการด้านล่าง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ข้อบังคับ
กำหนดเลเยอร์/โหนด อินสแตนซ์ปัจจุบันที่ควรเชื่อมโยงและตั้งค่านามแฝงสำหรับบันเดิลนี้stringsqldb:DBcp:aliasno

ยกตัวอย่างเช่น “links”: [“cp:alias”, “sqldb:DB”]

  • การกำหนดค่า environment variables – สำหรับระบุตัวแปร environment ใน Docker container
ชื่อคำอธิบายประเภทตัวอย่าง Valueข้อบังคับ
custom_variable_nameตั้งค่า environment variablesstringvar1 value1 (สตริงทั้งหมดหลังจากช่องว่างแรกจะเป็น value) รวมถึงการเว้นวรรคและเครื่องหมายคำพูด) var2=value1 \value2 \value3 (สำหรับการตั้งค่าหลายค่าในแต่ละครั้ง เช่น การสร้าง array ในที่นี้จะใช้เครื่องหมายคำพูดและ backslashes เป็นตัวคั่น)no

ยกตัวอย่างเช่น “env”: [{“var1”: “value1”}, {“var2”: “value1 \value2 \value3”}]

  • การกำหนดค่า registry – สำหรับการเชื่อมต่อไปยัง private registry
ชื่อคำอธิบายประเภทตัวอย่าง Valueข้อบังคับ
passwordรหัสผ่านไปยัง private registrystringpassw0rdเฉพาะกรณีที่คุณใช้ private registry
userชื่อผู้ใช้งาน private registrystringadminเฉพาะกรณีที่คุณใช้ private registry
urlURLไปยัง private registrystringhttp://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_pathLocal volume pathstring/my_custom_volumeno

ยกตัวอย่างเช่น“volumes”: [“/volume1”, “/volume2”, “/volume3”**]

  • mount points – กลุ่มของพารามิเตอร์ที่กำหนดโฟลเดอร์พร้อมข้อมูลที่ต้องแนบจากเซิร์ฟเวอร์อื่น
ชื่อคำอธิบายประเภทตัวอย่าง Valueข้อบังคับ
local_pathเส้นทางของ mounted data ที่จะอ้างอิงarray/mounted_datayes
sourcePathเส้นทางไปยังไดเร็กทอรีของข้อมูลที่จำเป็นบน remote serverstring*/required_data
*if not defined, is stated equal to local_path (for remote storage server)
no
sourceNodeIdNode ID สำหรับ storage containerinteger459315yes ในกรณีที่ไม่ได้ระบุ sourceNodeGroup หรือ sourceHost 
sourceNodeGroupEnvironment layer เฉพาะภายใน environment ปัจจุบันstringcp – application server
bl – load balancer
nosqldb – noSQL database
sqldb – SQl database
cache – cache node
storage – storage node
yes ในกรณีที่ไม่ได้ระบุ sourceNodeId หรือ sourceHost 
sourceHostPublic IP หรือโดเมนของData Storage server ภายนอกstring195.67.231.39yes ในกรณีที่ไม่ได้ระบุ sourceNodeGroup หรือ sourceNodeId
readOnlyกำหนดสิทธิ์ read only or read & write สำหรับโหนด clientbooleantrue is false by defaultno

ยกตัวอย่างเช่น “volumeMaunts”: {“/data”: {“sourcePath”: “/exported”, “sourceNodeId”: “693215”, “readOnly”: “true”}}

  • account volumes – รายการโหนดในบัญชีปัจจุบันสำหรับ volumes ที่นำเข้าจาก
ชื่อคำอธิบายประเภทตัวอย่าง Valueข้อบังคับ
sourceNodeIdID ของ storage containerinteger81725yes ในกรณีที่ไม่ได้ระบุ sourceNodeGroup
sourceNodeGroupEnvironment layer เฉพาะภายใน environment ปัจจุบันstringcp – application server
bl – load balancer
nosqldb – noSQL database
sqldb – SQl database
cache – cache node
storage – storage node
yes ในกรณีที่ไม่ได้ระบุ sourceNodeId
volumesรายการ volumes ที่จะ exportstring*/volume
*If not specified, all volumes on a node will be exported
no
readOnlyกำหนดสิทธิ์ read only or read & write สำหรับโหนด clientbooleantrue(states in false by default)no

ยกตัวอย่างเช่น “volumesFrom”: [{“sourceNodeGroup”: “cp”, “volumes”: [“/master”, “/local”], “readOnly”: “true”}]