openStack 왕자 귀환 의 사소한 matters

8041 단어 openstack
< 1, openStack img 제작 >
 팁: 대부분의 클 라 우 드 플랫폼 img 제작 준비 작업.
<1,> http://www.pubyun.com/blog/openstack/%E4%BB%80%E4%B9%88%E6%98%AFopenstack%E7%9A%84-metadata/
www.weiyan.me/2012/10/494
http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-images/
Liux 시스템 (현재 cloud platform and Liux OS compatibility) 의 기계 에 따라 미 러 를 만 드 는 기계 로 사용 하 는 것 이 좋 습 니 다.
1. 바 텀 지원 패키지 설치
yum groupinstall Virtualization libvirt virt-install qemu-kvm;
2, 어떤 종류의 iso 파일 준비
3, libvirtd 시작
< 2, > 미 러 제작 시작
qemu-img create -f qcow2 ruiyCentOS-openStack.qcow2 30G
chown qemu:qemu  *.qcow2 -R
virt-install -n RuiyCnetOSimg -r 4096 --cpu host -c /images/Centos-*iso --disk path=*.qcow2,device=disk,bus=virtio,size=30,format=qcow2 --vnc --vncport=5978 --vnclisten=0.0.0.0 -v
openStack 의 미 러 를 위해 서 저희 가 방금 설치 한 시스템 을 다 듬 어 보 겠 습 니 다.
virsh start/destroy/undefine VMInames;
1, delete / etc / udev / rules. d / 70 - persistent - net. rules (생 성 된 네트워크 장치 규칙 을 삭제 합 니 다!)
2, ifcfg - eth 0 의 HWADDR 줄 삭제
/ etc / sysconfig / network - script / ifcfg - eth 0 내용 은 다음 과 같 습 니 다.
DEVICE="eth0"
BOOTPROTO="dhcp"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
3. firewall 과 selinux / config 를 닫 습 니 다.
sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config
service iptables stop && chkconfig iptables off;
4. 설정 시스템 은 openstack 이 지정 한 hostname 과 ssh - key 를 자동 으로 가 져 올 수 있 습 니 다. vim 으로 / etc / rc. local 파일 을 편집 한 다음 다음 다음 내용 을 입력 하여 "touch / var / lock / subsys / local" 전에 넣 습 니 다.
 
if [ ! -d /root/.ssh ]; then mkdir -p /root/.ssh chmod 700 /root/.ssh fi # Fetch public key using HTTP ATTEMPTS=30 FAILED=0 while [ ! -f /root/.ssh/authorized_keys ]; do curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/metadata-key 2>/dev/null if [ $? -eq 0 ]; then cat /tmp/metadata-key >> /root/.ssh/authorized_keys chmod 0600 /root/.ssh/authorized_keys restorecon /root/.ssh/authorized_keys rm -f /tmp/metadata-key echo “Successfully retrieved public key from instance metadata” echo “*****************” echo “AUTHORIZED KEYS” echo “*****************” cat /root/.ssh/authorized_keys echo “*****************” curl -f http://169.254.169.254/latest/meta-data/hostname > /tmp/metadata-hostname 2>/dev/null if [ $? -eq 0 ]; then TEMP_HOST=`cat /tmp/metadata-hostname` sed -i “s/^HOSTNAME=.*$/HOSTNAME=$TEMP_HOST/g” /etc/sysconfig/network /bin/hostname $TEMP_HOST echo “Successfully retrieved hostname from instance metadata” echo “*****************” echo “HOSTNAME CONFIG” echo “*****************” cat /etc/sysconfig/network echo “*****************” else echo “Failed to retrieve hostname from instance metadata. This is a soft error so we’ll continue” fi rm -f /tmp/metadata-hostname else FAILED=$(($FAILED + 1)) if [ $FAILED -ge $ATTEMPTS ]; then echo “Failed to retrieve public key from instance metadata after $FAILED attempts, quitting” break fi echo “Could not retrieve public key from instance metadata (attempt #$FAILED/$ATTEMPTS), retrying in 5 seconds…” sleep 5 fi done
미 러 를 올 리 고 인 스 턴 스 를 켜 면 이상 의 내용 이 다 끝나 면 이 생 성 된 미 러 를 직접 꺼 놓 을 수 있 습 니 다 init 0. 그 후에 우 리 는 이전에 생 성 된 qcow 2 형식의 img 을 볼 수 있 습 니 다. 2G 를 초과 하지 않 는 것 을 발견 할 수 있 습 니 다.이 미 러 를 OpenStack 환경 에 전송 한 다음 glance add 로 추가 하면 됩 니 다 glance add name=XXXX is_public=true container_format=ovf disk_format=qcow2 < /tmp/CentOS6.3-openstack.img그 다음 에 이 미 러 로 인 스 턴 스 를 만 듭 니 다 ~ 시작 해 보 세 요 ~ ~ 직접 가 져 온 것 이 OpenStack 에서 분 배 된 ip 입 니 다 ~ 그리고 바로 ssh 가 도착 할 수 있 습 니 다 ~!
< 2, >
openStack metadata(public keys)
what openStack metadata ?
metadata 문자 이해 원 데 이 터 는 openStack 을 제외 한 다른 장소 에서 도 자주 발생 합 니 다. openStack 환경 에서 metadata 는 사용자 에 게 하나의 메커니즘 을 제공 합 니 다 (모든 VMI instance 파 라미 터 를 설정 할 수 있 습 니 다)
eg, instance 에 속성 을 설정 하고 싶 습 니 다. (호스트 이름, ip, Public keys pairs)
metadata 의 중요 한 응용 프로그램 은 모든 인 스 턴 스 의 ssh Public keys 를 설정 하 는 것 입 니 다.
공개 키 의 설정 은 두 가지 방식 이 있다.
1. 인 스 턴 스 를 만 들 때 파일 미 러 를 주입 합 니 다.
2. 인 스 턴 스 를 시작 한 후 metadata 를 통 해 가 져 오고 스 크 립 트 로 기록 합 니 다.
 # Fetch public key using HTTPATTEMPTS=10while [ ! -f /root/.ssh/authorized_keys ]; do    curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/aws-key 2>/dev/null    if [ \$? -eq 0 ]; then        cat /tmp/aws-key >> /root/.ssh/authorized_keys        chmod 0600 /root/.ssh/authorized_keys        restorecon /root/.ssh/authorized_keys        rm -f /tmp/aws-key        echo "Successfully retrieved AWS public key from instance metadata"    else        FAILED=\$((\$FAILED + 1))        if [ \$FAILED -ge \$ATTEMPTS ]; then            echo "Failed to retrieve AWS public key after \$FAILED attempts, quitting"            break        fi        echo "Could not retrieve AWS public key (attempt #\$FAILED/\$ATTEMPTS), retrying in 5 seconds..."        sleep 5    fidone
