Openstack ile alıştırmalar 6

Merhaba,

Önceki alıştırmayı, deployment ‘ı tamamlanan ubuntu  sanal sunucusuna ssh ile bağlanarak sonlandırmıştık. Şimdi o sanal sunucuya kalıcı disk ekleyelim. Ephemeral disklerde veri depolamayalım 🙂 Hatırlamak gerekirse block based persistent disk tedarikçimiz Cinder servisiydi. Sanal sunucunun mevcut disk durumunu kontrol edelim.

Horizon > Volumes > Volumes menüsünden yeni volume oluşturuyoruz. Sonrasında volume ‘ü sunucuya ekliyoruz.

Sunucunun disk durumunu tekrar kontrol edelim.

Sanal sunucuya kalıcı disk eklemiş olduk. Şu ana kadar yaptığımız işlemleri özetleyelim.

  • Packstack ile all-in-one Openstack kurulumu yaptık. (RDO distribution)
  • Cloud administrator yetkileri ile Project oluşturduk. (Müşteriye ait software defined data center)
  • Cloud administrator yetkileri ile user(nwtradersadmin) oluşturduk, role’a atadık ve Project’e assign ettik. Müşteri kendine ait software defined datacenter ‘a bu user ile giriş yapabilir.
  • Müşteri, software defined network ‘ünü oluşturdu.
  • Cloud administrator yetkileri ile Müşterinin public network’üne external access tanımladık.
  • Müşterimiz, bir sanal sunucu oluşturmak istedi. Gereksinimleri tamamladı. Security group, floating IP , key pairs , image adımları tamamladı.
  • Müşterimiz Instance’ını oluşturdu.
  • Müşterimiz kalıcı disk ekledi.

Sonraki alıştırmalarda görüşmek üzere.

Herkese sorunsuz ve neşeli günler dilerim.

Openstack ile alıştırmalar 5

Merhaba,

Önceki alıştırmada bir kaç instance oluşturmuştuk. Şimdi instance’a bağlanmayı inceleyelim. Instance’a bir kaç yöntem ile bağlanabilirsiniz.

  • Horizon > Compute > Instance kısmından console ile
  • Network Namespace ‘indeki router’dan SSH ile(openstack sunucusu üzerinden)
  • Instance’a floating IP associate ederek herhangi bir client’dan SSH ile

Bence, hemen her durumda üçüncü yöntem tercih edilecektir. Openstack’in network namespace’ini kullanarak instance’a bağlanalım. Network namespace hakkında aşağıdaki adresten detaylara ulaşabilirsiniz.

https://docs.openstack.org/neutron/pike/admin/intro-network-namespaces.html

Openstack node’una login olarak ilerliyoruz.

Continue reading “Openstack ile alıştırmalar 5”

Openstack ile alıştırmalar 4

Merhaba,

Önceki alıştırmada müşterimiz , software defined datacenter ‘ın önemli parçasını ,software defined network ‘ünü oluşturmuştur. Oluşturduğu network’te sanal sunucu(instance) oluşturması için gereken diğer adımları tamamlayalım.

  • Keypair
  • Floating IP
  • Security Group (firewall diyebiliriz)
  • Image

Horizon dashboard’ta Network altından security group ‘ları oluşturabilirsiniz.

Continue reading “Openstack ile alıştırmalar 4”

Openstack ile alıştırmalar 3

Merhaba,

Önceki alıştırmayı , bir instance oluşturmak ve çalıştırmak için gereken isterleri belirterek sonlandırmıştık. Şimdi o isterlerden network ile başlayalım. Evet konumuz Neutron 🙂 NorthWind Traders müşterimiz ilk olarak software defined network ‘ünü tanımlayacak.

Floating IP kavramını belirtelim. SDN ‘iniz içinde oluşturacağınız instance’ın public IP adresidir. Instance ‘ın dış dünyaya açıldığı nokta burasıdır. SDN içinde instance’ın private IP adresi vardır. SDN’in dışına floating IP ile çıkar.

Continue reading “Openstack ile alıştırmalar 3”

Openstack ile alıştırmalar 2

Merhaba,

Önceki alıştırmayı, horizon’a giriş yaparak sonlandırmıştık. Oradan devam edeyim. Horizon ile çalışırken ilk etapta karışık görünen bir kaç temel kavramı açıklayayım.

  • Service: Openstack’in bileşeni, parçası. Nova , Neutron vb.
  • Project: Openstack içinde her müşteri bir Project olarak temsil edilmektedir. Böylelikle, müşterileriniz software defined datacenter ‘larını oluşturup yönetebilirler. (Project ‘e Tenant da diyebiliriz)
  • Role: Kullanıcılara verilen izinler bütünüdür. Kullanıcılar, role tanımlamaları ile kedilerine verilen izinleri kullanarak işlemlerini gerçekleştirirler.
  • User: (administrative entity)Openstack içinde her bir user spesifik bir role’e atanabilir.

