Ansible을 사용하여 Tulip 구성하기

Prev Next

Ansible은 엣지 디바이스를 일괄 관리하기 위한 오픈 소스 명령줄 기반 IT 도구입니다.

Ansible에 대한 자세한 내용은 여기에서 확인하세요.

이 가이드의 대상

  • 엣지 디바이스에 대한 완전한 Permission 권한을 가진 사용자
  • Ansible에 익숙한 사용자
  • 엣지 디바이스 설정에 익숙한 사용자

작동 원리

Ansible은 장치 구성을 복사하여 붙여넣을 수 있게 해주는 IT 관리 소프트웨어입니다. 이는 검증된 기준 구성인 ‘골든 디바이스’를 사용하여 대상 장치를 구성함으로써 이루어집니다.

예를 들어, 기존 참조 장치(골든 디바이스)의 인증 정보를 자동으로 적용하는 그룹에 장치를 할당함으로써 여러 대의 새로운 에지 디바이스(대상 장치)를 한 번에 구성할 수 있습니다. 또한 골든 디바이스를 지속적으로 개선하여 업데이트한 후, 해당 업데이트를 배포할 수 있습니다.

Edge device bulk configuration workflow

이 방법은 자동화되고 확장 가능한 IT 관리를 제공하며, 수동 구성 시 발생할 수 있는 오류를 줄여줍니다.

엣지 디바이스와 Ansible 통합

이 절차에서는 Tulip Edge 수집 기능을 기존 Ansible 워크플로우에 통합하는 방법을 설명합니다.

Tulip Edge 컬렉션 설치

  1. 터미널에서 다음 명령을 실행하십시오:ansible-galaxy collection install git+https://github.com/tulip/tulip-ansible-library.git#/collections/ansible_collections/tulip/edge
  2. 엣지 디바이스용 리포지토리를 설치하려면 다음 명령을 실행하십시오:ansible-galaxy collection install tulip.edge

인벤토리 구성

기존 인벤토리에 다음 코드를 추가하고 변수 값을 입력하세요.

  1. 다음 코드에서 디바이스 그룹 이름을 지정하고, 인스턴스 URL, 이메일 주소 및 이메일 비밀번호를 사용하여 인스턴스에 인증하십시오.

[your_device_group:vars]tulip_factory_url=https://your-factory.tulip.cotulip_admin_email=admin@yourcompany.comtulip_admin_password_sha256=your_sha256_hash

  1. 다음 코드에서 회사 이름을 입력하십시오.

tulip_client_name=YourCompanyNametulip_client_version=1.0.0tulip_client_description=Production Gateway

암호 해시 생성

비밀번호 해시는 비밀번호를 쉽게 되돌리거나 해독할 수 없는 고정 길이의 뒤섞인 문자열로 변환하는 보안 조치입니다. 이 단계를 통해 파일에 저장된 일반 텍스트 비밀번호와 관련된 보안 위험을 방지할 수 있습니다.

안전한 비밀번호 해시를 생성하려면 다음 명령을 입력하십시오.

echo -n "your_password" | sha256sum | cut -d' ' -f1

핵심 플레이북 통합

다음 코드를 사용하여 기존 워크플로에 필요한 플레이북을 추가하십시오:


* import\_playbook: tulip.edge.register when: register\_devices | default(false) ```

### 통합 테스트

다음 코드를 사용하여 워크플로우에 테스트 플레이북을 추가하세요:

```- name: Tulip 게이트웨이 인증 테스트 hosts: test\_devices tasks: - name: 테스트 장치 인증 import\_playbook: collections/ansible\_collections/tulip/edge/playbooks/gateway\_tulip\_auth.yml

  • name: 인증 성공 여부 확인 import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_device_info.yml- name: 연결 상태 확인 import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_check_internet.yml