메타 데이터 와 호스트 이름 을 가 져 오 는 api 인 터 페 이 스 는 각각
http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
http://169.254.169.254/latest/meta-data/hostname
주의, 169.254.169.254 이 ip 주 소 는 openStack 에 존재 하지 않 습 니 다. 왜 metadata 를 얻 을 수 있 습 니까?
이것 은 Amazon 의 원인 입 니 다. 최초의 metadata 는 아마 존 이 제기 한 것 입 니 다. 많은 사람들 이 아마 존 에 운영 체제 의 미 러 를 맞 추 었 고 그 안에 metadata 를 가 져 온 api 주 소 를 죽 였 습 니 다. openStack 은 호환성 을 위해 이 ip 을 보류 한 다음 에 iptables nat 를 통 해 실제 api 에 비 추 었 습 니 다!이거 중요 해!manual deploy openStack production ENV 를 해 본 큰 소 는 모두 알 고 있 습 니 다. openStack 의 네트워크 노드 iptables 는 닫 히 지 않 습 니 다. 아래 의 계산 노드 의 iptables 는 닫 아야 합 니 다!
iptables -A nova-network-PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination ip(10.114.100.118):8775
8775 , , lsof -p:8775 pid kill -all pid nova-api ;
metadata , metadata , instance , ssh key
1, network , /etc/nova/nova.conf
metadata_host = ip
2, api instance fixed ip( openStack tenant )


< 3, >
1,quick guide to creating a OpenStack bootable image;
  1.1 wget os iso
  wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-adm64.iso
  1.2 create disk image:
  qemu-img create -f qcow2 ubuntu-14.04-server.qcow2 30G
  1.3 using KVM,launch an instance using iso and disk image (4096Mb ram and 2 processors)
  kvm -hda ubuntu-14.04-server.qcow2 -cdrom ubuntu-14.04-server-adm64.iso -m 4096 -smp 2  
  1.4 upload the image to glance:
  glance image-create --name ubuntu-14.04-server --disk-format=qcow2 --container-format=bare --is-public=True < ubuntu-14.04-server.qcow2
  1.5 boot
  nova boot --image ubuntu-14.04-server --flavor 3 VMI001
(Tips:delete /etc/udev/rules.d/70-persistent-net.rules (beforce uploading the image to glance))
in order for the nic interface ordering to start at eth0,otherwise it will start eth1.... which might not automatically start a dhcp-client on the interface.
 
# Fetch public key using HTTP

ATTEMPTS=10

while [ ! -f /root/.ssh/authorized_keys ]; do

    curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/aws-key 2>/dev/null

    if [ \$? -eq 0 ]; then

        cat /tmp/aws-key >> /root/.ssh/authorized_keys

        chmod 0600 /root/.ssh/authorized_keys

        restorecon /root/.ssh/authorized_keys

        rm -f /tmp/aws-key

        echo "Successfully retrieved AWS public key from instance metadata"

    else

        FAILED=\$((\$FAILED + 1))

        if [ \$FAILED -ge \$ATTEMPTS ]; then

            echo "Failed to retrieve AWS public key after \$FAILED attempts, quitting"

            break

        fi

        echo "Could not retrieve AWS public key (attempt #\$FAILED/\$ATTEMPTS), retrying in 5 seconds..."

        sleep 5

    fi

done

좋은 웹페이지 즐겨찾기