
【CoreOS】cloud-config 해설~설치
CoreOS cloud-config 설명~설치
이번은 cloud-config의 각 섹션의 해설~설치·재설정까지를 해 나가고 싶습니다.
cloud-config.yml이란 ...
CoreOS 설치 및 설정 파일을 변경할 때 필요한 기본 설정을 기술한 설정 파일입니다.
주로 취급하는 것이 서버의 환경 변수, NIC/IP의 설정, etcd 클러스터 설정, Unit(systemd) 기동 설정등이 가능하게 되어 있습니다.
CoreOS 본체 설정 파일은/var/lib/coreos-install/user_data에 yml 데이터로 저장되며 CoreOS 시작시 "/usr/bin/coreos-cloudinit"이 호출됩니다.
OEM판 제공은 htps : // 이것 오 s. 이 m / 오 s / 도 cs / ㅁ st / 의 s ぉ r ぢ st 리부토 rs. HTML 에 기재되어 있는 OS 인스톨 이미지를 각종 클라우드, VM용으로 커스터마이즈 된 설정이 됩니다.
따라서 user_data의 보유 위치가/usr/bin/coreos-cloudinit에 나열된 oem 버전인지 여부를 구분하여로드 파일을 지정합니다.
그럼 각 섹션으로
cloud-config
처음 1행은 반드시 #cloud-config 라고 명시적으로 기재해 주세요.
설치 시 구문 분석 오류가 표시됩니다.
top#cloud-config
write_files 및 hostname
환경 변수의 설정이나 인스톨시에 systemd의 config 설정, systemd의 파일을 생성하는 것이 가능한 섹션이 되고 있습니다.
write files와 같이, 실체가 있는 파일을 기입합니다.
예
hostname: coreos-dev #/etc/hostnameに書き込まれる値です
write_files:
- path: /etc/environment #環境変数への書き込み
permissions: 0644 #パーミッションの設定
content: | #パイプを入れることで改行を保持
COREOS_PUBLIC_IPV4=192.168.0.xx #環境変数で呼び出したいサービスIPの指定
COREOS_PRIVATE_IPV4=192.168.0.xx #バックヤードIPの指定
- path: /etc/skel/.bash_profile #user作成時、スケルトンの設定
permissions: 0644
content: |
[[ -f ~/.bashrc ]] && . ~/.bashrc
alias ll='ls -la --color=auto'
위와 같이 자신이 설정하고 싶은 항목이 가능합니다.
.vimrc나 ~/.git/config 등 사용자별로 쓰기 가능합니다.
coreos:
coreos: 섹션은 OS의 자동 업데이트, Units(systemd) 설정을 하는 중요한 요소입니다.
예coreos:
update:
reboot-strategy: 'off' #OSのアップデート時に自動起動するか
units: #各種unitのサービス起動方法 systemctl由来の設定となります
- name: etcd2.service
command: start
- name: fleet.service
command: start
- name: docker.service
command: start
- name: timezone.service
command: start
- name: 10-static.network
runtime: false
content: |
[Match]
Name=enp0s3 #NICの名称を指定
[Network]
Address=192.168.0.xx/24 #IPアドレスの指定及びサブネットマスク
Gateway=192.168.0.1 #Gatewayの指定
DNS=8.8.8.8 #DNS primaryの指定
DNS=8.8.4.4 #DNS secondaryの指定
ssh_authorized_keys:
- ssh-rsa # coreユーザーに持たせる公開鍵の指定
*NIC의 지정은 Macadress에서도 Match 대상으로 할 수 있습니다
users:
사용자- name: coreuser
passwd: $1$VIyj3wZe$HVVOEAc/H6a6YZGKCBWSD/ # パスワード認証。openssl passwdコマンドを叩いて実行した結果を貼り付け
groups: #所属するgroupの指定
- sudo
- docker
ssh-authorized-keys:
- ssh-rsa #coreuserに持たせる公開鍵
간단하지만 cloud-config.yml 작성은 이상입니다.
각 섹션에서 만든 것은 다음과 같은 형태입니다.
cloud-config.yml#cloud-config
hostname: coreos-dev
write_files:
- path: /etc/environment
permissions: 0644
content: |
COREOS_PUBLIC_IPV4=192.168.0.xx
COREOS_PRIVATE_IPV4=192.168.0.xx
- path: /etc/skel/.bash_profile
permissions: 0644
content: |
[[ -f ~/.bashrc ]] && . ~/.bashrc
alias ll='ls -la --color=auto'
coreos:
update:
reboot-strategy: 'off'
units:
- name: etcd2.service
command: start
- name: fleet.service
command: start
- name: docker.service
command: start
- name: timezone.service
command: start
- name: 10-static.network
runtime: false
content: |
[Match]
Name=enp0s3 #NICの名称を指定
[Network]
Address=192.168.0.xx/24 #IPアドレスの指定
Gateway=192.168.0.1 #Gatewayの指定
DNS=8.8.8.8 #DNS primaryの指定
DNS=8.8.4.4 #DNS secondaryの指定
ssh_authorized_keys:
- ssh-rsa # coreユーザーに持たせる公開鍵の指定
- name: coreuser
passwd: $1$VIyj3wZe$HVVOEAc/H6a6YZGKCBWSD/ # パスワード認証。openssl passwdコマンドを叩いて実行した結果を貼り付け
groups: #所属するgroupの指定
- sudo
- docker
ssh-authorized-keys:
- ssh-rsa #coreuserに持たせる公開鍵
실제 설치 및 편집 명령
# cloud-configのシンタックスチェック
sudo coreos-cloudinit -validate=true -from-file=./cloud-config.yml
# 初回インストールの場合 デバイスはご自身の環境に合わせてください
sudo coreos-install -d /dev/sda -C stable -c ./cloud-config.yml
sudo reboot
# cloud-configの再読み込み おまじないでuser_dataにコピー
sudo coreos-cloudinit -from-file=./cloud-config.yml
sudo cp cloud-config.yml /var/lib/coreos-install/user_data
sudo reboot
설정 파일의 해설~설치는 이상입니다.
다음 번은 이번 끝 접힌, etcd2의 세세한 설정 기술에 대해서 밟아 가고 싶습니다.
참고:
Using Cloud-Config
Notes for Distributors
마지막 기사 소개:
Mac + Virtualbox + CoreOS + etcd2 + fleet 기본 설정 (1)
Mac + Virtualbox + CoreOS + etcd2 + fleet 기본 설정 (2)
Mac + Virtualbox + CoreOS + etcd2 + fleet 기본 설정 (완료)
#cloud-config
hostname: coreos-dev #/etc/hostnameに書き込まれる値です
write_files:
- path: /etc/environment #環境変数への書き込み
permissions: 0644 #パーミッションの設定
content: | #パイプを入れることで改行を保持
COREOS_PUBLIC_IPV4=192.168.0.xx #環境変数で呼び出したいサービスIPの指定
COREOS_PRIVATE_IPV4=192.168.0.xx #バックヤードIPの指定
- path: /etc/skel/.bash_profile #user作成時、スケルトンの設定
permissions: 0644
content: |
[[ -f ~/.bashrc ]] && . ~/.bashrc
alias ll='ls -la --color=auto'
coreos:
update:
reboot-strategy: 'off' #OSのアップデート時に自動起動するか
units: #各種unitのサービス起動方法 systemctl由来の設定となります
- name: etcd2.service
command: start
- name: fleet.service
command: start
- name: docker.service
command: start
- name: timezone.service
command: start
- name: 10-static.network
runtime: false
content: |
[Match]
Name=enp0s3 #NICの名称を指定
[Network]
Address=192.168.0.xx/24 #IPアドレスの指定及びサブネットマスク
Gateway=192.168.0.1 #Gatewayの指定
DNS=8.8.8.8 #DNS primaryの指定
DNS=8.8.4.4 #DNS secondaryの指定
ssh_authorized_keys:
- ssh-rsa # coreユーザーに持たせる公開鍵の指定
- name: coreuser
passwd: $1$VIyj3wZe$HVVOEAc/H6a6YZGKCBWSD/ # パスワード認証。openssl passwdコマンドを叩いて実行した結果を貼り付け
groups: #所属するgroupの指定
- sudo
- docker
ssh-authorized-keys:
- ssh-rsa #coreuserに持たせる公開鍵
#cloud-config
hostname: coreos-dev
write_files:
- path: /etc/environment
permissions: 0644
content: |
COREOS_PUBLIC_IPV4=192.168.0.xx
COREOS_PRIVATE_IPV4=192.168.0.xx
- path: /etc/skel/.bash_profile
permissions: 0644
content: |
[[ -f ~/.bashrc ]] && . ~/.bashrc
alias ll='ls -la --color=auto'
coreos:
update:
reboot-strategy: 'off'
units:
- name: etcd2.service
command: start
- name: fleet.service
command: start
- name: docker.service
command: start
- name: timezone.service
command: start
- name: 10-static.network
runtime: false
content: |
[Match]
Name=enp0s3 #NICの名称を指定
[Network]
Address=192.168.0.xx/24 #IPアドレスの指定
Gateway=192.168.0.1 #Gatewayの指定
DNS=8.8.8.8 #DNS primaryの指定
DNS=8.8.4.4 #DNS secondaryの指定
ssh_authorized_keys:
- ssh-rsa # coreユーザーに持たせる公開鍵の指定
- name: coreuser
passwd: $1$VIyj3wZe$HVVOEAc/H6a6YZGKCBWSD/ # パスワード認証。openssl passwdコマンドを叩いて実行した結果を貼り付け
groups: #所属するgroupの指定
- sudo
- docker
ssh-authorized-keys:
- ssh-rsa #coreuserに持たせる公開鍵
# cloud-configのシンタックスチェック
sudo coreos-cloudinit -validate=true -from-file=./cloud-config.yml
# 初回インストールの場合 デバイスはご自身の環境に合わせてください
sudo coreos-install -d /dev/sda -C stable -c ./cloud-config.yml
sudo reboot
# cloud-configの再読み込み おまじないでuser_dataにコピー
sudo coreos-cloudinit -from-file=./cloud-config.yml
sudo cp cloud-config.yml /var/lib/coreos-install/user_data
sudo reboot