{"id":7530,"date":"2015-03-26T08:00:14","date_gmt":"2015-03-25T23:00:14","guid":{"rendered":"http:\/\/www.creationline.com\/?p=7530"},"modified":"2015-03-25T20:01:34","modified_gmt":"2015-03-25T11:01:34","slug":"openstack-ironic%e3%81%ab%e3%82%88%e3%82%8b%e3%83%99%e3%82%a2%e3%83%a1%e3%82%bf%e3%83%ab%e3%83%bb%e3%83%97%e3%83%ad%e3%83%93%e3%82%b8%e3%83%a7%e3%83%8b%e3%83%b3%e3%82%b0-%e7%ac%ac2%e5%9b%9e-openstack","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/openstack\/7530","title":{"rendered":"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack"},"content":{"rendered":"<h2>Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09<\/h2>\n<h3>1. \u524d\u63d0<\/h3>\n<ul>\n<li>OS\uff1aUbuntu 14.10 Server<\/li>\n<li>OpenStack Nova, Neutron, Glance, Horizon\u304c\u65e2\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\uff08All-in-One\uff09<br \/>\n\uff08\u30de\u30eb\u30c1\u30ce\u30fc\u30c9\u3067\u306e\u69cb\u7bc9\u3082\u53ef\u80fd\u3067\u3059\u304c\u4eca\u56de\u306fAll-in-One\u74b0\u5883\u3067\u69cb\u7bc9\u3057\u3066\u3044\u304d\u307e\u3059\uff09<\/li>\n<li>NIC<br \/>\neth0(Open vSwitch\u30d6\u30ea\u30c3\u30b8\u7528)<br \/>\neth1(\u5185\u90e8NW\uff1a172.16.100.3\/24)<br \/>\neth2(Open vSwitch\u30d6\u30ea\u30c3\u30b8\u7528)<br \/>\neth3(\u5916\u90e8NW\uff1a192.168.0.30\/24)<\/li>\n<\/ul>\n<h3>2. Keystone\u3078\u767b\u9332<\/h3>\n<p>Keystone\u306bIronic\u30e6\u30fc\u30b6\u3068\u30b5\u30fc\u30d3\u30b9\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u767b\u9332\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\n# keystone user-create --name=ironic --pass=&lt;\u4efb\u610f\u306ePassword&gt; --email=&lt;Email\uff08\u7701\u7565\u53ef\uff09&gt;<br \/>\n# keystone user-role-add --user=ironic --tenant=service --role=admin<br \/>\n# keystone service-create --name=ironic --type=baremetal --description=\"Ironic bare metal provisioning service\"<br \/>\n# keystone endpoint-create \\<br \/>\n--service-id=the_service_id_above \\<br \/>\n--publicurl=http:\/\/172.16.100.3:6385 \\<br \/>\n--internalurl=http:\/\/172.16.100.3:6385 \\<br \/>\n--adminurl=http:\/\/172.16.100.3:6385<br \/>\n<\/code><\/p>\n<h3>3. DB\u3078\u306e\u767b\u9332<\/h3>\n<p>MySQL\u306bironic\u7528\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\n# mysql -u root -p<br \/>\nmysql&gt; CREATE DATABASE ironic CHARACTER SET utf8;<br \/>\nmysql&gt; GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' \\<br \/>\nIDENTIFIED BY '&lt;\u4efb\u610f\u306ePassword&gt;';<br \/>\nmysql&gt; GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' \\<br \/>\nIDENTIFIED BY '&lt;\u4efb\u610f\u306ePassword&gt;';<br \/>\n<\/code><\/p>\n<h3>4. Ironic \u30d1\u30c3\u30b1\u30fc\u30b8\u306a\u3069\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n<p><code><br \/>\n# apt-get install ironic-api ironic-common ironic-conductor python-ironic<br \/>\n<\/code><\/p>\n<p>Ironic\u306e\u30c9\u30e9\u30a4\u30d0\u3068\u3057\u3066pxe_ipmitool\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306fIPMITool\u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<p><code><br \/>\n# apt-get install ipmitool<br \/>\n<\/code><\/p>\n<h3>5. Ironic\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u7de8\u96c6<\/h3>\n<p>Ironic\u81ea\u4f53\u306e\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\/etc\/ironic\/ironic.conf\u3092\u7de8\u96c6\u3057\u307e\u3059\u3002<\/p>\n<p>\u30fb\u30c7\u30d0\u30c3\u30b0\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u51fa\u529b\u306e\u6709\u52b9\u5316<br \/>\n<code><br \/>\n[DEFAULT]<br \/>\ndebug = True<br \/>\nverbose = True<br \/>\n<\/code><\/p>\n<p>\u30fbRabbitMQ\u306e\u8a2d\u5b9a<br \/>\n<code><br \/>\n[DEFAULT]<br \/>\n\/\/ \u7701\u7565<br \/>\nrabbit_host=localhost<br \/>\n<\/code><\/p>\n<p>\u30fb\u8a8d\u8a3c\u306e\u8a2d\u5b9a<br \/>\n<code><br \/>\n[DEFAULT]<br \/>\n\/\/ \u7701\u7565<br \/>\nauth_strategy=keystone<br \/>\n\/\/ \u7701\u7565<br \/>\n[keystone_authtoken]<br \/>\nauth_uri = http:\/\/172.16.100.3:5000\/v2.0<br \/>\nidentity_uri = http:\/\/172.16.100.3:35357<br \/>\nadmin_tenant_name = service<br \/>\nadmin_user = ironic<br \/>\nadmin_password = &lt;Keystone\u306b\u767b\u9332\u3057\u305fIronic\u306ePassword&gt;<br \/>\n<\/code><\/p>\n<p>\u30fbDB\u30b5\u30fc\u30d0\u306e\u8a2d\u5b9a<br \/>\n<code><br \/>\n[database]<br \/>\n\/\/ \u7701\u7565<br \/>\nconnection = mysql:\/\/ironic:&lt;\u521d\u3081\u306b\u8a2d\u5b9a\u3057\u305fDB\u7528Password&gt;@localhost\/ironic<br \/>\n<\/code><\/p>\n<p>\u30fbNeutron\u306e\u8a2d\u5b9a<br \/>\n<code><br \/>\n[neutron]<br \/>\nurl=http:\/\/172.16.100.3:9696<br \/>\n<\/code><\/p>\n<p>\u30fbGlance\u306e\u8a2d\u5b9a<br \/>\n<code><br \/>\n[glance]<br \/>\nglance_host=172.16.100.3<br \/>\n<\/code><\/p>\n<h3>6. DB\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210<\/h3>\n<p><code><br \/>\n# ironic-dbsync --config-file \/etc\/ironic\/ironic.conf create_schema<br \/>\n<\/code><\/p>\n<h3>7. Ironic\u30b5\u30fc\u30d3\u30b9\u306e\u518d\u8d77\u52d5<\/h3>\n<p><code><br \/>\n# service ironic-api ironic-conductor restart<br \/>\n<\/code><\/p>\n<h3>8. Nova\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u7de8\u96c6<\/h3>\n<p>Nova\u3068Ironic\u304c\u9023\u643a\u3067\u304d\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u30d9\u30a2\u30e1\u30bf\u30eb\u30ce\u30fc\u30c91\u53f01\u53f0\u304c\u30cf\u30a4\u30d1\u30fc\u30d0\u30a4\u30b6\u3068\u3057\u3066\u6271\u308f\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\u30fbCompute Driver\u306e\u8a2d\u5b9a<br \/>\n\/etc\/nova\/nova-compute.conf<\/p>\n<p><code><br \/>\n[DEFAULT]<br \/>\n#compute_driver=libvirt.LibvirtDriver<br \/>\ncompute_driver=nova.virt.ironic.IronicDriver<br \/>\n<\/code><\/p>\n<p>\u30fb\u30b9\u30b1\u30b8\u30e5\u30fc\u30e9\u3001Firewall\u30c9\u30e9\u30a4\u30d0\u3001\u4f7f\u7528RAM\u306e\u8a2d\u5b9a<br \/>\n\/etc\/nova\/nova.conf<br \/>\n<code><br \/>\nfirewall_driver=nova.virt.firewall.NoopFirewallDriver<br \/>\nscheduler_host_manager=nova.scheduler.ironic_host_manager.IronicHostManager<br \/>\nram_allocation_ratio=1.0<br \/>\nreserved_host_memory_mb=0<br \/>\n<\/code><\/p>\n<p>\u30fbIronic API\u306e\u8a2d\u5b9a<br \/>\n\/etc\/nova\/nova.conf<br \/>\n<code><br \/>\n[ironic]<br \/>\nadmin_username=ironic<br \/>\nadmin_password=&lt;Keystone\u306b\u767b\u9332\u3057\u305fIronic\u306ePassword&gt;<br \/>\nadmin_url=http:\/\/172.16.100.3:35357\/v2.0<br \/>\nadmin_tenant_name=service<br \/>\napi_endpoint=http:\/\/172.16.100.3:6385\/v1<br \/>\n<\/code><\/p>\n<p>\u6700\u5f8c\u306bNova\u306e\u518d\u8d77\u52d5\u3092\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\n# service nova-scheduler nova-compute restart<br \/>\n<\/code><\/p>\n<h3>9. \u30d5\u30e9\u30c3\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u69cb\u7bc9<\/h3>\n<p>\u30d9\u30a2\u30e1\u30bf\u30eb\u30ce\u30fc\u30c9\u3068\u306e\u30d5\u30e9\u30c3\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\u3002<\/p>\n<h4>1. Neutron ML2\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u8a2d\u5b9a<\/h4>\n<p>\/etc\/neutron\/plugins\/ml2\/ml2_conf.ini<br \/>\n<code><br \/>\n[ml2]<br \/>\ntype_drivers = flat<br \/>\ntenant_network_types = flat<br \/>\nmechanism_drivers = openvswitch<\/code><\/p>\n<p>[ml2_type_flat]<br \/>\nflat_networks = *<\/p>\n<p>[securitygroup]<br \/>\nfirewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver<br \/>\nenable_security_group = True<\/p>\n<p>[ovs]<br \/>\nnetwork_vlan_ranges = physnet1, internal<br \/>\nbridge_mappings = physnet1:br-ex, internal:br-eth2<\/p>\n<h4>2. Open vSwitch\u306e\u8a2d\u5b9a<\/h4>\n<p>\u30fbIntegration Bridge\u306e\u8ffd\u52a0\uff08\u306a\u3051\u308c\u3070\uff09\u3002<br \/>\n<code><br \/>\n# ovs-vsctl add-br br-int<br \/>\n<\/code><br \/>\n\u30fbIntegration Bridge\u3068\u30d9\u30a2\u30e1\u30bf\u30eb\u30ce\u30fc\u30c9\u3068\u901a\u4fe1\u3059\u308bNIC\u306e\u7d50\u3073\u4ed8\u3051\u3002<br \/>\n<code><br \/>\n# ovs-vsctl add-br br-eth2<br \/>\n# ovs-vsctl add-port br-eth2 eth2<br \/>\n<\/code><br \/>\n\u30fb\u30b5\u30fc\u30d3\u30b9\u306e\u518d\u8d77\u52d5<br \/>\n<code><br \/>\nservice neutron-plugin-openvswitch-agent restart<br \/>\n<\/code><\/p>\n<p>\u8a2d\u5b9a\u304c\u3046\u307e\u304f\u3044\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\n# ovs-vsctl show<br \/>\n7663023-4d6c-454f-b858-c1c70a19f880<br \/>\nBridge \"br-eth2\"<br \/>\nPort \"br-eth2\"<br \/>\nInterface \"br-eth2\"<br \/>\ntype: internal<br \/>\nPort \"eth2\"<br \/>\nInterface \"eth2\"<br \/>\nPort \"phy-br-eth2\"<br \/>\nInterface \"phy-br-eth2\"<br \/>\ntype: patch<br \/>\noptions: {peer=\"int-br-eth2\"}<br \/>\nBridge br-ex<br \/>\nPort \"eth0\"<br \/>\nInterface \"eth0\"<br \/>\nPort phy-br-ex<br \/>\nInterface phy-br-ex<br \/>\ntype: patch<br \/>\noptions: {peer=int-br-ex}<br \/>\nPort br-ex<br \/>\nInterface br-ex<br \/>\ntype: internal<br \/>\nBridge br-int<br \/>\nfail_mode: secure<br \/>\nPort \"tapc0547d64-17\"<br \/>\ntag: 1<br \/>\nInterface \"tapc0547d64-17\"<br \/>\ntype: internal<br \/>\nPort int-br-ex<br \/>\nInterface int-br-ex<br \/>\ntype: patch<br \/>\noptions: {peer=phy-br-ex}<br \/>\nPort \"int-br-eth2\"<br \/>\nInterface \"int-br-eth2\"<br \/>\ntype: patch<br \/>\noptions: {peer=\"phy-br-eth2\"}<br \/>\nPort br-int<br \/>\nInterface br-int<br \/>\ntype: internal<br \/>\novs_version: \"2.1.3\"<\/code><\/p>\n<p>&nbsp;<\/p>\n<h4>3. \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\uff06\u30b5\u30d6\u30cd\u30c3\u30c8\u306e\u4f5c\u6210<\/h4>\n<p>Neutron\u306b\u3066\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u30b5\u30d6\u30cd\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3042\u3089\u304b\u3058\u3081\u4f7f\u7528\u3059\u308b\u30c6\u30ca\u30f3\u30c8\u306eID\u3092\u7528\u610f\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070admin\u30c6\u30ca\u30f3\u30c8\u3092\u4f7f\u3046\u5834\u5408\u3001<br \/>\n<code><br \/>\n# TENANTID=$(keystone tenant-list | awk \u2018\/admin\/ {print $2}\u2019)<br \/>\n<\/code><br \/>\n\u3068\u3059\u308b\u3053\u3068\u3067\u30c6\u30ca\u30f3\u30c8ID\u3092\u5909\u6570\u306b\u4ee3\u5165\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30fb\u30d5\u30e9\u30c3\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u4f5c\u6210<br \/>\n<code><br \/>\n# neutron net-create --tenant-id $TENANT_ID flatnet --shared \\<br \/>\n--provider:network_type flat --provider:physical_network internal<br \/>\n<\/code><br \/>\nphysical_network\u306b\u306fML2\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u8a2d\u5b9a\u3092\u52a0\u3048\u305f\u969b\u306b\u30de\u30c3\u30d4\u30f3\u30b0\u6307\u5b9a\u3092\u3057\u305f\u3082\u306e\u3092\u6307\u5b9a\u3057\u307e\u3059\uff08\u4eca\u56de\u306e\u5834\u5408\u306finternal\uff09\u3002<br \/>\n\u30fb\u30b5\u30d6\u30cd\u30c3\u30c8\u306e\u4f5c\u6210<br \/>\n\u3053\u3053\u3067\u306fDHCP\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3082\u6709\u52b9\u306b\u3057\u307e\u3059\u3002\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306b\u95a2\u3057\u3066\u306f\u7701\u7565\u53ef\u80fd\u3067\u3059\u3002<br \/>\n<code><br \/>\n# neutron subnet-create flatnet \\<br \/>\n--allocation-pool start=172.16.100.150,end=172.16.100.160 \\<br \/>\n--dns-nameserver 8.8.8.8 --gateway=172.16.100.1 --enable_dhcp --name flat-sub \\<br \/>\n172.16.100.0\/24<br \/>\n<\/code><\/p>\n<h4>4. \u758e\u901a\u306e\u78ba\u8a8d<\/h4>\n<p>\u4f5c\u6210\u3057\u305f\u30d6\u30ea\u30c3\u30b8\u306e\u8a2d\u5b9a\u304c\u51fa\u6765\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u3001Neutron\u306b\u3066DHCP\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u305f\u969b\u306b\u4f5c\u3089\u308c\u308bNamespace\u304b\u3089\u30db\u30b9\u30c8\u3078\u758e\u901a\u304c\u53d6\u308c\u308b\u304b\u3069\u3046\u304b\u78ba\u8a8d\u3057\u307e\u3059\u3002<br \/>\n\u30fbNamespace\u306e\u78ba\u8a8d<br \/>\n<code><br \/>\n# ip netns<br \/>\nqdhcp-5d9a38e0-7610-4b88-83ad-5614e126f97c<br \/>\n<\/code><br \/>\n\uff08qdhcp-\u4ee5\u964d\u306b\u306fDHCP\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306eUUID\u304c\u5165\u308a\u307e\u3059\u3002\uff09<br \/>\n\u30fbping\u3092\u6253\u3063\u3066\u307f\u308b<br \/>\n<code><br \/>\n# ip netns exec qdhcp- ping 172.16.100.3<br \/>\nPING 172.16.100.3 (172.16.100.3) 56(84) bytes of data.<br \/>\n64 bytes from 172.16.100.3: icmp_seq=1 ttl=64 time=0.203 ms<br \/>\n64 bytes from 172.16.100.3: icmp_seq=2 ttl=64 time=0.084 ms<br \/>\n<\/code><\/p>\n<h3>10. \u30d5\u30ec\u30fc\u30d0\u30fc\u306e\u4f5c\u6210<\/h3>\n<p>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\u3059\u308b(\u30d9\u30a2\u30e1\u30bf\u30eb\u3078\u306e\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0\u3092\u6307\u3059)\u969b\u306b\u4f7f\u7528\u3059\u308b\u30d5\u30ec\u30fc\u30d0\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\n# nova flavor-create baremetal auto $RAM_MB $DISK_GB $CPU<br \/>\n<\/code><br \/>\nauto\u306e\u90e8\u5206\u306f\u30d5\u30ec\u30fc\u30d0\u30fcID\u3068\u306a\u308a\u307e\u3059\u3002auto\u306b\u3059\u308b\u3068\u9069\u5f53\u306aUUID\u304c\u3001\u4efb\u610f\u306e\u6570\u5b57\u3092\u5165\u529b\u3059\u308b\u3068\u305d\u308c\u304c\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>11. PXE\u306e\u8a2d\u5b9a<\/h3>\n<p>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\u3059\u308b\u969b\u306b\u4f7f\u7528\u3059\u308bTFTP\u30b5\u30fc\u30d0\u306e\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\u3002<br \/>\nPXE\u7528\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4f5c\u6210\u3001\u6a29\u9650\u306e\u5909\u66f4<br \/>\n<code><br \/>\n# mkdir -p \/tftpboot<br \/>\n# chown -R ironic -p \/tftpboot<br \/>\n# chmod -R 777 \/tftpboot<br \/>\n<\/code><br \/>\n\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n<code><br \/>\n# apt-get install tftpd-hpa syslinux syslinux-common pxelinux<br \/>\n<\/code><br \/>\nPXE\u30d6\u30fc\u30c8\u306b\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30d4\u30fc<br \/>\n<code><br \/>\n# cp \/usr\/lib\/PXELINUX\/pxelinux.0 \/tftpboot<br \/>\n# cp \/usr\/lib\/syslinux\/modules\/*\/ldlinux.* \/tftpboot<br \/>\n<\/code><br \/>\n\u30de\u30c3\u30d7\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<br \/>\n<code><br \/>\n# echo 'r ^([^\/]) \/tftpboot\/\\1' &gt; \/tftpboot\/map-file<br \/>\n# echo 'r ^(\/tftpboot\/) \/tftpboot\/\\2' &gt;&gt; \/tftpboot\/map-file<br \/>\n<\/code><br \/>\nPXE\u30d6\u30fc\u30c8\u306e\u8a2d\u5b9a<br \/>\n\/etc\/ironic\/ironic.conf<br \/>\n<code><br \/>\n\/\/ \u7701\u7565<br \/>\n[pxe]<br \/>\ntftp_root=\/tftpboot<br \/>\ntftp_master_path = \/tftpboot\/master_images<br \/>\ntftp_server=172.16.100.152<br \/>\n<\/code><br \/>\nIronic Conductor\u306e\u518d\u8d77\u52d5<br \/>\n<code><br \/>\n# service ironic-conductor restart<br \/>\n<\/code><\/p>\n<h3>12. \u305d\u306e\u4ed6<\/h3>\n<p>\u30fbNeutron Metadata-agent\u306e\u8a2d\u5b9a<br \/>\n\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\u3057\u305f\u969b\u306bcloud-init\u304c\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<br \/>\n\/etc\/neutron\/dhcp-agent.ini<br \/>\n<code><br \/>\n\/\/\u7701\u7565<br \/>\n\u201cenable_isolated_metadata=True\u201d<br \/>\n<\/code><br \/>\n\u30fb\u4e00\u90e8\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u5909\u66f4<br \/>\n\u4e00\u90e8\u306e\u74b0\u5883\u306b\u3066\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u4f5c\u6210\u9014\u4e2d\u3067iSCSI\u95a2\u4fc2\u3067\u30a8\u30e9\u30fc\u304c\u51fa\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u305d\u306e\u5bfe\u7b56\u3068\u3057\u3066\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u5909\u66f4\u3092\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\n# chown root:root -R \/etc\/ironic\/rootwrap*<br \/>\n<\/code><\/p>\n<h2>\u95a2\u9023\u8a18\u4e8b<\/h2>\n<hr>\n<p><a href=\"\/lab\/7517\" title=\"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c1\u56de\">OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c1\u56de<\/a><br \/>\n<a href=\"\/lab\/7530\" title=\"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de\">OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron, Glance, Horizon\u304c\u65e2\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\uff08All [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[40],"tags":[],"class_list":["post-7530","post","type-post","status-publish","format-standard","hentry","category-openstack"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"OpenStack |Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron,\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/7530\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"OpenStack |Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/7530\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-25T23:00:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/01\/screenshot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"470\" \/>\n\t<meta property=\"og:image:height\" content=\"394\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/7d923d1c017568a1a5e66d7bb1c8764a\"},\"headline\":\"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack\",\"datePublished\":\"2015-03-25T23:00:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530\"},\"wordCount\":162,\"commentCount\":0,\"articleSection\":[\"OpenStack\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530\",\"name\":\"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"datePublished\":\"2015-03-25T23:00:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/7d923d1c017568a1a5e66d7bb1c8764a\"},\"description\":\"OpenStack |Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron,\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/7530#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"OpenStack\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cloudnative\\\/openstack\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/7d923d1c017568a1a5e66d7bb1c8764a\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"caption\":\"admin\"},\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"OpenStack |Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron,","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/7530","og_locale":"ja_JP","og_type":"article","og_title":"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"OpenStack |Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron,","og_url":"https:\/\/www.creationline.com\/tech-blog\/7530","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2015-03-25T23:00:14+00:00","og_image":[{"width":470,"height":394,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/01\/screenshot.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"admin","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"3\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/7530#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/7530"},"author":{"name":"admin","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7d923d1c017568a1a5e66d7bb1c8764a"},"headline":"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack","datePublished":"2015-03-25T23:00:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/7530"},"wordCount":162,"commentCount":0,"articleSection":["OpenStack"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.creationline.com\/tech-blog\/7530#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/7530","url":"https:\/\/www.creationline.com\/tech-blog\/7530","name":"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"datePublished":"2015-03-25T23:00:14+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7d923d1c017568a1a5e66d7bb1c8764a"},"description":"OpenStack |Ironic\u5c0e\u5165\u624b\u9806\uff08All-in-One\uff09 1. \u524d\u63d0 OS\uff1aUbuntu 14.10 Server OpenStack Nova, Neutron,","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/7530#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/7530"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/7530#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative"},{"@type":"ListItem","position":3,"name":"OpenStack","item":"https:\/\/www.creationline.com\/tech-blog\/cloudnative\/openstack"},{"@type":"ListItem","position":4,"name":"OpenStack Ironic\u306b\u3088\u308b\u30d9\u30a2\u30e1\u30bf\u30eb\u30fb\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0 \u7b2c2\u56de #openstack"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7d923d1c017568a1a5e66d7bb1c8764a","name":"admin","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","caption":"admin"},"url":"https:\/\/www.creationline.com\/tech-blog\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/7530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=7530"}],"version-history":[{"count":0,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/7530\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=7530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=7530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=7530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}