İlk müşterimizi oluşturalım 🙂 İlginç olacak ama müşteri ismi olarak NorthWind Traders ismini seçmek istiyorum 🙂

Continue reading “Openstack ile alıştırmalar 2”

Openstack ile alıştırmalar 1

Merhaba,

Openstack nedir?” ile başlayacak olursak kısaca , “dünyada en hızlı büyüyen açık kaynak kodlu bulut projelerinden biridir” şeklinde tanımlayabiliriz. Biraz daha detaya inecek olursak “genel” ve “özel” bulut ortamlarında kullanabileceğiniz(mevcutta geniş çapta kullanımı olan) bulut işletim sistemidir.

IaaS – PaaS – SaaS üçlemesinden IaaS içinde yer almasının yanı sıra, Openstack tarafında başlayan güncel projeler ile(Ör: Magnum) PaaS içinde yer alan servisler de geliştirilmiştir. Mikro-servis uygulamalar için ochestration sağlayan en popüler yazılım ile , kubernetes – k8s , entegre çalışabilmektedir.

Bulut işletim sistemi şeklinde tariflediğimiz yapının önemli parçalarına( core projects ) göz atalım.

Continue reading “Openstack ile alıştırmalar 1”

Liste işlemleri append()-remove()-pop()

Merhaba,

Aşağıdaki code bloğu ne yapıyor?

list1 ‘de olan string tuşlandıysa onu list1 ‘de remove ediyor.

list1 ‘de olmayan string tuşlandıysa onu list1 ‘e append ediyor.

Herhangi bir string tuşlamadan enter’a tıklandıysa, list1’in sonuncu index’e sahip elementini kesiyor( pop() )

Listeyi kese kese bitirmek için while loop eklenebilir.

###Variables###
list1 = ['hen', 'cat', 'goat', 'cat', 'bird', 'cat', 'horse', 'goat', 'cat', 'horse', 'cow', 'ox', 'hen','deer']
print("Look at all animals",list1)

###list o matic fuction###
def listematic(str1,list1=[]):
    if not str1:
        kesilen = list1.pop()
        #print(kesilen,"popped from the list")
        return kesilen+' '+'popped from the list'
    if str1 in list1:
        list1.remove(str1)
        #print("1 instance of",str1 ,"removed from list")
        return '1 instance of'+' '+str1+' '+'removed from list'
    else:
        list1.append(str1)
        #print("1 instance of", str1, "appened to list")
        return '1 instance of'+' '+str1+' '+"appened to list"

###Program Flow###
#while True: --> son satır ve bunu bonus olarak kullanabilirsiniz,listeyi birer birer keser. Bu ve son satır arasındaki
#code'un indentation level'ini düzeltiniz.
if list1:
    str1 = input("Hayvan ismi giriniz :")
    if str1 == "Quit":
        print("Goodbye")
    else:
        print(listematic(str1,list1))
        print(list1)
else:
    print("Goodbye")
#   break

Herkese sorunsuz ve neşeli günler dilerim.

Kelimelere ayıralım ve sonuncu space ‘i düşünelim :)

 

Merhaba ,

Aşağıdaki code ile verilen string içinde, belli bir harften büyük bir harf ile başlayan kelimeleri bulabilirsiniz. Sonuncu space ‘ten sonraki kelime için .rfind( ) metodu kullanılabilir. Onu kullanmadan bulmaya çalıştım.

input_phrase = "Wheresoever you go, go with all your heart"
word = ""
start = 0
space_index = input_phrase.find(" ")
for i in input_phrase:
        if i.isalpha():
            word = word + i
            if space_index != -1:
                start = space_index + 1
                space_index = input_phrase.find(" ", space_index + 1)
        elif word.lower() >= "h":
            print(word.upper())
            word = ""
        else:
            word = ""
print(input_phrase[start:].upper())

Text içinde string aramak .find( )

Merhaba,

Text içinde geçen bir string‘in index numarası bulmak.

work_tip = "A snippet is a small chunk of PHP code that you can use to extend the " \
           "functionality of a WordPress-powered website; essentially a mini-plugin with " \
           "less load on your site. Most snippet-hosting sites tell you to add snippet code " \
           "to your active theme's functions.php file, which can get rather long and messy after a while."
code_index =work_tip.find("code")
while code_index > 0:
    print("'snippet' is at index",code_index)
    code_index = work_tip.find("snippet",code_index+1)
    if code_index == -1:
        print("no more 'snippet'")

work_tip text’i içinde geçen ‘snippet’ string’inin index numaralarını gösterir. Çıktısı aşağıdaki gibidir.

‘snippet’ is at index 34
‘snippet’ is at index 176
‘snippet’ is at index 214
no more ‘snippet’