From 8b761cfd9b6d29adfb08ed08c90e75ba2b1afc98 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 23 Mar 2015 11:39:39 -0700 Subject: [PATCH] ignore inventories fix named.template hardcoding listen address can't be 127.0.0.1. Conflicts: install/group_vars/all install/roles/cobbler/templates/Dockerfile.j2 test compass without chef Conflicts: install/roles/cobbler/templates/Dockerfile.j2 Change-Id: I1c2d9b686e9370ccf253ad001b95fe491008365b --- .gitignore | 1 + install/allinone_nochef.yml | 8 +++++ install/group_vars/all | 26 ++++++++++------ install/roles/cobbler/tasks/docker.yml | 11 +++++-- install/roles/cobbler/templates/Dockerfile.j2 | 22 +++++++++++++ .../roles/cobbler/templates/named.template.j2 | 31 +++++++++++++++++++ install/roles/cobbler/templates/start.sh.j2 | 1 + install/roles/compass/tasks/docker.yml | 6 ++-- .../Dockerfile => templates/Dockerfile.j2} | 2 ++ 9 files changed, 92 insertions(+), 16 deletions(-) create mode 100644 .gitignore create mode 100644 install/allinone_nochef.yml create mode 100644 install/roles/cobbler/templates/Dockerfile.j2 create mode 100644 install/roles/cobbler/templates/named.template.j2 rename install/roles/compass/{files/Dockerfile => templates/Dockerfile.j2} (88%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5620712 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +install/inventories diff --git a/install/allinone_nochef.yml b/install/allinone_nochef.yml new file mode 100644 index 0000000..bef9df8 --- /dev/null +++ b/install/allinone_nochef.yml @@ -0,0 +1,8 @@ +--- + +- hosts: allinone + sudo: True + roles: + - common + - cobbler + - compass diff --git a/install/group_vars/all b/install/group_vars/all index 9168161..8e018e5 100644 --- a/install/group_vars/all +++ b/install/group_vars/all @@ -4,9 +4,9 @@ rebuild: True # Auto-generated IP values -chef_server: "10.145.89.133" -cobbler_server: "10.145.89.133" -compass-server: "10.145.89.128" +chef_server: "10.145.81.208" +cobbler_server: "10.145.81.208" +compass-server: "10.145.81.208" # Auto-generated dockerized_cobbler: True @@ -15,6 +15,9 @@ dockerized_chef: False # shared_dir on local machine shared_dir: "~/compass/shared" +# pkg installer +pkg_installer: ['ansible'] + ## default urls # centos @@ -25,19 +28,19 @@ compass_adapters: "git://git.openstack.org/stackforge/compass-adapters.git" ## cobbler # cidr for docker bridge: compass0 -compass0_subnet: "192.168.100.1/24" +compass0_subnet: "192.168.101.1/24" # subnet ip for docker bridge: compass0 -compass0_subnet_ip: "192.168.100.0" +compass0_subnet_ip: "192.168.101.0" # subnet mask for docker bridge: compass0 compass0_subnet_mask: "255.255.255.0" # router ip for docker bridge: compass0 -compass0_router: "192.168.100.1" +compass0_router: "192.168.101.1" # dhcp range for docker bridge: compass0 -compass0_dhcp_range: "192.168.100.10 192.168.100.250" +compass0_dhcp_range: "192.168.101.150 192.168.101.160" # management subnet ip of the cluster you want to deploy mgmt_subnet_ip: "10.145.88.0" @@ -46,10 +49,10 @@ mgmt_subnet_ip: "10.145.88.0" mgmt_router: "10.145.88.1" # management subnet subnet mask -mgmt_subnet_mask: "255.255.254.0" +mgmt_subnet_mask: "255.255.255.0" # management subnet dhcp range -mgmt_dhcp_range: "10.145.88.10 10.145.89.250" +mgmt_dhcp_range: "10.145.88.150 10.145.88.160" @@ -70,6 +73,9 @@ xmlrpc_port: "25151" # dns port on host that maps to the cobbler container dns_port: "53" +# mysql port +mysql_port: "3306" + # port mapping as a paramter for running cobbler container cobbler_port_mapping: -p {{ cobbler_mapped_http_port_on_host }}:80 -p {{ tftp_port }}:69/udp -p {{ dns_port }}:53/udp -p {{ xmlrpc_port }}:25151 -p {{ rsyslog_port_mapped_on_host }}:514 @@ -87,7 +93,7 @@ ntp_port: "123" proxy_port: "3128" # port mapping as a parameter for running compass container -compass_port_mapping: -p {{ compass_mapped_http_port_on_host }}:80 -p {{ ntp_port }}:123 -p {{ proxy_port }}:3128 +compass_port_mapping: -p {{ compass_mapped_http_port_on_host }}:80 -p {{ ntp_port }}:123 -p {{ proxy_port }}:3128 -p {{ mysql_port }}:3306 ## isos diff --git a/install/roles/cobbler/tasks/docker.yml b/install/roles/cobbler/tasks/docker.yml index 090334c..8e9ca62 100644 --- a/install/roles/cobbler/tasks/docker.yml +++ b/install/roles/cobbler/tasks/docker.yml @@ -45,13 +45,18 @@ when: mount_info.stdout.find('CentOS') == -1 - name: copy Dockerfile to ~/docker-cobbler - copy: src=Dockerfile dest=~/docker-cobbler/Dockerfile mode=0644 + template: src=Dockerfile.j2 dest=~/docker-cobbler/Dockerfile mode=0644 - name: copy dhcp.template template: src=dhcp.template.j2 dest=~/docker-cobbler/files/dhcp.template mode=0644 +- name: copy named.template + template: src=named.template.j2 + dest=~/docker-cobbler/files/named.template + mode=0644 + - name: copy start script template: src=start.sh.j2 dest=~/docker-cobbler/files/start.sh @@ -66,11 +71,13 @@ copy: src={{ shared_dir }}/keys/admin.pem dest=~/docker-cobbler/files/admin.pem mode=0644 + when: "'chef' in {{ pkg_installer }}" - name: copy chef validator key copy: src={{ shared_dir }}/keys/chef-validator.pem dest=~/docker-cobbler/files/chef-validator.pem mode=0644 + when: "'chef' in {{ pkg_installer }}" - name: cobbler container? command: docker ps -a @@ -97,7 +104,7 @@ when: image.stdout.find('cobbler') == -1 or rebuild - name: fork image and run a new cobbler container - shell: docker run --name=cobbler-dev -d {{ cobbler_port_mapping }} {{ image_volume_mapping }} {{ log_volume_mapping }} -i -t cobbler + shell: docker run --name=cobbler-dev -d {{ cobbler_port_mapping }} {{ image_volume_mapping }} -i -t cobbler - name: extract cobbler ip info shell: echo `docker inspect cobbler-dev | awk -F '"' '/IPAdd/ {print $4}'` > /tmp/ip diff --git a/install/roles/cobbler/templates/Dockerfile.j2 b/install/roles/cobbler/templates/Dockerfile.j2 new file mode 100644 index 0000000..01d0e08 --- /dev/null +++ b/install/roles/cobbler/templates/Dockerfile.j2 @@ -0,0 +1,22 @@ +FROM compassindocker/cobbler + +ADD files/dhcp.template /etc/cobbler/dhcp.template +ADD files/named.template /etc/cobbler/named.template +ADD files/start.sh /root/start.sh +{% if 'chef' in pkg_installer %} +ADD files/admin.pem /etc/cobbler/admin.pem +ADD files/chef-validator.pem /etc/cobbler/chef-validator.pem +{% endif %} +ADD files/fix_ks_server.py /var/lib/cobbler/sync/post/fix_ks_server.py + +RUN chmod +x /root/start.sh +CMD ["/root/start.sh"] + +EXPOSE 80 +EXPOSE 67 67/udp +EXPOSE 69 69/udp +EXPOSE 53 53/udp +EXPOSE 25151 +EXPOSE 443 +EXPOSE 873 + diff --git a/install/roles/cobbler/templates/named.template.j2 b/install/roles/cobbler/templates/named.template.j2 new file mode 100644 index 0000000..6ddb30c --- /dev/null +++ b/install/roles/cobbler/templates/named.template.j2 @@ -0,0 +1,31 @@ +options { + listen-on port 53 { $listen_ip; }; + directory "/var/named"; + dump-file "/var/named/data/cache_dump.db"; + statistics-file "/var/named/data/named_stats.txt"; + memstatistics-file "/var/named/data/named_mem_stats.txt"; + allow-query { 127.0.0.0/8; {{ compass0_subnet }}; }; + recursion yes; +}; + +logging { + channel default_debug { + file "data/named.run"; + severity dynamic; + }; +}; + +#for $zone in $forward_zones +zone "${zone}." { + type master; + file "$zone"; +}; + +#end for +#for $zone, $arpa in $reverse_zones +zone "${arpa}." { + type master; + file "$zone"; +}; + +#end for diff --git a/install/roles/cobbler/templates/start.sh.j2 b/install/roles/cobbler/templates/start.sh.j2 index 8562ff5..f720699 100644 --- a/install/roles/cobbler/templates/start.sh.j2 +++ b/install/roles/cobbler/templates/start.sh.j2 @@ -2,6 +2,7 @@ export ipaddr=$(ip addr show eth0 | grep 'inet ' | awk '{ print $2}'|cut -d/ -f1) sed -i "/^local-address/c\local-address $ipaddr;" /etc/cobbler/dhcp.template +sed -i "s/listen-on port 53 { \$listen_ip; }/listen-on port 53 \{ $ipaddr; \}/g" /etc/cobbler/named.template sed -i "/^server/c\server: $ipaddr" /etc/cobbler/settings sed -i "/^next_server/c\next_server: {{ cobbler_server }}" /etc/cobbler/settings diff --git a/install/roles/compass/tasks/docker.yml b/install/roles/compass/tasks/docker.yml index 09f3d94..9dca3e9 100644 --- a/install/roles/compass/tasks/docker.yml +++ b/install/roles/compass/tasks/docker.yml @@ -13,7 +13,7 @@ file: path=~/docker-compass/files state=directory - name: copy Dockerfile - copy: src=Dockerfile dest=~/docker-compass/Dockerfile mode=0644 + template: src=Dockerfile.j2 dest=~/docker-compass/Dockerfile mode=0644 - name: copy start script copy: src=start.sh @@ -24,6 +24,7 @@ copy: src={{ shared_dir }}/keys/compass.pem dest=~/docker-compass/files/compass.pem mode=0644 + when: "'chef' in {{ pkg_installer }}" - name: copy chef config template: src=chef-icehouse.conf.j2 dest=~/docker-compass/files/chef-icehouse.conf @@ -37,9 +38,6 @@ template: src=compass.setting.j2 dest=~/docker-compass/files/compass.setting mode=0644 -- name: copy Dockerfile - copy: src=Dockerfile dest=~/docker-compass/Dockerfile mode=0644 - - name: get containers command: docker ps -a register: containers diff --git a/install/roles/compass/files/Dockerfile b/install/roles/compass/templates/Dockerfile.j2 similarity index 88% rename from install/roles/compass/files/Dockerfile rename to install/roles/compass/templates/Dockerfile.j2 index 87afaa3..b2a4c96 100644 --- a/install/roles/compass/files/Dockerfile +++ b/install/roles/compass/templates/Dockerfile.j2 @@ -3,8 +3,10 @@ FROM compassindocker/compass ADD files/start.sh /root/start.sh ADD files/compass.setting /etc/compass/setting ADD files/cobbler.conf /etc/compass/os_installer/cobbler.conf +{% if 'chef' in pkg_installer %} ADD files/chef-icehouse.conf /etc/compass/package_installer/chef-icehouse.conf ADD files/compass.pem /etc/compass.pem +{% endif %} CMD ["/root/start.sh"] EXPOSE 80