【CoreOS】cloud-config 해설~설치

【CoreOS】cloud-config 해설~설치

2022-10-04 last update

5 minutes reading CoreOS etcd fleet

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 기본 설정 (완료)