통합 모범 사례

  1. 변수 관리

    • 공통 설정에는 group_vars를 사용하십시오
    • 장치별 재정의에는 host_vars를 사용하십시오
    • 민감한 데이터는 Ansible Vault에 저장하십시오
  2. 오류 처리


* name: 인증 실패 처리 debug: msg: "인증에 실패했습니다. 자격 증명을 확인하십시오" when: auth\_result.failed | default(false) ```
* **백업 관리**
* 다음과 같이 일관된 백업 명명 규칙을 사용하세요: `device-component-timestamp`
* 재사용을 위해 백업 이름을 변수에 저장
* 백업 보존 정책 구현
* **이멱포텐트성 유지**: 모든 플레이북은 이멱포텐트하므로 여러 번 실행해도 안전합니다.

오류를 찾거나, 논리 실행을 이해하거나, 실행 전에 유효성을 확인하려면 실제 소프트웨어를 실행하지 않는 시뮬레이션 실행을 수행할 수 있습니다. 시뮬레이션 실행을 하려면 아래 예시에 표시된 --check 모드를 사용하십시오.

`ansible-playbook gateway_tulip_auth.yml --limit test_device --check`

## 골든 디바이스 프로비저닝

골든 디바이스 프로비저닝 워크플로를 통해 다음을 수행할 수 있습니다. 1. **골든 디바이스 선택**: 올바르게 구성된 참조 디바이스를 선택합니다. 2. **골든 구성 백업**: 모든 구성 요소 구성을 캡처합니다. 3. **새 디바이스에 배포**: 골든 디바이스 설정을 새 디바이스나 교체용 디바이스에 적용합니다. 4. **인증 및 검증**: 디바이스를 등록하고 배포를 검증합니다.

### 인벤토리 구성

골든 디바이스와 대상 디바이스를 사용하여 인벤토리를 구성하십시오.

터미널에 다음 내용을 입력하세요:

```[tulip\_edge\_devices]golden-device ansible\_host=172.16.15.130EIO-01-BCDEFA ansible\_host=172.16.15.140EIO-01-CDEFAB ansible\_host=172.16.15.141EIO-01-DEFABCansible\_host=172.16.15.150

[golden\_devices]EIO-01-ABCDEF

[newly\_provisioned]EIO-01-BCDEFAEIO-01-CDEFABEIO-01-DEFABC

[tulip\_edge\_devices:vars]

# 공장 인증

tulip\_factory\_url=https://your-factory.tulip.cotulip\_admin\_email=admin@yourcompany.com tulip\_admin\_password\_sha256=your\_sha256\_hash

# 클라이언트 정보

tulip\_client\_name=귀사의 이름tulip\_client\_version=1.0.0tulip\_client\_description=프로덕션 게이트웨이```

### 비밀번호 해시 생성

비밀번호 해시는 비밀번호를 쉽게 역변환하거나 해독할 수 없는 고정 길이의 뒤섞인 문자열로 변환하는 보안 조치입니다. 이 단계를 통해 파일에 저장된 일반 텍스트 비밀번호와 관련된 보안 위험을 방지할 수 있습니다.

안전한 비밀번호 저장을 위해 [SHA256 해시를](https://www.movable-type.co.uk/scripts/sha256.html) 생성하려면 다음 명령을 입력하십시오:

`echo -n "your_password" | sha256sum | cut -d' ' -f1`

### 기본 골든 디바이스 프로비저닝

각 단계마다 다음 코드를 입력하십시오.

1. 골든 디바이스에 로그인합니다.`ansible-playbook tulip.edge.login --limit golden-device`
2. 골든 디바이스의 구성을 백업합니다`. ansible-playbook tulip.edge.backup_mqtt_broker --limit golden-device ansible-playbook tulip.edge.backup_mqtt_bridge --limit golden-deviceansible-playbook tulip.edge.backup_drivers --limit golden-deviceansible-playbook tulip.edge.backup_root_certs --limit golden-device`
3. 대상`장치`에 로그인ansible`-playbook tulip.edge.login --limit newly_provisioned`
4. 대상 장치에 골든 구성을 배포합니다```ansible-playbook tulip.edge.restore\_mqtt\_broker \ --limit newly\_provisioned \ -e mqtt\_broker\_backup\_name="golden-device-mqtt-broker-20241219-143022"

