YAML 是專門用來(lái)寫配置文件的語(yǔ)言,非常簡(jiǎn)潔和強(qiáng)大,遠(yuǎn)比 JSON 格式方便闸婴。YAML 語(yǔ)言的設(shè)計(jì)目標(biāo),就是方便人類讀寫芍躏。它實(shí)質(zhì)上是一種通用的數(shù)據(jù)串行化格式邪乍。它的基本語(yǔ)法規(guī)則如下:
version: '3'
services:
django:
image: jtms:v1.0.1
build: .
restart: "always"
environment:
- REDIS_IP=${REDIS_IP}
- SENTRY_URL=${SENTRY_URL}
- APP_NAME=${APP_NAME}
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
working_dir: /home/workspace
volumes:
- /data/app/core/gateway/socket/jtms/socket:/home/workspace/socket
- ./media/temp:/home/workspace/media/temp
- ./logs:/home/workspace/logs
- ./logs/uwsgi.log:/home/workspace/logs/uwsgi.log
command: ["/bin/bash", "runserver.sh"]
大小寫敏感
- 使用縮進(jìn)表示層級(jí)關(guān)系
- 縮進(jìn)時(shí)不允許使用 TAB 鍵,只允許使用空格对竣。
- 縮進(jìn)的空格數(shù)目不重要庇楞,只要相同層級(jí)的元素左側(cè)對(duì)齊即可
表示注釋,從這個(gè)字符一直到行尾否纬,都會(huì)被解析器忽略吕晌。YAML 支持的數(shù)據(jù)結(jié)構(gòu)有三種:
- 對(duì)象: 鍵值對(duì)的集合,又稱為映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 數(shù)組: 一組按次序排列的值临燃,又稱為序列(sequence) / 列表(list)
- 純量(scalars): 單個(gè)的睛驳、不可再分的值
YAML 對(duì)象
對(duì)象的一組鍵值對(duì)烙心,使用冒號(hào)結(jié)構(gòu)表示
animal: pets
YAML 數(shù)組
一組連詞線開頭的行,構(gòu)成一個(gè)數(shù)組
- Cat
- Dog
- Goldfish
數(shù)據(jù)結(jié)構(gòu)的子成員是一個(gè)數(shù)組乏沸,則可以在該項(xiàng)下面縮進(jìn)一個(gè)空格
- Array
- Cat
- Dog
- Goldfish
YAML 復(fù)合結(jié)構(gòu)
對(duì)象和數(shù)組可以結(jié)合使用淫茵,形成復(fù)合結(jié)構(gòu)
languages:
- Ruby
- Perl
- Python
websites:
YAML: yaml.org
Ruby: ruby-lang.org
Python: python.org
Perl: use.perl.org
YAML 純量
純量是最基本的、不可再分的值屎蜓。以下數(shù)據(jù)類型都屬于 JavaScript 的純量
- 字符串
- 布爾值
- 整數(shù)
- 浮點(diǎn)數(shù)
- Null
- 時(shí)間
- 日期
修改 IP 和 DNS
課程演示會(huì)采用多虛擬機(jī)模擬分布式場(chǎng)景痘昌,為防止 IP 沖突,無(wú)法聯(lián)網(wǎng)等問(wèn)題炬转,需要預(yù)先設(shè)置好主機(jī)名、IP算灸、DNS 配置
修改主機(jī)名
修改 cloud.cfg 防止重啟后主機(jī)名還原
vi /etc/cloud/cloud.cfg
# 該配置默認(rèn)為 false扼劈,修改為 true 即可
preserve_hostname: true
修改主機(jī)名
# 修改主機(jī)名
hostnamectl set-hostname deployment
# 配置 hosts
cat >> /etc/hosts << EOF
192.168.141.130 deployment
EOF
修改 IP
編輯 vi /etc/netplan/50-cloud-init.yaml 配置文件,修改內(nèi)容如下
network:
ethernets:
ens33:
addresses: [192.168.141.130/24]
gateway4: 192.168.141.2
nameservers:
addresses: [192.168.141.2]
version: 2
使用 netplan apply 命令讓配置生效
修改 DNS
# 取消 DNS 行注釋菲驴,并增加 DNS 配置如:114.114.114.114荐吵,修改后重啟下計(jì)算機(jī)
vi /etc/systemd/resolved.conf