├── .gitignore ├── .gitmodules ├── README.md └── contribute.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io 2 | 3 | # VirtualBox ova files 4 | *.ova 5 | 6 | ### OSX ### 7 | .DS_Store 8 | .AppleDouble 9 | .LSOverride 10 | 11 | # Icon must end with two \r 12 | Icon 13 | 14 | 15 | # Thumbnails 16 | ._* 17 | 18 | # Files that might appear in the root of a volume 19 | .DocumentRevisions-V100 20 | .fseventsd 21 | .Spotlight-V100 22 | .TemporaryItems 23 | .Trashes 24 | .VolumeIcon.icns 25 | 26 | # Directories potentially created on remote AFP share 27 | .AppleDB 28 | .AppleDesktop 29 | Network Trash Folder 30 | Temporary Items 31 | .apdisk 32 | 33 | ### PyCharm ### 34 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm 35 | 36 | *.iml 37 | 38 | ## Directory-based project format: 39 | .idea/ 40 | # if you remove the above rule, at least ignore the following: 41 | 42 | # User-specific stuff: 43 | # .idea/workspace.xml 44 | # .idea/tasks.xml 45 | # .idea/dictionaries 46 | 47 | # Sensitive or high-churn files: 48 | # .idea/dataSources.ids 49 | # .idea/dataSources.xml 50 | # .idea/sqlDataSources.xml 51 | # .idea/dynamic.xml 52 | # .idea/uiDesigner.xml 53 | 54 | # Gradle: 55 | # .idea/gradle.xml 56 | # .idea/libraries 57 | 58 | # Mongo Explorer plugin: 59 | # .idea/mongoSettings.xml 60 | 61 | ## File-based project format: 62 | *.ipr 63 | *.iws 64 | 65 | ## Plugin-specific files: 66 | 67 | # IntelliJ 68 | /out/ 69 | 70 | # mpeltonen/sbt-idea plugin 71 | .idea_modules/ 72 | 73 | # JIRA plugin 74 | atlassian-ide-plugin.xml 75 | 76 | # Crashlytics plugin (for Android Studio and IntelliJ) 77 | com_crashlytics_export_strings.xml 78 | crashlytics.properties 79 | crashlytics-build.properties -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Scripts"] 2 | path = Scripts 3 | url = https://github.com/fuhaha/OpenStack_Install_shell_using_virtualbox.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OpenStack_Install_shell_using_virtualbox 2 | Install shell script for OpenStack Kilo 3 | ******************************************************* 4 | 5 | * Install shell script for OpenStack Kilo (Version 3) 6 | * First upload : 2015-06-24 7 | * Last updated : 2015-12-27 8 | 9 | ******************************************************* 10 | 11 | # TOC 12 | 13 | * [Virtualization](#virtualization) 14 | * [VirtualBox Host Network](#virtualbox-host-network) 15 | * [Node Configuration](#node-nonfiguration) 16 | * [Node Specification](#node-specification) 17 | * [Script](#script) 18 | * [Start Script](#start-script) 19 | * [Script Env Values](#script-env-values) 20 | * [Script Functions](#script-functions) 21 | * [Install Script](#install-script) 22 | * [Management Script](#management-script) 23 | 24 | # Virtualization 25 | 26 | * VirtualBox with Extension Pack 27 | * OS : CentOS 7 Minimal , Ubuntu Server 14.01.3 28 | * Image Down: [Google Drive](https://drive.google.com/open?id=0B3onbEIPVlh3MkhRZjRzM1Y2QmM) 29 | * Account (ID/PW) 30 | - root/0rootroot 31 | - student/123qwe 32 | 33 | ## System Architecture 34 | 35 | ![OpenStack Minimal Architecture Network Layout](https://cloud.githubusercontent.com/assets/624975/8559854/f0591124-254c-11e5-8a5b-3f4c5a3a7d42.jpg) 36 | 37 | ## VirtualBox Host Network 38 | 39 | | Network name | AP Address | 40 | | -------------- | ------------ | 41 | | Host Network 0 | 203.0.113.1 | 42 | | Host Network 1 | 10.0.0.1 | 43 | | Host Network 2 | 10.0.1.1 | 44 | | Host Network 7 | 10.0.4.1 (*) | 45 | | Host Network 3 | 88.11.11.1 | 46 | | Host Network 4 | 88.22.22.1 | 47 | | Host Network 5 | 88.33.33.1 | 48 | | Host Network 6 | 192.168.62.1 | 49 | 50 | `*` : 10.0.2.1 Network의 경우 VirtualBox에서 NAT 용도로 예약 사용중 51 | 52 | ## Node Configuration 53 | 54 | ``` 55 | +----------------+------------------------------------------------------------------------+ 56 | | Node | Network | 57 | +----------------+--------+----------------+---------------+---------------+--------------+ 58 | | | enp0s3 | enp0s8 | enp0s9 | enp0s10 | enp0s8 | 59 | | | NAT | External | Management | Tunnel | Storage | 60 | +----------------+--------+----------------+---------------+---------------+--------------+ 61 | | Controller | NAT | | 10.0.0.11/24 | | | 62 | | Network | NAT | Unnumbered | 10.0.0.21/24 | 10.0.1.21/24 | | 63 | | Compute1 | NAT | | 10.0.0.31/24 | 10.0.1.31/24 | 10.0.4.31/24 | 64 | | Block Storage1 | NAT | | 10.0.0.41/24 | | 10.0.4.41/24 | 65 | | Object Storage1| NAT | | 10.0.0.51/24 | | 10.0.4.51/24 | 66 | +----------------+--------+----------------+---------------+---------------+--------------+ 67 | | HOST | | HOST Network0 | HOST Network1 | HOST Network2 | | 68 | | | | 203.0.113.0/24 | 10.0.1.0/24 | 10.0.1.0/24 | | 69 | +----------------+--------+----------------+---------------+---------------+--------------+ 70 | ``` 71 | 72 | ## Node Specification 73 | 74 | ``` 75 | +----------------+--------------------------------------------+------------+------------+ 76 | | Node | Hardware Requirements | | | 77 | +----------------+---------+------------+-------------+-------| Host | Hosts | 78 | | | CPU | RAM | Storage | NIC | name | | 79 | | | (min) | (min) | (min) | (min) | | | 80 | +----------------+---------+------------+-------------+-------+------------+------------+ 81 | | Controller | 1-2(1) | 8GB(2GB) | 100GB(5GB) | 1 | controller | controller | 82 | | Network | 1-2(1) | 2GB(512MB) | 50GB(5GB) | 3 | network | network | 83 | | Compute1 | 2-4+(1) | 8+GB(2GB) | 100+GB(10GB)| 2 | compute | compute | 84 | | Block Storage1 | 1-2 | 2GB | 100+GB | 1 | block1 | block1 | 85 | | Object Storage1| 1-2 | 4+GB | 100+GB | 1 | object1 | object1 | 86 | +----------------+---------+------------+-------------+-------+------------+------------+ 87 | ``` 88 | 89 | # Script 90 | 91 | ## Start Script 92 | 93 | * `OpenStack/Scripts/kilo-step-all.sh` 94 | 95 | ## Script Env Values 96 | 97 | * `OpenStack/Scripts/common/kilo-perform-vars.common.sh` 98 | 99 | ## Script Functions 100 | 101 | * `OpenStack/Scripts` 102 | - `kilo-function.host.sh` 103 | - `OpenStack/Scripts\common\` 104 | + `kilo-function.00_common.sh` 105 | + `kilo-function.02_base.sh` 106 | + `kilo-function.03_identity.sh` 107 | + `kilo-function.04_image.sh` 108 | + `kilo-function.05_compute.sh` 109 | + `kilo-function.06_network.sh` 110 | + `kilo-function.07_dashboard.sh` 111 | + `kilo-function.08_blockstorage.sh` 112 | + `kilo-function.09_objectstorage.sh` 113 | 114 | ## Install Script 115 | 116 | * `OpenStack/Scripts/kilo-step-all.sh` 117 | - `OpenStack/Scripts/kilo-step-01.sh` 118 | - `OpenStack/Scripts/kilo-step-02.sh` 119 | + `02_Base/kilo-2.1.all.sh` 120 | + `02_Base/kilo-2.5.controller.sh` 121 | + `02_Base/kilo-2.5.other-conrtoller.sh` 122 | + if `LOCAL_REPOSITORY = 0` 123 | - `02_Base/kilo-2.6.a.all.sh` 124 | + else 125 | - `02_Base/kilo-2.6.b.all.sh` 126 | + `02_Base/kilo-2.7.1.controller.sh` 127 | + `02_Base/kilo-2.7.2.controller.sh` 128 | + `02_Base/kilo-2.8.1.controller.sh` 129 | 130 | - `OpenStack/Scripts/kilo-step-03.sh` 131 | + `03_Identity/kilo-3.1.1.controller.sh` 132 | + `03_Identity/kilo-3.1.2-4.controller.sh` 133 | + `03_Identity/kilo-3.2.controller.sh` 134 | + `03_Identity/kilo-3.3.controller.sh` 135 | + `03_Identity/kilo-3.4.controller.sh` 136 | + `03_Identity/kilo-3.5.controller.sh` 137 | 138 | - `OpenStack/Scripts/kilo-step-04.sh` 139 | + `04_Image/kilo-4.1.1-1.controller.sh` 140 | + `04_Image/kilo-4.1.1-2-4.controller.sh` 141 | + `04_Image/kilo-4.1.2-1-3.controller.sh` 142 | + `04_Image/kilo-4.2.controller.sh` 143 | 144 | - `OpenStack/Scripts/kilo-step-05.sh` 145 | + `05_Compute/kilo-5.1.1-1.controller.sh` 146 | + `05_Compute/kilo-5.1.1-2-4.controller.sh` 147 | + `05_Compute/kilo-5.2.1-2.compute.sh` 148 | + `05_Compute/kilo-5.3.1-4.controller.sh` 149 | 150 | - `OpenStack/Scripts/kilo-step-06.sh` 151 | + `06_Network/kilo-6.1.3.1.controller.sh` 152 | + `06_Network/kilo-6.1.3.2-6.controller.sh` 153 | + `06_Network/kilo-6.1.3.7.controller.sh` 154 | + `06_Network/kilo-6.1.4.11.controller.sh` 155 | + `06_Network/kilo-6.1.4.1_8-1.network.sh` 156 | + `06_Network/kilo-6.1.4.8-2_8-3.controller.sh` 157 | + `06_Network/kilo-6.1.4.9_10.network.sh` 158 | + `06_Network/kilo-6.1.5.compute.sh` 159 | + `06_Network/kilo-6.1.6.controller.sh` 160 | + `06_Network/kilo-6.2.1.controller.sh` 161 | + `06_Network/kilo-6.2.2.compute.sh` 162 | + `06_Network/kilo-6.2.3.controller.sh` 163 | + `06_Network/kilo-6.3.controller.sh` 164 | 165 | - `OpenStack/Scripts/kilo-step-07.sh` 166 | + `07_Dashboard/kilo-7.2_4.controller.sh` 167 | 168 | - `OpenStack/Scripts/kilo-step-08.sh` 169 | + `08_BlockStorage/kilo-8.1.1.controller.sh` 170 | + `08_BlockStorage/kilo-8.1.2-3.controller.sh` 171 | + `08_BlockStorage/kilo-8.2.1-3.block1.sh` 172 | + `08_BlockStorage/kilo-8.3.1_6.controller.sh` 173 | 174 | - `OpenStack/Scripts/kilo-step-09.sh` 175 | + `09_ObjectStorage/kilo-9.1.1.controller.sh` 176 | + `09_ObjectStorage/kilo-9.1.2.controller.sh` 177 | + `09_ObjectStorage/kilo-9.2.object1.sh` 178 | + `09_ObjectStorage/kilo-9.2.object2.sh` 179 | + `09_ObjectStorage/kilo-9.3.1_4.controller.sh` 180 | + `09_ObjectStorage/kilo-9.4.1_2.controller.sh` 181 | + `09_ObjectStorage/kilo-9.4.4_5.controller.sh` 182 | + `09_ObjectStorage/kilo-9.4.4_6.object1.sh` 183 | + `09_ObjectStorage/kilo-9.4.4_6.object2.sh` 184 | + `09_ObjectStorage/kilo-9.5.controller.sh` 185 | 186 | ## Management Script 187 | * Check service status 188 | + ALL service : `OpenStack/Scripts/status_services.sh` 189 | + Keystone Service : `status_keystone_services.sh` 190 | + Glance Service : `status_glance_services.sh` 191 | + Nova Service : `status_nova_services.sh` 192 | + Neutron Service : `status_neutron_services.sh` 193 | + Cinder Service : `status_cinder_services.sh` 194 | + Swift Service : `status_swift_services.sh` 195 | 196 | * Restart service 197 | + ALL service : `restart_services.sh` 198 | + Glance Service : `restart_glance_services.sh` 199 | + Nova Service : `restart_nova_services.sh` 200 | + Neutron Service : `restart_neutron_services.sh` 201 | + Cinder Service : `restart_cinder_services.sh` 202 | + Swift Service : `restart_swift_services.sh` 203 | -------------------------------------------------------------------------------- /contribute.md: -------------------------------------------------------------------------------- 1 | # Contribute 2 | 3 | 1. 간단한 소개 4 | 2. 새로운 기능 추가 방법 5 | 3. 버그 리포팅 6 | 4. 커뮤니티 7 | 8 | # 간단한 소개 9 | 10 | * OpenStack 한국 커뮤니티에서 진행한 스터디의 결과물로 [공식 설치 매뉴얼](http://docs.openstack.org/kilo/install-guide/install/yum/content/)을 기반으로 Shell과 Virtual Box를 이용하여 구축하는 방식으로 작업을 진행하였습니다. 11 | 12 | * 자신이 해보고 싶은 기능이 있거나, 필요했던 기능, 버그등이 보일 경우, 거침없이 RP를 부탁드립니다. 13 | 14 | # 새로운 기능 추가 방법 15 | 16 | 1. [이슈](https://github.com/openstack-kr/study_devops/issues)를 등록해주세요. 17 | * 라벨은 `enhancement`를 이용해주시구요. 18 | 2. 레포를 `Fork` 해서, 기능 추가하고, 테스트까지한 뒤 [PR](https://github.com/openstack-kr/study_devops/pulls) 버그 리포팅를 해주시면 됩니다. 19 | 3. 그러면 참여자분들이 테스팅하고 `master`에 추가해 드릴껍니다. 20 | 21 | # 버그 리포팅 22 | 23 | * 방식은 새로운 기능 추가와 동일합니다. 24 | * 버그인만큼 라벨만 `bug`로 해주시면됩니다. 25 | * 그리고 수정하실 수 있으시다면, 포크해서 수정, 태스트 후 PR을 해주시면됩니다. 26 | 27 | # 커뮤니티 참여 28 | 29 | * [Facebook](https://www.facebook.com/groups/openstack.kr/) 그룹을 기본으로 활동하며, 추가적으로 [Mailling](http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-ko), irc #openstack-ko, [Slack](https://openstackkr-slackin.herokuapp.com/)을 이용하여 참여할 수도 있다. 30 | --------------------------------------------------------------------------------