Merge lp:~clint-fewbar/pyjuju/add-egress-zookeeper-protection into lp:pyjuju

Proposed by Clint Byrum
Status: Needs review
Proposed branch: lp:~clint-fewbar/pyjuju/add-egress-zookeeper-protection
Merge into: lp:pyjuju
Diff against target: 1150 lines (+496/-461)
18 files modified
juju/lib/tests/data/test_prestart (+10/-0)
juju/lib/tests/test_upstart.py (+14/-0)
juju/lib/upstart.py (+6/-1)
juju/providers/common/cloudinit.py (+43/-0)
juju/providers/common/tests/data/cloud_init_bootstrap (+33/-52)
juju/providers/common/tests/data/cloud_init_bootstrap_zookeepers (+45/-52)
juju/providers/common/tests/data/cloud_init_branch (+34/-29)
juju/providers/common/tests/data/cloud_init_branch_trunk (+34/-29)
juju/providers/common/tests/data/cloud_init_distro (+30/-27)
juju/providers/common/tests/data/cloud_init_ppa (+30/-27)
juju/providers/common/tests/data/cloud_init_proposed (+30/-27)
juju/providers/ec2/tests/data/bootstrap_cloud_init (+33/-53)
juju/providers/ec2/tests/data/launch_cloud_init (+29/-27)
juju/providers/ec2/tests/data/launch_cloud_init_branch (+33/-29)
juju/providers/ec2/tests/data/launch_cloud_init_ppa (+29/-27)
juju/providers/orchestra/launch.py (+1/-1)
juju/providers/orchestra/tests/data/bootstrap_user_data (+33/-53)
juju/providers/orchestra/tests/data/launch_user_data (+29/-27)
To merge this branch: bzr merge lp:~clint-fewbar/pyjuju/add-egress-zookeeper-protection
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+125832@code.launchpad.net

Description of the change

protect zookeeper from non-root direct access

Adds pre-start capability to juju.lib.upstart. Also reformatted tests'
cloud-config data to be more readable.

https://codereview.appspot.com/6549051/

To post a comment you must log in.
Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Reviewers: mp+125832_code.launchpad.net,

Message:
Please take a look.

Description:
protect zookeeper from non-root direct access

Adds pre-start capability to juju.lib.upstart. Also reformatted tests'
cloud-config data to be more readable.

https://code.launchpad.net/~clint-fewbar/juju/add-egress-zookeeper-protection/+merge/125832

(do not edit description out of merge proposal)

Please review this at https://codereview.appspot.com/6549051/

Affected files:
   A [revision details]
   A juju/lib/tests/data/test_prestart
   M juju/lib/tests/test_upstart.py
   M juju/lib/upstart.py
   M juju/providers/common/cloudinit.py
   M juju/providers/common/tests/data/cloud_init_bootstrap
   M juju/providers/common/tests/data/cloud_init_bootstrap_zookeepers
   M juju/providers/common/tests/data/cloud_init_branch
   M juju/providers/common/tests/data/cloud_init_branch_trunk
   M juju/providers/common/tests/data/cloud_init_distro
   M juju/providers/common/tests/data/cloud_init_ppa
   M juju/providers/common/tests/data/cloud_init_proposed
   M juju/providers/ec2/tests/data/bootstrap_cloud_init
   M juju/providers/ec2/tests/data/launch_cloud_init
   M juju/providers/ec2/tests/data/launch_cloud_init_branch
   M juju/providers/ec2/tests/data/launch_cloud_init_ppa
   M juju/providers/orchestra/launch.py
   M juju/providers/orchestra/tests/data/bootstrap_user_data
   M juju/providers/orchestra/tests/data/launch_user_data

Revision history for this message
Kapil Thangavelu (hazmat) wrote :

cool. i'll have to brush on my iptables syntax. does the impl here
support service restarts?

https://codereview.appspot.com/6549051/

Unmerged revisions

588. By Clint Byrum

special case localhost because it is needed for client<->zookeeper communication

587. By Clint Byrum

fixing test data to match new pre-start

586. By Clint Byrum

fix pre-start

585. By Clint Byrum

remove debugging aids from tests

584. By Clint Byrum

fixing upstart tests

583. By Clint Byrum

fixing EC2 tests

582. By Clint Byrum

fix orchestra launch tests

581. By Clint Byrum

fixing bootstrap user data

580. By Clint Byrum

Add iptables rule as pre-start for machine agent to prevent non-root access to ZK

579. By Clint Byrum