ansible-playbook tulip.edge.restore\_mqtt\_bridge \ --limit newly\_provisioned \ -e mqtt\_bridge\_backup\_name="golden-device-mqtt-bridge-20241219-143025"

ansible-playbook tulip.edge.restore\_drivers \ --limit newly\_provisioned \ -e drivers\_backup\_name="golden-device-drivers-20241219-143028"

ansible-playbook tulip.edge.restore\_root\_certs \ --limit newly\_provisioned \ -e root\_certs\_backup\_name="golden-device-root-certs-20241219-143030"```

1. `factory를` 통해 인증ansible`-playbook tulip.edge.gateway_tulip_auth --limit newly_provisioned`
2. 외부 시스템에 등록 (선택 사항)`ansible-playbook tulip.edge.register --limit newly_provisioned`
3. `배포` 확인ansible-playbook`tulip.edge.gateway_device_info --limit newly_provisionedansible-playbook tulip.edge.gateway_check_internet --limit newly_provisioned`

### 골든 디바이스 모범 사례

다음 골든 디바이스 접근 방식을 통해 구성 표준에 대한 완전한 추적성과 제어력을 유지하면서 Tulip Edge 디바이스 플릿을 일관되고 안정적으로 프로비저닝할 수 있습니다.

1. **골든 디바이스 유지 관리**: 골든 디바이스를 최신 상태로 유지하고 철저히 관리하십시오.
2. **정기적인 백업 생성**: 골든 디바이스 구성에 대한 정기적인 백업을 생성하십시오
3. **버전 관리 보장**: 골든 디바이스 백업을 의미 있는 이름으로 버전 관리 시스템에 저장하십시오
4. **테스트 파이프라인 구축**: 프로덕션 환경에 적용하기 전에 항상 스테이징 환경에서 골든 디바이스 구성을 테스트하십시오
5. **골든 디바이스 구성 문서화**: 골든 디바이스 구성 표준 및 절차를 문서화하십시오
6. **접근 제어 보장**: 골든 디바이스에 대한 접근을 제한하고 별도의 인증 정보를 사용하십시오
7. **상태 및 프로세스 모니터링**: 골든 디바이스의 상태와 백업 생성 프로세스를 모니터링하십시오

### 문제 해결

다음은 일반적인 골든 디바이스 문제를 해결하는 방법입니다:

#### 골든 디바이스에 연결할 수 없음

먼저, 골든 디바이스와의 연결 상태를 테스트하십시오. 다음 명령을 실행하십시오:`ansible golden-device -m ping`

골든 디바이스 상태를 확인하십시오. 다음 명령을 실행하십시오:`ansible-playbook tulip.edge.gateway_device_info --limit golden-device`

#### 백업 배포가 실패합니다

먼저 백업 파일이 존재하는지 확인해야 합니다. 다음 명령을 실행하세요:`ls backups/golden-device-mqtt-broker-*.json`

`확장자를` 포함한 백업 명명 규칙을 사용하십시오.`ansible-playbook tulip.edge.restore_mqtt_broker \ --limit target-device \ -e mqtt_broker_backup_name="golden-device-mqtt-broker-20241219-143022" \ -vv`

#### 인증 문제

골든 디바이스를 다시 인증하려면 다음을 실행하십시오:`ansible-playbook tulip.edge.login --limit golden-device`

인벤토리에서 골든 디바이스의 자격 증명을 확인하려면 다음 명령을 실행하십시오:`ansible-inventory --host golden-device`

{{snippet.원하는 정보를 찾으셨나요?}}