사용자 정의 설치 스크립트의 예가 있습니까?

사용자 정의 설치 스크립트의 예가 있습니까?

설치 후 실행할 사용자 정의 스크립트를 제공하는 방법에 대한 정보를 찾을 수 없는 것 같습니다. 커뮤니티에서 제공할 수 있는 예가 있나요?

답변1

사용 중인 설치 프로그램에 따라 MAAS는 설치를 사용자 정의하는 다양한 메커니즘을 제공합니다. 이 답변은 귀하가 다음을 사용하고 있다고 가정합니다.커튼 설치 프로그램(빠른 경로 설치 프로그램이라고도 함)은MAAS 1.7.

MAAS는클라우드 초기화설치 프로세스의 일부로. cloud-init 동작을 사용자 정의하는 방법에는 여러 가지가 있습니다. 가장 쉬운 방법은 단순히사용자 데이터 스크립트, 운영 체제 설치가 완료된 후 처음 부팅하는 동안 cloud-init가 실행됩니다.

MAAS에서는 user_data 인수를 제공하여 이를 수행할 수 있습니다.node start CLI 명령. 해당 명령의 형식은 다음과 같습니다.

maas <user> node start <node uuid> user_data=<script> distro_series=<name>

실제로 는 <script>base64로 인코딩된 문자열입니다. 구체적인 예를 들어, addkey.sh설치 콘솔에 일부 출력을 인쇄하는 스크립트를 실행한다고 가정하면 다음과 같습니다 .Launchpad에서 SSH 키를 가져옵니다.사용자에 대해 ubuntu결과를 로그 파일에 기록합니다.

#!/bin/sh
(
echo ======== Hi World ======================
echo ============== $(date) =================
ssh-import-id user
) | tee /my.log

다음 명령을 실행할 수 있습니다.

$ script=$(base64 addkey.sh)
$ maas myuser node start node-79b67e82-d25c-11e4-a333-00163eca91de \
  user_data=$script distro_series=trusty

성공하면 (잠시 후) 다음 형식으로 출력이 반환됩니다.

Success.
Machine-readable output follows:
{
    "status": 6, 
    "macaddress_set": [
        {
...

이제 배포 후 해당 스크립트가 실행됩니다.하나의 특정 노드. 명령이 실행되도록 설정하고 싶다면모든 노드late_commandsMAAS를 통해 설치되는 경우 스탠자 의 일부로 실행할 명령을 추가할 수 있습니다./etc/maas/preseeds/curtin_userdata파일. 이 메커니즘을 사용하여 네트워크 인터페이스에 두 개의 VLAN을 설정하는 더 복잡한 예는 다음을 참조하세요.http://astokes.org/customizing-fastpath-curtin-installations/.

Curtin은 현재 대부분 문서화되지 않았습니다. 그러나개요 파일그 작업의 일부 세부 사항을 설명합니다.

comissioning script이 메커니즘을 , 실행 중에 실행하는 것과 혼동하지 마십시오.시운전 단계, MAAS 노드 수명주기에서 설치 이전에 발생합니다. 시운전은 일반적으로 설치에 직접적인 영향을 주지 않는 관리 작업에 사용됩니다. 예는 다음과 같습니다:

  • 펌웨어 업데이트
  • 주요 하드웨어 구성요소의 온전성 테스트
  • 번인

답변2

여기에 있는 명령은 1.0 API용이라는 점에 유의해야 합니다. 2.0 이상에서 명령은 다음과 같습니다.

maas <profile> machine deploy <system_id> user_data=<base64-encoded-userdata>

관련 정보