add prestart to juju.lib.upstart

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'juju/lib/tests/data/test_prestart'
--- juju/lib/tests/data/test_prestart 1970-01-01 00:00:00 +0000
+++ juju/lib/tests/data/test_prestart 2012-09-21 23:19:20 +0000
@@ -0,0 +1,10 @@
1description "uninteresting service"
2author "Juju Team <juju@lists.ubuntu.com>"
3
4start on runlevel [2345]
5stop on runlevel [!2345]
6respawn
7
8
9pre-start exec /bin/true
10exec /bin/false >> /tmp/some-name.output 2>&1
011
=== modified file 'juju/lib/tests/test_upstart.py'
--- juju/lib/tests/test_upstart.py 2012-01-27 16:12:47 +0000
+++ juju/lib/tests/test_upstart.py 2012-09-21 23:19:20 +0000
@@ -183,6 +183,20 @@
183 self.assert_conf("test_basic_install")183 self.assert_conf("test_basic_install")
184184
185 @inlineCallbacks185 @inlineCallbacks
186 def test_prestart(self):
187 """Check a simple UpstartService writes expected conf file"""
188 e = yield self.assertFailure(self.service.install(), ServiceError)
189 self.assertEquals(str(e), "Cannot render .conf: no description set")
190 self.service.set_description("uninteresting service")
191 e = yield self.assertFailure(self.service.install(), ServiceError)
192 self.assertEquals(str(e), "Cannot render .conf: no command set")
193 self.service.set_command("/bin/false")
194 self.service.set_prestart("pre-start exec /bin/true")
195 yield self.service.install()
196
197 self.assert_conf("test_prestart")
198
199 @inlineCallbacks
186 def test_less_basic_install(self):200 def test_less_basic_install(self):
187 """Check conf for a different UpstartService (which sets an env var)"""201 """Check conf for a different UpstartService (which sets an env var)"""
188 self.service.set_description("pew pew pew blam")202 self.service.set_description("pew pew pew blam")
189203
=== modified file 'juju/lib/upstart.py'
--- juju/lib/upstart.py 2012-08-03 10:55:21 +0000
+++ juju/lib/upstart.py 2012-09-21 23:19:20 +0000
@@ -19,7 +19,7 @@
19respawn19respawn
2020
21%s21%s
2222%s
23exec %s >> %s 2>&123exec %s >> %s 2>&1
24"""24"""
2525
@@ -41,6 +41,7 @@
41 self._use_sudo = use_sudo41 self._use_sudo = use_sudo
42 self._output_path = None42 self._output_path = None
43 self._description = None43 self._description = None
44 self._prestart = ''
44 self._environ = {}45 self._environ = {}
45 self._command = None46 self._command = None
4647
@@ -61,6 +62,9 @@
61 def set_environ(self, environ):62 def set_environ(self, environ):
62 self._environ = environ63 self._environ = environ
6364
65 def set_prestart(self, prestart):
66 self._prestart = prestart
67
64 def set_command(self, command):68 def set_command(self, command):
65 self._command = command69 self._command = command
6670
@@ -83,6 +87,7 @@
83 self._description,87 self._description,
84 "\n".join('env %s="%s"' % kv88 "\n".join('env %s="%s"' % kv
85 for kv in sorted(self._environ.items())),89 for kv in sorted(self._environ.items())),
90 self._prestart,
86 self._command,91 self._command,
87 self.output_path)92 self.output_path)
8893
8994
=== modified file 'juju/providers/common/cloudinit.py'
--- juju/providers/common/cloudinit.py 2012-09-10 03:20:20 +0000
+++ juju/providers/common/cloudinit.py 2012-09-21 23:19:20 +0000
@@ -14,6 +14,24 @@
14BRANCH = "branch"14BRANCH = "branch"
15PROPOSED = "proposed"15PROPOSED = "proposed"
1616
17_MACHINE_AGENT_PRESTART = """
18pre-start script
19 # Protects ZooKeeper from access by non-root users.
20%(deleteports)s
21 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
22 iptables -N juju-protect-zookeepers
23%(insertports)s
24%(hostlines)s
25end script
26"""
27
28_MACHINE_AGENT_HOST_IPTABLES = """ iptables -A juju-protect-zookeepers -d %s -m owner \! --uid-owner 0 -j DROP"""
29_MACHINE_AGENT_PORT_IPTABLES = """OUTPUT -p tcp --dport %s -j juju-protect-zookeepers"""
30_MACHINE_AGENT_DPORT_IPTABLES = """ if iptables -C %s ; then
31 iptables -D %s
32 fi"""
33_MACHINE_AGENT_IPORT_IPTABLES = ' iptables -I %s'
34
1735
18def _branch_install_scripts(branch):36def _branch_install_scripts(branch):
19 return [37 return [
@@ -50,6 +68,31 @@
50 service.set_description("Juju machine agent")68 service.set_description("Juju machine agent")
51 service.set_environ(69 service.set_environ(
52 {"JUJU_MACHINE_ID": machine_id, "JUJU_ZOOKEEPER": zookeeper_hosts})70 {"JUJU_MACHINE_ID": machine_id, "JUJU_ZOOKEEPER": zookeeper_hosts})
71
72 zk_hosts_list = zookeeper_hosts.split(',')
73 zk_with_port = [ x.split(':') for x in zk_hosts_list ]
74 host_lines = []
75 ports = set()
76 for zk in zk_with_port:
77 # Can't block localhost because of client<->zk tunnel.
78 if zk[0] == 'localhost':
79 continue
80 if len(zk) >= 2:
81 ports.add(zk[1])
82 host_lines.append(_MACHINE_AGENT_HOST_IPTABLES % (zk[0]))
83 # Only add if there is at least one host to protect
84 if len(host_lines):
85 del_port_lines = []
86 ins_port_lines = []
87 for port in ports:
88 rule = _MACHINE_AGENT_PORT_IPTABLES % (port)
89 del_port_lines.append(_MACHINE_AGENT_DPORT_IPTABLES % (rule, rule))
90 ins_port_lines.append(_MACHINE_AGENT_IPORT_IPTABLES % (rule))
91 service.set_prestart(_MACHINE_AGENT_PRESTART % {
92 'deleteports': "\n".join(del_port_lines),
93 'insertports': "\n".join(ins_port_lines),
94 'hostlines':"\n".join(host_lines)})
95
53 service.set_command(96 service.set_command(
54 "python -m juju.agents.machine --nodaemon "97 "python -m juju.agents.machine --nodaemon "
55 "--logfile /var/log/juju/machine-agent.log "98 "--logfile /var/log/juju/machine-agent.log "
5699
=== modified file 'juju/providers/common/tests/data/cloud_init_bootstrap'
--- juju/providers/common/tests/data/cloud_init_bootstrap 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_bootstrap 2012-09-21 23:19:20 +0000
@@ -6,56 +6,37 @@
6output: {all: '| tee -a /var/log/cloud-init-output.log'}6output: {all: '| tee -a /var/log/cloud-init-output.log'}
7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,
8 default-jre-headless, zookeeper, zookeeperd, juju]8 default-jre-headless, zookeeper, zookeeperd, juju]
9runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju, 'juju-admin initialize9runcmd:
10 --instance-id=token --admin-identity=admin:19vlzY4Vc3q4Ew5OsCwKYqrq1HI= --constraints-data=e2NwdTogJzIwJywgcHJvdmlkZXItdHlwZTogZHVtbXksIHVidW50dS1zZXJpZXM6IGFzdG9uaXNoaW5nfQo=10 - sudo mkdir -p /var/lib/juju
11 --provider-type=dummy', 'cat >> /etc/init/juju-machine-agent.conf <<EOF11 - sudo mkdir -p /var/log/juju
1212 - juju-admin initialize --instance-id=token --admin-identity=admin:19vlzY4Vc3q4Ew5OsCwKYqrq1HI= --constraints-data=e2NwdTogJzIwJywgcHJvdmlkZXItdHlwZTogZHVtbXksIHVidW50dS1zZXJpZXM6IGFzdG9uaXNoaW5nfQo= --provider-type=dummy
13 description "Juju machine agent"13 - |
1414 cat >> /etc/init/juju-machine-agent.conf <<EOF
15 author "Juju Team <juju@lists.ubuntu.com>"15 description "Juju machine agent"
1616 author "Juju Team <juju@lists.ubuntu.com>"
1717
18 start on runlevel [2345]18 start on runlevel [2345]
1919 stop on runlevel [!2345]
20 stop on runlevel [!2345]20 respawn
2121
22 respawn22 env JUJU_MACHINE_ID="passport"
2323 env JUJU_ZOOKEEPER="localhost:2181"
2424
25 env JUJU_MACHINE_ID="passport"25 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
2626 EOF
27 env JUJU_ZOOKEEPER="localhost:2181"27 - /sbin/start juju-machine-agent
2828 - |
2929 cat >> /etc/init/juju-provision-agent.conf <<EOF
30 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log30 description "Juju provisioning agent"
31 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output31 author "Juju Team <juju@lists.ubuntu.com>"
32 2>&132
3333 start on runlevel [2345]
34 EOF34 stop on runlevel [!2345]
3535 respawn
36 ', /sbin/start juju-machine-agent, 'cat >> /etc/init/juju-provision-agent.conf36
37 <<EOF37 env JUJU_ZOOKEEPER="localhost:2181"
3838
39 description "Juju provisioning agent"39 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output 2>&1
4040 EOF
41 author "Juju Team <juju@lists.ubuntu.com>"41 - /sbin/start juju-provision-agent
42
43
44 start on runlevel [2345]
45
46 stop on runlevel [!2345]
47
48 respawn
49
50
51 env JUJU_ZOOKEEPER="localhost:2181"
52
53
54 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log
55 --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output
56 2>&1
57
58 EOF
59
60 ', /sbin/start juju-provision-agent]
61ssh_authorized_keys: [chubb]42ssh_authorized_keys: [chubb]
6243
=== modified file 'juju/providers/common/tests/data/cloud_init_bootstrap_zookeepers'
--- juju/providers/common/tests/data/cloud_init_bootstrap_zookeepers 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_bootstrap_zookeepers 2012-09-21 23:19:20 +0000
@@ -6,56 +6,49 @@
6output: {all: '| tee -a /var/log/cloud-init-output.log'}6output: {all: '| tee -a /var/log/cloud-init-output.log'}
7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,
8 default-jre-headless, zookeeper, zookeeperd, juju]8 default-jre-headless, zookeeper, zookeeperd, juju]
9runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju, 'juju-admin initialize9runcmd:
10 --instance-id=token --admin-identity=admin:19vlzY4Vc3q4Ew5OsCwKYqrq1HI= --constraints-data=e2NwdTogJzIwJywgcHJvdmlkZXItdHlwZTogZHVtbXksIHVidW50dS1zZXJpZXM6IGFzdG9uaXNoaW5nfQo=10 - sudo mkdir -p /var/lib/juju
11 --provider-type=dummy', 'cat >> /etc/init/juju-machine-agent.conf <<EOF11 - sudo mkdir -p /var/log/juju
1212 - juju-admin initialize --instance-id=token --admin-identity=admin:19vlzY4Vc3q4Ew5OsCwKYqrq1HI= --constraints-data=e2NwdTogJzIwJywgcHJvdmlkZXItdHlwZTogZHVtbXksIHVidW50dS1zZXJpZXM6IGFzdG9uaXNoaW5nfQo= --provider-type=dummy
13 description "Juju machine agent"13 - |
1414 cat >> /etc/init/juju-machine-agent.conf <<EOF
15 author "Juju Team <juju@lists.ubuntu.com>"15 description "Juju machine agent"
1616 author "Juju Team <juju@lists.ubuntu.com>"
1717
18 start on runlevel [2345]18 start on runlevel [2345]
1919 stop on runlevel [!2345]
20 stop on runlevel [!2345]20 respawn
2121
22 respawn22 env JUJU_MACHINE_ID="passport"
2323 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181,localhost:2181"
2424
25 env JUJU_MACHINE_ID="passport"25 pre-start script
2626 # Protects ZooKeeper from access by non-root users.
27 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181,localhost:2181"27 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2828 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
2929 fi
30 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log30 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
31 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output31 iptables -N juju-protect-zookeepers
32 2>&132 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3333 iptables -A juju-protect-zookeepers -d cotswold -m owner \! --uid-owner 0 -j DROP
34 EOF34 iptables -A juju-protect-zookeepers -d longleat -m owner \! --uid-owner 0 -j DROP
3535 end script
36 ', /sbin/start juju-machine-agent, 'cat >> /etc/init/juju-provision-agent.conf36
37 <<EOF37 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
3838 EOF
39 description "Juju provisioning agent"39 - /sbin/start juju-machine-agent
4040 - |
41 author "Juju Team <juju@lists.ubuntu.com>"41 cat >> /etc/init/juju-provision-agent.conf <<EOF
4242 description "Juju provisioning agent"
4343 author "Juju Team <juju@lists.ubuntu.com>"
44 start on runlevel [2345]44
4545 start on runlevel [2345]
46 stop on runlevel [!2345]46 stop on runlevel [!2345]
4747 respawn
48 respawn48
4949 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181,localhost:2181"
5050
51 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181,localhost:2181"51 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output 2>&1
5252 EOF
5353 - /sbin/start juju-provision-agent
54 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log
55 --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output
56 2>&1
57
58 EOF
59
60 ', /sbin/start juju-provision-agent]
61ssh_authorized_keys: [chubb]54ssh_authorized_keys: [chubb]
6255
=== modified file 'juju/providers/common/tests/data/cloud_init_branch'
--- juju/providers/common/tests/data/cloud_init_branch 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_branch 2012-09-21 23:19:20 +0000
@@ -7,33 +7,38 @@
7 machine-id: passport}7 machine-id: passport}
8output: {all: '| tee -a /var/log/cloud-init-output.log'}8output: {all: '| tee -a /var/log/cloud-init-output.log'}
9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper]9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper]
10runcmd: [sudo apt-get install -y python-txzookeeper, sudo mkdir -p /usr/lib/juju,10runcmd:
11 'cd /usr/lib/juju && sudo /usr/bin/bzr co lp:blah/juju/blah-blah juju', cd /usr/lib/juju/juju11 - sudo apt-get install -y python-txzookeeper
12 && sudo python setup.py develop, sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju,12 - sudo mkdir -p /usr/lib/juju
13 'cat >> /etc/init/juju-machine-agent.conf <<EOF13 - cd /usr/lib/juju && sudo /usr/bin/bzr co lp:blah/juju/blah-blah juju
1414 - cd /usr/lib/juju/juju && sudo python setup.py develop
15 description "Juju machine agent"15 - sudo mkdir -p /var/lib/juju
1616 - sudo mkdir -p /var/log/juju
17 author "Juju Team <juju@lists.ubuntu.com>"17 - |
1818 cat >> /etc/init/juju-machine-agent.conf <<EOF
1919 description "Juju machine agent"
20 start on runlevel [2345]20 author "Juju Team <juju@lists.ubuntu.com>"
2121
22 stop on runlevel [!2345]22 start on runlevel [2345]
2323 stop on runlevel [!2345]
24 respawn24 respawn
2525
2626 env JUJU_MACHINE_ID="passport"
27 env JUJU_MACHINE_ID="passport"27 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"
2828
29 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"29 pre-start script
3030 # Protects ZooKeeper from access by non-root users.
3131 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
32 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log32 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
33 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output33 fi
34 2>&134 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
3535 iptables -N juju-protect-zookeepers
36 EOF36 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3737 iptables -A juju-protect-zookeepers -d cotswold -m owner \! --uid-owner 0 -j DROP
38 ', /sbin/start juju-machine-agent]38 iptables -A juju-protect-zookeepers -d longleat -m owner \! --uid-owner 0 -j DROP
39 end script
40
41 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
42 EOF
43 - /sbin/start juju-machine-agent
39ssh_authorized_keys: [chubb]44ssh_authorized_keys: [chubb]
4045
=== modified file 'juju/providers/common/tests/data/cloud_init_branch_trunk'
--- juju/providers/common/tests/data/cloud_init_branch_trunk 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_branch_trunk 2012-09-21 23:19:20 +0000
@@ -7,33 +7,38 @@
7 machine-id: passport}7 machine-id: passport}
8output: {all: '| tee -a /var/log/cloud-init-output.log'}8output: {all: '| tee -a /var/log/cloud-init-output.log'}
9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper]9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper]
10runcmd: [sudo apt-get install -y python-txzookeeper, sudo mkdir -p /usr/lib/juju,10runcmd:
11 'cd /usr/lib/juju && sudo /usr/bin/bzr co lp:juju juju', cd /usr/lib/juju/juju &&11 - sudo apt-get install -y python-txzookeeper
12 sudo python setup.py develop, sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju,12 - sudo mkdir -p /usr/lib/juju
13 'cat >> /etc/init/juju-machine-agent.conf <<EOF13 - cd /usr/lib/juju && sudo /usr/bin/bzr co lp:juju juju
1414 - cd /usr/lib/juju/juju && sudo python setup.py develop
15 description "Juju machine agent"15 - sudo mkdir -p /var/lib/juju
1616 - sudo mkdir -p /var/log/juju
17 author "Juju Team <juju@lists.ubuntu.com>"17 - |
1818 cat >> /etc/init/juju-machine-agent.conf <<EOF
1919 description "Juju machine agent"
20 start on runlevel [2345]20 author "Juju Team <juju@lists.ubuntu.com>"
2121
22 stop on runlevel [!2345]22 start on runlevel [2345]
2323 stop on runlevel [!2345]
24 respawn24 respawn
2525
2626 env JUJU_MACHINE_ID="passport"
27 env JUJU_MACHINE_ID="passport"27 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"
2828
29 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"29 pre-start script
3030 # Protects ZooKeeper from access by non-root users.
3131 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
32 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log32 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
33 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output33 fi
34 2>&134 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
3535 iptables -N juju-protect-zookeepers
36 EOF36 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3737 iptables -A juju-protect-zookeepers -d cotswold -m owner \! --uid-owner 0 -j DROP
38 ', /sbin/start juju-machine-agent]38 iptables -A juju-protect-zookeepers -d longleat -m owner \! --uid-owner 0 -j DROP
39 end script
40
41 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
42 EOF
43 - /sbin/start juju-machine-agent
39ssh_authorized_keys: [chubb]44ssh_authorized_keys: [chubb]
4045
=== modified file 'juju/providers/common/tests/data/cloud_init_distro'
--- juju/providers/common/tests/data/cloud_init_distro 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_distro 2012-09-21 23:19:20 +0000
@@ -6,31 +6,34 @@
6output: {all: '| tee -a /var/log/cloud-init-output.log'}6output: {all: '| tee -a /var/log/cloud-init-output.log'}
7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,
8 juju]8 juju]
9runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju, 'cat >> /etc/init/juju-machine-agent.conf9runcmd:
10 <<EOF10 - sudo mkdir -p /var/lib/juju
1111 - sudo mkdir -p /var/log/juju
12 description "Juju machine agent"12 - |
1313 cat >> /etc/init/juju-machine-agent.conf <<EOF
14 author "Juju Team <juju@lists.ubuntu.com>"14 description "Juju machine agent"
1515 author "Juju Team <juju@lists.ubuntu.com>"
1616
17 start on runlevel [2345]17 start on runlevel [2345]
1818 stop on runlevel [!2345]
19 stop on runlevel [!2345]19 respawn
2020
21 respawn21 env JUJU_MACHINE_ID="passport"
2222 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"
2323
24 env JUJU_MACHINE_ID="passport"24 pre-start script
2525 # Protects ZooKeeper from access by non-root users.
26 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"26 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2727 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
2828 fi
29 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log29 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
30 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output30 iptables -N juju-protect-zookeepers
31 2>&131 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3232 iptables -A juju-protect-zookeepers -d cotswold -m owner \! --uid-owner 0 -j DROP
33 EOF33 iptables -A juju-protect-zookeepers -d longleat -m owner \! --uid-owner 0 -j DROP
3434 end script
35 ', /sbin/start juju-machine-agent]35
36 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
37 EOF
38 - /sbin/start juju-machine-agent
36ssh_authorized_keys: [chubb]39ssh_authorized_keys: [chubb]
3740
=== modified file 'juju/providers/common/tests/data/cloud_init_ppa'
--- juju/providers/common/tests/data/cloud_init_ppa 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_ppa 2012-09-21 23:19:20 +0000
@@ -8,31 +8,34 @@
8output: {all: '| tee -a /var/log/cloud-init-output.log'}8output: {all: '| tee -a /var/log/cloud-init-output.log'}
9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,
10 juju]10 juju]
11runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju, 'cat >> /etc/init/juju-machine-agent.conf11runcmd:
12 <<EOF12 - sudo mkdir -p /var/lib/juju
1313 - sudo mkdir -p /var/log/juju
14 description "Juju machine agent"14 - |
1515 cat >> /etc/init/juju-machine-agent.conf <<EOF
16 author "Juju Team <juju@lists.ubuntu.com>"16 description "Juju machine agent"
1717 author "Juju Team <juju@lists.ubuntu.com>"
1818
19 start on runlevel [2345]19 start on runlevel [2345]
2020 stop on runlevel [!2345]
21 stop on runlevel [!2345]21 respawn
2222
23 respawn23 env JUJU_MACHINE_ID="passport"
2424 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"
2525
26 env JUJU_MACHINE_ID="passport"26 pre-start script
2727 # Protects ZooKeeper from access by non-root users.
28 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"28 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2929 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3030 fi
31 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log31 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
32 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output32 iptables -N juju-protect-zookeepers
33 2>&133 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3434 iptables -A juju-protect-zookeepers -d cotswold -m owner \! --uid-owner 0 -j DROP
35 EOF35 iptables -A juju-protect-zookeepers -d longleat -m owner \! --uid-owner 0 -j DROP
3636 end script
37 ', /sbin/start juju-machine-agent]37
38 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
39 EOF
40 - /sbin/start juju-machine-agent
38ssh_authorized_keys: [chubb]41ssh_authorized_keys: [chubb]
3942
=== modified file 'juju/providers/common/tests/data/cloud_init_proposed'
--- juju/providers/common/tests/data/cloud_init_proposed 2012-08-23 16:14:42 +0000
+++ juju/providers/common/tests/data/cloud_init_proposed 2012-09-21 23:19:20 +0000
@@ -7,31 +7,34 @@
7 machine-id: passport}7 machine-id: passport}
8output: {all: '| tee -a /var/log/cloud-init-output.log'}8output: {all: '| tee -a /var/log/cloud-init-output.log'}
9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]
10runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p10runcmd:
11 /var/log/juju, 'cat >> /etc/init/juju-machine-agent.conf <<EOF11 - sudo mkdir -p /var/lib/juju
1212 - sudo mkdir -p /var/log/juju
13 description "Juju machine agent"13 - |
1414 cat >> /etc/init/juju-machine-agent.conf <<EOF
15 author "Juju Team <juju@lists.ubuntu.com>"15 description "Juju machine agent"
1616 author "Juju Team <juju@lists.ubuntu.com>"
1717
18 start on runlevel [2345]18 start on runlevel [2345]
1919 stop on runlevel [!2345]
20 stop on runlevel [!2345]20 respawn
2121
22 respawn22 env JUJU_MACHINE_ID="passport"
2323 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"
2424
25 env JUJU_MACHINE_ID="passport"25 pre-start script
2626 # Protects ZooKeeper from access by non-root users.
27 env JUJU_ZOOKEEPER="cotswold:2181,longleat:2181"27 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2828 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
2929 fi
30 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log30 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
31 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output31 iptables -N juju-protect-zookeepers
32 2>&132 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3333 iptables -A juju-protect-zookeepers -d cotswold -m owner \! --uid-owner 0 -j DROP
34 EOF34 iptables -A juju-protect-zookeepers -d longleat -m owner \! --uid-owner 0 -j DROP
3535 end script
36 ', /sbin/start juju-machine-agent]36
37 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
38 EOF
39 - /sbin/start juju-machine-agent
37ssh_authorized_keys: [chubb]40ssh_authorized_keys: [chubb]
3841
=== modified file 'juju/providers/ec2/tests/data/bootstrap_cloud_init'
--- juju/providers/ec2/tests/data/bootstrap_cloud_init 2012-08-23 16:14:42 +0000
+++ juju/providers/ec2/tests/data/bootstrap_cloud_init 2012-09-21 23:19:20 +0000
@@ -5,57 +5,37 @@
5output: {all: '| tee -a /var/log/cloud-init-output.log'}5output: {all: '| tee -a /var/log/cloud-init-output.log'}
6packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,6packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,
7 default-jre-headless, zookeeper, zookeeperd, juju]7 default-jre-headless, zookeeper, zookeeperd, juju]
8runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju, 'juju-admin initialize8runcmd:
9 --instance-id=$(curl http://169.254.169.254/1.0/meta-data/instance-id) --admin-identity=admin:JbJ6sDGV37EHzbG9FPvttk64cmg=9 - sudo mkdir -p /var/lib/juju
10 --constraints-data=e2NwdTogbnVsbCwgaW5zdGFuY2UtdHlwZTogbTEuc21hbGwsIG1lbTogbnVsbCwgcHJvdmlkZXItdHlwZTogZWMyLCB1YnVudHUtc2VyaWVzOiBzcGxlbmRpZH0K10 - sudo mkdir -p /var/log/juju
11 --provider-type=ec2', 'cat >> /etc/init/juju-machine-agent.conf <<EOF11 - juju-admin initialize --instance-id=$(curl http://169.254.169.254/1.0/meta-data/instance-id) --admin-identity=admin:JbJ6sDGV37EHzbG9FPvttk64cmg= --constraints-data=e2NwdTogbnVsbCwgaW5zdGFuY2UtdHlwZTogbTEuc21hbGwsIG1lbTogbnVsbCwgcHJvdmlkZXItdHlwZTogZWMyLCB1YnVudHUtc2VyaWVzOiBzcGxlbmRpZH0K --provider-type=ec2
1212 - |
13 description "Juju machine agent"13 cat >> /etc/init/juju-machine-agent.conf <<EOF
1414 description "Juju machine agent"
15 author "Juju Team <juju@lists.ubuntu.com>"15 author "Juju Team <juju@lists.ubuntu.com>"
1616
1717 start on runlevel [2345]
18 start on runlevel [2345]18 stop on runlevel [!2345]
1919 respawn
20 stop on runlevel [!2345]20
2121 env JUJU_MACHINE_ID="0"
22 respawn22 env JUJU_ZOOKEEPER="localhost:2181"
2323
2424 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
25 env JUJU_MACHINE_ID="0"25 EOF
2626 - /sbin/start juju-machine-agent
27 env JUJU_ZOOKEEPER="localhost:2181"27 - |
2828 cat >> /etc/init/juju-provision-agent.conf <<EOF
2929 description "Juju provisioning agent"
30 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log30 author "Juju Team <juju@lists.ubuntu.com>"
31 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output31
32 2>&132 start on runlevel [2345]
3333 stop on runlevel [!2345]
34 EOF34 respawn
3535
36 ', /sbin/start juju-machine-agent, 'cat >> /etc/init/juju-provision-agent.conf36 env JUJU_ZOOKEEPER="localhost:2181"
37 <<EOF37
3838 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output 2>&1
39 description "Juju provisioning agent"39 EOF
4040 - /sbin/start juju-provision-agent
41 author "Juju Team <juju@lists.ubuntu.com>"
42
43
44 start on runlevel [2345]
45
46 stop on runlevel [!2345]
47
48 respawn
49
50
51 env JUJU_ZOOKEEPER="localhost:2181"
52
53
54 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log
55 --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output
56 2>&1
57
58 EOF
59
60 ', /sbin/start juju-provision-agent]
61ssh_authorized_keys: [zebra]41ssh_authorized_keys: [zebra]
6242
=== modified file 'juju/providers/ec2/tests/data/launch_cloud_init'
--- juju/providers/ec2/tests/data/launch_cloud_init 2012-08-23 16:14:42 +0000
+++ juju/providers/ec2/tests/data/launch_cloud_init 2012-09-21 23:19:20 +0000
@@ -5,31 +5,33 @@
5 machine-id: '1'}5 machine-id: '1'}
6output: {all: '| tee -a /var/log/cloud-init-output.log'}6output: {all: '| tee -a /var/log/cloud-init-output.log'}
7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]7packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]
8runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p8runcmd:
9 /var/log/juju, 'cat >> /etc/init/juju-machine-agent.conf <<EOF9 - sudo mkdir -p /var/lib/juju
1010 - sudo mkdir -p /var/log/juju
11 description "Juju machine agent"11 - |
1212 cat >> /etc/init/juju-machine-agent.conf <<EOF
13 author "Juju Team <juju@lists.ubuntu.com>"13 description "Juju machine agent"
1414 author "Juju Team <juju@lists.ubuntu.com>"
1515
16 start on runlevel [2345]16 start on runlevel [2345]
1717 stop on runlevel [!2345]
18 stop on runlevel [!2345]18 respawn
1919
20 respawn20 env JUJU_MACHINE_ID="1"
2121 env JUJU_ZOOKEEPER="es.example.internal:2181"
2222
23 env JUJU_MACHINE_ID="1"23 pre-start script
2424 # Protects ZooKeeper from access by non-root users.
25 env JUJU_ZOOKEEPER="es.example.internal:2181"25 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2626 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
2727 fi
28 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log28 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
29 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output29 iptables -N juju-protect-zookeepers
30 2>&130 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3131 iptables -A juju-protect-zookeepers -d es.example.internal -m owner \! --uid-owner 0 -j DROP
32 EOF32 end script
3333
34 ', /sbin/start juju-machine-agent]34 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
35 EOF
36 - /sbin/start juju-machine-agent
35ssh_authorized_keys: [zebra]37ssh_authorized_keys: [zebra]
3638
=== modified file 'juju/providers/ec2/tests/data/launch_cloud_init_branch'
--- juju/providers/ec2/tests/data/launch_cloud_init_branch 2012-08-23 16:14:42 +0000
+++ juju/providers/ec2/tests/data/launch_cloud_init_branch 2012-09-21 23:19:20 +0000
@@ -7,33 +7,37 @@
7 machine-id: '1'}7 machine-id: '1'}
8output: {all: '| tee -a /var/log/cloud-init-output.log'}8output: {all: '| tee -a /var/log/cloud-init-output.log'}
9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper]9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper]
10runcmd: [sudo apt-get install -y python-txzookeeper, sudo mkdir -p /usr/lib/juju,10runcmd:
11 'cd /usr/lib/juju && sudo /usr/bin/bzr co lp:~wizard/juju-juicebar juju', cd /usr/lib/juju/juju11 - sudo apt-get install -y python-txzookeeper
12 && sudo python setup.py develop, sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju,12 - sudo mkdir -p /usr/lib/juju
13 'cat >> /etc/init/juju-machine-agent.conf <<EOF13 - cd /usr/lib/juju && sudo /usr/bin/bzr co lp:~wizard/juju-juicebar juju
1414 - cd /usr/lib/juju/juju && sudo python setup.py develop
15 description "Juju machine agent"15 - sudo mkdir -p /var/lib/juju
1616 - sudo mkdir -p /var/log/juju
17 author "Juju Team <juju@lists.ubuntu.com>"17 - |
1818 cat >> /etc/init/juju-machine-agent.conf <<EOF
1919 description "Juju machine agent"
20 start on runlevel [2345]20 author "Juju Team <juju@lists.ubuntu.com>"
2121
22 stop on runlevel [!2345]22 start on runlevel [2345]
2323 stop on runlevel [!2345]
24 respawn24 respawn
2525
2626 env JUJU_MACHINE_ID="1"
27 env JUJU_MACHINE_ID="1"27 env JUJU_ZOOKEEPER="es.example.internal:2181"
2828
29 env JUJU_ZOOKEEPER="es.example.internal:2181"29 pre-start script
3030 # Protects ZooKeeper from access by non-root users.
3131 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
32 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log32 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
33 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output33 fi
34 2>&134 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
3535 iptables -N juju-protect-zookeepers
36 EOF36 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3737 iptables -A juju-protect-zookeepers -d es.example.internal -m owner \! --uid-owner 0 -j DROP
38 ', /sbin/start juju-machine-agent]38 end script
39
40 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
41 EOF
42 - /sbin/start juju-machine-agent
39ssh_authorized_keys: [zebra]43ssh_authorized_keys: [zebra]
4044
=== modified file 'juju/providers/ec2/tests/data/launch_cloud_init_ppa'
--- juju/providers/ec2/tests/data/launch_cloud_init_ppa 2012-08-23 16:14:42 +0000
+++ juju/providers/ec2/tests/data/launch_cloud_init_ppa 2012-09-21 23:19:20 +0000
@@ -7,31 +7,33 @@
7 machine-id: '1'}7 machine-id: '1'}
8output: {all: '| tee -a /var/log/cloud-init-output.log'}8output: {all: '| tee -a /var/log/cloud-init-output.log'}
9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]9packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]
10runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p10runcmd:
11 /var/log/juju, 'cat >> /etc/init/juju-machine-agent.conf <<EOF11 - sudo mkdir -p /var/lib/juju
1212 - sudo mkdir -p /var/log/juju
13 description "Juju machine agent"13 - |
1414 cat >> /etc/init/juju-machine-agent.conf <<EOF
15 author "Juju Team <juju@lists.ubuntu.com>"15 description "Juju machine agent"
1616 author "Juju Team <juju@lists.ubuntu.com>"
1717
18 start on runlevel [2345]18 start on runlevel [2345]
1919 stop on runlevel [!2345]
20 stop on runlevel [!2345]20 respawn
2121
22 respawn22 env JUJU_MACHINE_ID="1"
2323 env JUJU_ZOOKEEPER="es.example.internal:2181"
2424
25 env JUJU_MACHINE_ID="1"25 pre-start script
2626 # Protects ZooKeeper from access by non-root users.
27 env JUJU_ZOOKEEPER="es.example.internal:2181"27 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2828 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
2929 fi
30 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log30 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
31 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output31 iptables -N juju-protect-zookeepers
32 2>&132 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3333 iptables -A juju-protect-zookeepers -d es.example.internal -m owner \! --uid-owner 0 -j DROP
34 EOF34 end script
3535
36 ', /sbin/start juju-machine-agent]36 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
37 EOF
38 - /sbin/start juju-machine-agent
37ssh_authorized_keys: [zebra]39ssh_authorized_keys: [zebra]
3840
=== modified file 'juju/providers/orchestra/launch.py'
--- juju/providers/orchestra/launch.py 2012-04-12 01:01:57 +0000
+++ juju/providers/orchestra/launch.py 2012-09-21 23:19:20 +0000
@@ -46,7 +46,7 @@
46 info = yield cobbler.start_system(46 info = yield cobbler.start_system(
47 instance_id, machine_id, series, cloud_init.render())47 instance_id, machine_id, series, cloud_init.render())
48 returnValue([machine_from_dict(info)])48 returnValue([machine_from_dict(info)])
49 except Exception:49 except Exception, e:
50 log.exception(50 log.exception(
51 "Failed to launch machine %s; attempting to revert.",51 "Failed to launch machine %s; attempting to revert.",
52 instance_id)52 instance_id)
5353
=== modified file 'juju/providers/orchestra/tests/data/bootstrap_user_data'
--- juju/providers/orchestra/tests/data/bootstrap_user_data 2012-08-23 16:14:42 +0000
+++ juju/providers/orchestra/tests/data/bootstrap_user_data 2012-09-21 23:19:20 +0000
@@ -5,57 +5,37 @@
5output: {all: '| tee -a /var/log/cloud-init-output.log'}5output: {all: '| tee -a /var/log/cloud-init-output.log'}
6packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,6packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper,
7 default-jre-headless, zookeeper, zookeeperd, juju]7 default-jre-headless, zookeeper, zookeeperd, juju]
8runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p /var/log/juju, 'juju-admin initialize8runcmd:
9 --instance-id=winston-uid --admin-identity=admin:qRBXC1ubEEUqRL6wcBhgmc9xkaY=9 - sudo mkdir -p /var/lib/juju
10 --constraints-data=e29yY2hlc3RyYS1jbGFzc2VzOiAnZm9vLGJhcicsIHByb3ZpZGVyLXR5cGU6IG9yY2hlc3RyYSwgdWJ1bnR1LXNlcmllczogYml6YXJyZX0K10 - sudo mkdir -p /var/log/juju
11 --provider-type=orchestra', 'cat >> /etc/init/juju-machine-agent.conf <<EOF11 - juju-admin initialize --instance-id=winston-uid --admin-identity=admin:qRBXC1ubEEUqRL6wcBhgmc9xkaY= --constraints-data=e29yY2hlc3RyYS1jbGFzc2VzOiAnZm9vLGJhcicsIHByb3ZpZGVyLXR5cGU6IG9yY2hlc3RyYSwgdWJ1bnR1LXNlcmllczogYml6YXJyZX0K --provider-type=orchestra
1212 - |
13 description "Juju machine agent"13 cat >> /etc/init/juju-machine-agent.conf <<EOF
1414 description "Juju machine agent"
15 author "Juju Team <juju@lists.ubuntu.com>"15 author "Juju Team <juju@lists.ubuntu.com>"
1616
1717 start on runlevel [2345]
18 start on runlevel [2345]18 stop on runlevel [!2345]
1919 respawn
20 stop on runlevel [!2345]20
2121 env JUJU_MACHINE_ID="0"
22 respawn22 env JUJU_ZOOKEEPER="localhost:2181"
2323
2424 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
25 env JUJU_MACHINE_ID="0"25 EOF
2626 - /sbin/start juju-machine-agent
27 env JUJU_ZOOKEEPER="localhost:2181"27 - |
2828 cat >> /etc/init/juju-provision-agent.conf <<EOF
2929 description "Juju provisioning agent"
30 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log30 author "Juju Team <juju@lists.ubuntu.com>"
31 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output31
32 2>&132 start on runlevel [2345]
3333 stop on runlevel [!2345]
34 EOF34 respawn
3535
36 ', /sbin/start juju-machine-agent, 'cat >> /etc/init/juju-provision-agent.conf36 env JUJU_ZOOKEEPER="localhost:2181"
37 <<EOF37
3838 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output 2>&1
39 description "Juju provisioning agent"39 EOF
4040 - /sbin/start juju-provision-agent
41 author "Juju Team <juju@lists.ubuntu.com>"
42
43
44 start on runlevel [2345]
45
46 stop on runlevel [!2345]
47
48 respawn
49
50
51 env JUJU_ZOOKEEPER="localhost:2181"
52
53
54 exec python -m juju.agents.provision --nodaemon --logfile /var/log/juju/provision-agent.log
55 --session-file /var/run/juju/provision-agent.zksession >> /tmp/juju-provision-agent.output
56 2>&1
57
58 EOF
59
60 ', /sbin/start juju-provision-agent]
61ssh_authorized_keys: [this-is-a-public-key]41ssh_authorized_keys: [this-is-a-public-key]
6242
=== modified file 'juju/providers/orchestra/tests/data/launch_user_data'
--- juju/providers/orchestra/tests/data/launch_user_data 2012-08-23 16:14:42 +0000
+++ juju/providers/orchestra/tests/data/launch_user_data 2012-09-21 23:19:20 +0000
@@ -4,31 +4,33 @@
4 machine-id: '42'}4 machine-id: '42'}
5output: {all: '| tee -a /var/log/cloud-init-output.log'}5output: {all: '| tee -a /var/log/cloud-init-output.log'}
6packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]6packages: [bzr, byobu, tmux, python-setuptools, python-twisted, python-txaws, python-zookeeper, juju]
7runcmd: [sudo mkdir -p /var/lib/juju, sudo mkdir -p7runcmd:
8 /var/log/juju, 'cat >> /etc/init/juju-machine-agent.conf <<EOF8 - sudo mkdir -p /var/lib/juju
99 - sudo mkdir -p /var/log/juju
10 description "Juju machine agent"10 - |
1111 cat >> /etc/init/juju-machine-agent.conf <<EOF
12 author "Juju Team <juju@lists.ubuntu.com>"12 description "Juju machine agent"
1313 author "Juju Team <juju@lists.ubuntu.com>"
1414
15 start on runlevel [2345]15 start on runlevel [2345]
1616 stop on runlevel [!2345]
17 stop on runlevel [!2345]17 respawn
1818
19 respawn19 env JUJU_MACHINE_ID="42"
2020 env JUJU_ZOOKEEPER="jennifer:2181"
2121
22 env JUJU_MACHINE_ID="42"22 pre-start script
2323 # Protects ZooKeeper from access by non-root users.
24 env JUJU_ZOOKEEPER="jennifer:2181"24 if iptables -C OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers ; then
2525 iptables -D OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
2626 fi
27 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log27 iptables -F juju-protect-zookeepers && iptables -X juju-protect-zookeepers || :
28 --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output28 iptables -N juju-protect-zookeepers
29 2>&129 iptables -I OUTPUT -p tcp --dport 2181 -j juju-protect-zookeepers
3030 iptables -A juju-protect-zookeepers -d jennifer -m owner \! --uid-owner 0 -j DROP
31 EOF31 end script
3232
33 ', /sbin/start juju-machine-agent]33 exec python -m juju.agents.machine --nodaemon --logfile /var/log/juju/machine-agent.log --session-file /var/run/juju/machine-agent.zksession >> /tmp/juju-machine-agent.output 2>&1
34 EOF
35 - /sbin/start juju-machine-agent
34ssh_authorized_keys: [this-is-a-public-key]36ssh_authorized_keys: [this-is-a-public-key]

Subscribers

People subscribed via source and target branches

to status/vote changes: