https://oracle-japan.github.io/ocitutorials/intermediates/using-dns/
https://docs.oracle.com/ja-jp/iaas/Content/DNS/Concepts/gettingstarted.htm
前提: VCN作成済、ドメイン取得済
-- 1. コンピュートインスタンス作成(OL9)
oci compute image list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data.{"operating-system":"operating-system","operating-system-version":"operating-system-version","display-name":"display-name"}' \
--output=table
oci compute image list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--all \
--query 'data[?"display-name"==`'Oracle-Linux-9.2-2023.12.08-0'`].id | [0]' \
--raw-output
oci compute shape list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--query 'sort_by(data, &"ocpus").{"shape":"shape","ocpus":"ocpus","memory-in-gbs":"memory-in-gbs"}' \
--output=table
cat <<-'EOF' > a.yaml
#cloud-config
timezone: Asia/Tokyo
locale: ja_JP.utf8
package_update: true
packages:
- httpd
runcmd:
- setenforce 0
- sed -i -e 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- systemctl stop firewalld
- systemctl disable firewalld
- systemctl start httpd
- systemctl enable httpd
- echo $(hostname) > /var/www/html/index.html
EOF
oci compute instance launch \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--subnet-id ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--assign-public-ip true \
--boot-volume-size-in-gbs 50 \
--display-name vm01 \
--fault-domain FAULT-DOMAIN-1 \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--shape VM.Standard.E2.1 \
--ssh-authorized-keys-file "$HOME/.ssh/id_rsa.pub" \
--user-data-file "./a.yaml" \
--preemptible-instance-config '{
"preemption-action": {
"preserve-boot-volume": false,
"type": "TERMINATE"
}
}'
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
-- 2. DNSゾーン追加
oci dns zone create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--name example.com \
--zone-type PRIMARY \
--scope GLOBAL
oci dns zone list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
-- 3. DNSレコード追加
oci dns record zone get \
--zone-name-or-id example.com
oci dns record domain get \
--domain www.example.com \
--zone-name-or-id example.com
oci dns record rrset update --generate-full-command-json-input
oci dns record rrset update \
--domain www.example.com \
--rtype "A" \
--zone-name-or-id example.com \
--items '[{"domain":"www.example.com","rdata":"192.0.2.1","rtype":"A","ttl":"30"}]' \
--force
-- 4. パブリックDNSゾーンの委任
レコード名:
www.example.com
値:
ns1.p999.dns.oraclecloud.net.
ns2.p999.dns.oraclecloud.net.
ns3.p999.dns.oraclecloud.net.
ns4.p999.dns.oraclecloud.net.
-- 5. 動作確認
curl http://www.example.com
-- 6. クリーンアップ
-- DNSレコード削除
oci dns record rrset delete \
--domain www.example.com \
--rtype "A" \
--zone-name-or-id example.com \
--force
oci dns record zone get \
--zone-name-or-id example.com
-- DNSゾーン削除
oci dns zone delete \
--zone-name-or-id example.com \
--force
oci dns zone list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
-- コンピュートインスタンス削除
oci compute instance terminate \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table