오픈 스택을 운영하여 호스팅을 할경우 같은 이미지를 이용하여 인스턴스를 올리기에
부팅시 고객 패스워드를 다르게 셋팅해야 합니다.
오픈 스택에서는 user-data라고 하여 cloud init을 이용하여 이미지에 패스워드를 셋팅 합니다.
cloud init을 이용하기 위해서는 리눅스 이미지에서는 yum, apt-get 으로 설치가 가능하며 윈도우는
배포 사이트에가서 설치 파일을 받아야 합니다.
- 리눅스 centos 운영시 설치 방법
[root@host-192-168-1-3 ~]# rpm -Uvh epel-release-6-8.noarch.rpm
경고: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
준비 중... ########################################### [100%]
1:epel-release ########################################### [100%]
[root@host-192-168-1-3 ~]# yum install cloud-init
Loaded plugins: fastestmirror
Setting up Install Process
base | 3.7 kB 00:00
base/primary_db | 4.6 MB 00:01
epel/metalink | 4.3 kB 00:00
epel | 4.3 kB 00:00
epel/primary_db | 5.7 MB 00:00
extras | 3.4 kB 00:00
extras/primary_db | 33 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 2.7 MB 00:00
Resolving Dependencies
--> Running transaction check
---> Package cloud-init.x86_64 0:0.7.5-10.el6.centos.2 will be installed
...
...
...
Installed:
cloud-init.x86_64 0:0.7.5-10.el6.centos.2
# ubuntu에서는 apt-get install 명령어로 설치 가능하다.
이미지에 cloud-init을 설치 했다면 패스워드 변경하기 위한 스크립트를 만들어야 합니다.
- 리눅스 패스워드 변경 스크립트
#cloud-config chpasswd: list: | root:password # root계정에 패스워드를 password로 설정함 expire: False
.
- 윈도우 패스워드 변경 스크립트
#ps1 script: | $jyh=hostname [ADSI]$Admin="WinNT://$jyh/Administrator" $Admin.PasswordAge $Admin.PasswordAge.Value/86400 $Admin.SetPassword("password") # 패스워드를 password로 설정함
스크립트 작성이 끝나면 부팅 옵션 –user-data를 사용하여 스크립트 실행합니다.
root@control-50:~# nova boot --image backup2 --flavor smile3 --nic net-id=d4ddefbc-0069-4885-b48c-d59b05c99128 --security-group default --user-data /root/test.sh jyh
+--------------------------------------+------------------------------------------------+
| Property | Value |
+--------------------------------------+------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | - |
| OS-EXT-SRV-ATTR:hypervisor_hostname | - |
| OS-EXT-SRV-ATTR:instance_name | instance-00000022 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | fnvnBDx9Ht3Z |
| config_drive | |
| created | 2015-12-16T06:57:09Z |
| flavor | smile3 (8) |
| hostId | |
| id | 9d84e847-c640-4823-8ffe-2461a426b18c |
| image | backup2 (2112033b-c07d-44a5-9def-a98a576f1016) |
| key_name | - |
| metadata | {} |
| name | jyh |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | a112fa124c5845899a5cd5c3d4866f1c |
| updated | 2015-12-16T06:57:09Z |
| user_id | 9d29c6ae755a47a3a8f12f084f833882 |
+--------------------------------------+------------------------------------------------+
# 인스턴스가 부팅되고 위에 설정한 스크립트 패스워드로 접속이 확인 됩니다.