imagemaster3000 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/imagemaster3000.yml +1 -1
- data/imagemaster3000.gemspec +1 -0
- data/lib/imagemaster3000/cli.rb +4 -7
- data/lib/imagemaster3000/definitions/downloader.rb +23 -0
- data/lib/imagemaster3000/definitions.rb +1 -0
- data/lib/imagemaster3000/main_process.rb +29 -12
- data/lib/imagemaster3000/version.rb +1 -1
- metadata +17 -13
- data/config/definitions/centos-7.json +0 -29
- data/config/definitions/debian-8.json +0 -33
- data/config/definitions/debian-9.json +0 -33
- data/config/definitions/files/.gitkeep +0 -0
- data/config/definitions/files/centos-cloud.cfg +0 -95
- data/config/definitions/files/debian-cloud.cfg +0 -101
- data/config/definitions/files/serial-getty@ttyS0.service +0 -35
- data/config/definitions/files/ttyS0.conf +0 -22
- data/config/definitions/files/ubuntu-cloud.cfg +0 -111
- data/config/definitions/ubuntu-14.04.json +0 -30
- data/config/definitions/ubuntu-16.04.json +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56263bdfc041537d665f88ad33036b4bfab8b9cc
|
4
|
+
data.tar.gz: 2912e02dc7803f9f060fc9cb268bc53309c059a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ab9ffb20c53b9cc4ba76ccc9c60c953025374ba8c2e97aba4bdbae4e6932c240ca966206c2865cf96cd2c1417df4f6de7b3a1204e59dd4f32ce3544653efb46
|
7
|
+
data.tar.gz: 031a6ecb0363b7f643d0f4a81d4dc89100c5b337fb9c52505ffe7bf4a69e536c3cfcfaac5d068ca448557bc423ff109ee2a0ab2276212109c82db47d03cc8ed2
|
data/config/imagemaster3000.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
imagemaster3000:
|
2
|
-
definitions-
|
2
|
+
definitions-git-repo: # Definitions in this git repository are used to download and modify images
|
3
3
|
image-dir: /var/spool/imagemaster3000/ # Directory where to temporarily store images
|
4
4
|
image-list: /var/spool/imagemaster3000/imagemaster3000.list # Name and path of generated image list
|
5
5
|
endpoint: http://localhost/ # Endpoint where image list will be available
|
data/imagemaster3000.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
22
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
23
|
+
spec.add_development_dependency 'git', '~> 1.3'
|
23
24
|
spec.add_development_dependency 'rake', '~> 12.0'
|
24
25
|
spec.add_development_dependency 'rspec', '~> 3.5'
|
25
26
|
spec.add_development_dependency 'rubocop', '~> 0.48'
|
data/lib/imagemaster3000/cli.rb
CHANGED
@@ -17,10 +17,11 @@ module Imagemaster3000
|
|
17
17
|
type: :boolean,
|
18
18
|
desc: 'Runs in debug mode'
|
19
19
|
|
20
|
-
method_option :'definitions-
|
21
|
-
default: Imagemaster3000::Settings['definitions-
|
20
|
+
method_option :'definitions-git-repo',
|
21
|
+
default: Imagemaster3000::Settings['definitions-git-repo'],
|
22
22
|
type: :string,
|
23
|
-
|
23
|
+
required: true,
|
24
|
+
desc: 'Definitions in this git repository are used to download and modify images'
|
24
25
|
method_option :'image-dir',
|
25
26
|
default: Imagemaster3000::Settings['image-dir'],
|
26
27
|
type: :string,
|
@@ -83,10 +84,6 @@ module Imagemaster3000
|
|
83
84
|
def initialize_configuration(options)
|
84
85
|
Imagemaster3000::Settings.clear
|
85
86
|
Imagemaster3000::Settings.merge! options.to_hash
|
86
|
-
|
87
|
-
gem_dir = File.realdirpath(File.join(File.dirname(__FILE__), '..', '..'))
|
88
|
-
Imagemaster3000::Settings[:'definitions-dir'] = File.join(gem_dir, 'config', 'definitions') \
|
89
|
-
unless Imagemaster3000::Settings[:'definitions-dir']
|
90
87
|
end
|
91
88
|
|
92
89
|
def initialize_logger
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'git'
|
2
|
+
require 'tmpdir'
|
3
|
+
|
4
|
+
module Imagemaster3000
|
5
|
+
module Definitions
|
6
|
+
class Downloader
|
7
|
+
def initialize(git_repository)
|
8
|
+
@dir = Dir.mktmpdir 'imagemaster3000-'
|
9
|
+
logger.debug "Downloading definitions repository #{git_repository}"
|
10
|
+
@git = Git.clone(git_repository, 'definitions', path: @dir)
|
11
|
+
end
|
12
|
+
|
13
|
+
def path
|
14
|
+
@git.dir.path
|
15
|
+
end
|
16
|
+
|
17
|
+
def clean
|
18
|
+
logger.debug "Cleaning definitions #{@dir}"
|
19
|
+
FileUtils.remove_entry @dir
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,25 +1,42 @@
|
|
1
1
|
module Imagemaster3000
|
2
2
|
class MainProcess
|
3
|
-
|
4
|
-
|
5
|
-
images = Imagemaster3000::Definitions::Parser.parse_image_definitions
|
6
|
-
logger.debug 'Processing images'
|
7
|
-
images.each { |image| process_image image }
|
3
|
+
attr_accessor :definitions
|
4
|
+
attr_accessor :images
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
def run
|
7
|
+
process_definitions
|
8
|
+
process_images
|
9
|
+
generate_image_list
|
12
10
|
Imagemaster3000::Cleaner.clean
|
13
11
|
ensure
|
14
12
|
Imagemaster3000::Cleaner.write_clean_file images.map(&:local_filename)
|
13
|
+
definitions.clean
|
15
14
|
end
|
16
15
|
|
17
16
|
private
|
18
17
|
|
19
|
-
def
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
def process_definitions
|
19
|
+
logger.debug "Download definitions from #{Imagemaster3000::Settings['definitions-git-repo'].inspect}"
|
20
|
+
@definitions = Imagemaster3000::Definitions::Downloader.new Imagemaster3000::Settings['definitions-git-repo']
|
21
|
+
Imagemaster3000::Settings['definitions-dir'] = definitions.path
|
22
|
+
logger.debug 'Loading images from definitions'
|
23
|
+
@images = Imagemaster3000::Definitions::Parser.parse_image_definitions
|
24
|
+
end
|
25
|
+
|
26
|
+
def process_images
|
27
|
+
logger.debug 'Processing images'
|
28
|
+
images.each do |image|
|
29
|
+
logger.debug "Processing image #{image.name.inspect}"
|
30
|
+
image.download
|
31
|
+
image.verify! if image.respond_to? :verify!
|
32
|
+
image.actions.each { |action| action.run image.local_filename } unless image.actions.blank?
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def generate_image_list
|
37
|
+
logger.debug 'Generating image list'
|
38
|
+
image_list = Imagemaster3000::ImageList::Signer.sign(Imagemaster3000::ImageList::Generator.generate(images))
|
39
|
+
File.write Imagemaster3000::Settings[:'image-list'], image_list
|
23
40
|
end
|
24
41
|
end
|
25
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imagemaster3000
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michal Kimle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.15'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: git
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -274,17 +288,6 @@ files:
|
|
274
288
|
- README.md
|
275
289
|
- Rakefile
|
276
290
|
- bin/imagemaster3000
|
277
|
-
- config/definitions/centos-7.json
|
278
|
-
- config/definitions/debian-8.json
|
279
|
-
- config/definitions/debian-9.json
|
280
|
-
- config/definitions/files/.gitkeep
|
281
|
-
- config/definitions/files/centos-cloud.cfg
|
282
|
-
- config/definitions/files/debian-cloud.cfg
|
283
|
-
- config/definitions/files/serial-getty@ttyS0.service
|
284
|
-
- config/definitions/files/ttyS0.conf
|
285
|
-
- config/definitions/files/ubuntu-cloud.cfg
|
286
|
-
- config/definitions/ubuntu-14.04.json
|
287
|
-
- config/definitions/ubuntu-16.04.json
|
288
291
|
- config/imagemaster3000.yml
|
289
292
|
- imagemaster3000.gemspec
|
290
293
|
- lib/imagemaster3000.rb
|
@@ -294,6 +297,7 @@ files:
|
|
294
297
|
- lib/imagemaster3000/cleaner.rb
|
295
298
|
- lib/imagemaster3000/cli.rb
|
296
299
|
- lib/imagemaster3000/definitions.rb
|
300
|
+
- lib/imagemaster3000/definitions/downloader.rb
|
297
301
|
- lib/imagemaster3000/definitions/parser.rb
|
298
302
|
- lib/imagemaster3000/definitions/schemas/imagemaster3000-definition-schema.json
|
299
303
|
- lib/imagemaster3000/entities.rb
|
@@ -1,29 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name":"METACLOUD-CentOS-7-x86_64@metacloud-dukan",
|
3
|
-
"url":"http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1704.qcow2",
|
4
|
-
"verification":{
|
5
|
-
"signature":{
|
6
|
-
"clearsign":{
|
7
|
-
"file":"http://cloud.centos.org/centos/7/images/sha256sum.txt.asc"
|
8
|
-
}
|
9
|
-
},
|
10
|
-
"hash":{
|
11
|
-
"function":"SHA256"
|
12
|
-
}
|
13
|
-
},
|
14
|
-
"distribution":"CentOS",
|
15
|
-
"version":"7.3-1704",
|
16
|
-
"actions":{
|
17
|
-
"copy":[
|
18
|
-
{
|
19
|
-
"source":"centos-cloud.cfg",
|
20
|
-
"target":"/etc/cloud/",
|
21
|
-
"name":"cloud.cfg"
|
22
|
-
},
|
23
|
-
{
|
24
|
-
"source":"serial-getty@ttyS0.service",
|
25
|
-
"target":"/etc/systemd/system/getty.target.wants/"
|
26
|
-
}
|
27
|
-
]
|
28
|
-
}
|
29
|
-
}
|
@@ -1,33 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name":"METACLOUD-Debian-8-x86_64@metacloud-dukan",
|
3
|
-
"url":"https://cdimage.debian.org/cdimage/openstack/8.8.2-20170620/debian-8.8.2-20170620-openstack-amd64.qcow2",
|
4
|
-
"verification":{
|
5
|
-
"signature":{
|
6
|
-
"detached":{
|
7
|
-
"signature": "https://cdimage.debian.org/cdimage/openstack/8.8.2-20170620/SHA256SUMS.sign",
|
8
|
-
"data": "https://cdimage.debian.org/cdimage/openstack/8.8.2-20170620/SHA256SUMS"
|
9
|
-
}
|
10
|
-
},
|
11
|
-
"hash":{
|
12
|
-
"function":"SHA256"
|
13
|
-
}
|
14
|
-
},
|
15
|
-
"distribution":"Debian",
|
16
|
-
"version":"8.8.2",
|
17
|
-
"actions":{
|
18
|
-
"remove":[
|
19
|
-
"/etc/cloud/cloud.cfg.d/90_dpkg.cfg"
|
20
|
-
],
|
21
|
-
"copy":[
|
22
|
-
{
|
23
|
-
"source":"debian-cloud.cfg",
|
24
|
-
"target":"/etc/cloud/",
|
25
|
-
"name":"cloud.cfg"
|
26
|
-
},
|
27
|
-
{
|
28
|
-
"source":"serial-getty@ttyS0.service",
|
29
|
-
"target":"/etc/systemd/system/getty.target.wants/"
|
30
|
-
}
|
31
|
-
]
|
32
|
-
}
|
33
|
-
}
|
@@ -1,33 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name":"METACLOUD-Debian-9-x86_64@metacloud-dukan",
|
3
|
-
"url":"https://cdimage.debian.org/cdimage/openstack/9.0.2-20170623/debian-9.0.2-20170623-openstack-amd64.qcow2",
|
4
|
-
"verification":{
|
5
|
-
"signature":{
|
6
|
-
"detached":{
|
7
|
-
"signature": "https://cdimage.debian.org/cdimage/openstack/9.0.2-20170623/SHA256SUMS.sign",
|
8
|
-
"data": "https://cdimage.debian.org/cdimage/openstack/9.0.2-20170623/SHA256SUMS"
|
9
|
-
}
|
10
|
-
},
|
11
|
-
"hash":{
|
12
|
-
"function":"SHA256"
|
13
|
-
}
|
14
|
-
},
|
15
|
-
"distribution":"Debian",
|
16
|
-
"version":"9.0.1",
|
17
|
-
"actions":{
|
18
|
-
"remove":[
|
19
|
-
"/etc/cloud/cloud.cfg.d/90_dpkg.cfg"
|
20
|
-
],
|
21
|
-
"copy":[
|
22
|
-
{
|
23
|
-
"source":"debian-cloud.cfg",
|
24
|
-
"target":"/etc/cloud/",
|
25
|
-
"name":"cloud.cfg"
|
26
|
-
},
|
27
|
-
{
|
28
|
-
"source":"serial-getty@ttyS0.service",
|
29
|
-
"target":"/etc/systemd/system/getty.target.wants/"
|
30
|
-
}
|
31
|
-
]
|
32
|
-
}
|
33
|
-
}
|
File without changes
|
@@ -1,95 +0,0 @@
|
|
1
|
-
# If this is set, 'root' will not be able to ssh in and they
|
2
|
-
# will get a message to login instead as the above $user (ubuntu)
|
3
|
-
disable_root: False
|
4
|
-
user: root
|
5
|
-
ssh_pwauth: False
|
6
|
-
ssh_deletekeys: True
|
7
|
-
ssh_genkeytypes: ['rsa', 'dsa']
|
8
|
-
ssh_svcname: sshd
|
9
|
-
|
10
|
-
# This will cause the set+update hostname module to not operate (if true)
|
11
|
-
preserve_hostname: false
|
12
|
-
cc_ready_cmd: ['/bin/true']
|
13
|
-
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
|
14
|
-
syslog_fix_perms: ~
|
15
|
-
manage_etc_hosts: True
|
16
|
-
|
17
|
-
# Update and upgrade system on first boot
|
18
|
-
apt_preserve_sources_list: True
|
19
|
-
package_update: True
|
20
|
-
package_upgrade: True
|
21
|
-
package_reboot_if_required: True
|
22
|
-
|
23
|
-
# work only with OpenNebula, use network based datasource,
|
24
|
-
# so that we can successfully resolve IPv4 based hostname
|
25
|
-
disable_ec2_metadata: True
|
26
|
-
datasource_list: ['OpenNebula']
|
27
|
-
datasource:
|
28
|
-
OpenNebula:
|
29
|
-
dsmode: net
|
30
|
-
|
31
|
-
# The modules that run in the 'init' stage
|
32
|
-
cloud_init_modules:
|
33
|
-
- migrator
|
34
|
-
- seed_random
|
35
|
-
- bootcmd
|
36
|
-
- write-files
|
37
|
-
- growpart
|
38
|
-
- resizefs
|
39
|
-
- set_hostname
|
40
|
-
- update_hostname
|
41
|
-
- update_etc_hosts
|
42
|
-
- ca-certs
|
43
|
-
- rsyslog
|
44
|
-
- users-groups
|
45
|
-
- ssh
|
46
|
-
|
47
|
-
# The modules that run in the 'config' stage
|
48
|
-
cloud_config_modules:
|
49
|
-
# Emit the cloud config ready event
|
50
|
-
# this can be used by upstart jobs for 'start on cloud-config'.
|
51
|
-
- emit_upstart
|
52
|
-
- disk_setup
|
53
|
-
- mounts
|
54
|
-
- ssh-import-id
|
55
|
-
- locale
|
56
|
-
- set-passwords
|
57
|
-
- grub-dpkg
|
58
|
-
- apt-pipelining
|
59
|
-
- apt-configure
|
60
|
-
- package-update-upgrade-install
|
61
|
-
- landscape
|
62
|
-
- timezone
|
63
|
-
- puppet
|
64
|
-
- chef
|
65
|
-
- salt-minion
|
66
|
-
- mcollective
|
67
|
-
- disable-ec2-metadata
|
68
|
-
- runcmd
|
69
|
-
- byobu
|
70
|
-
|
71
|
-
# The modules that run in the 'final' stage
|
72
|
-
cloud_final_modules:
|
73
|
-
- rightscale_userdata
|
74
|
-
- scripts-per-once
|
75
|
-
- scripts-per-boot
|
76
|
-
- scripts-per-instance
|
77
|
-
- scripts-user
|
78
|
-
- ssh-authkey-fingerprints
|
79
|
-
- keys-to-console
|
80
|
-
- phone-home
|
81
|
-
- final-message
|
82
|
-
- power-state-change
|
83
|
-
|
84
|
-
# System and/or distro specific settings
|
85
|
-
# (not accessible to handlers/transforms)
|
86
|
-
system_info:
|
87
|
-
# This will affect which distro class gets used
|
88
|
-
distro: rhel
|
89
|
-
# Other config here will be given to the distro class and/or path classes
|
90
|
-
paths:
|
91
|
-
cloud_dir: /var/lib/cloud/
|
92
|
-
templates_dir: /etc/cloud/templates/
|
93
|
-
ssh_svcname: sshd
|
94
|
-
|
95
|
-
# vim:syntax=yaml
|
@@ -1,101 +0,0 @@
|
|
1
|
-
# If this is set, 'root' will not be able to ssh in and they
|
2
|
-
# will get a message to login instead as the above $user (ubuntu)
|
3
|
-
disable_root: False
|
4
|
-
user: root
|
5
|
-
ssh_pwauth: False
|
6
|
-
ssh_deletekeys: True
|
7
|
-
ssh_genkeytypes: ['rsa', 'dsa']
|
8
|
-
ssh_svcname: sshd
|
9
|
-
|
10
|
-
# This will cause the set+update hostname module to not operate (if true)
|
11
|
-
preserve_hostname: false
|
12
|
-
cc_ready_cmd: ['/bin/true']
|
13
|
-
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
|
14
|
-
syslog_fix_perms: ~
|
15
|
-
manage_etc_hosts: True
|
16
|
-
|
17
|
-
# Update and upgrade system on first boot
|
18
|
-
apt_preserve_sources_list: True
|
19
|
-
package_update: True
|
20
|
-
package_upgrade: True
|
21
|
-
package_reboot_if_required: True
|
22
|
-
|
23
|
-
# work only with OpenNebula, use network based datasource,
|
24
|
-
# so that we can successfully resolve IPv4 based hostname
|
25
|
-
disable_ec2_metadata: True
|
26
|
-
datasource_list: ['OpenNebula']
|
27
|
-
datasource:
|
28
|
-
OpenNebula:
|
29
|
-
dsmode: net
|
30
|
-
|
31
|
-
# The modules that run in the 'init' stage
|
32
|
-
cloud_init_modules:
|
33
|
-
- migrator
|
34
|
-
- seed_random
|
35
|
-
- bootcmd
|
36
|
-
- write-files
|
37
|
-
- growpart
|
38
|
-
- resizefs
|
39
|
-
- set_hostname
|
40
|
-
- update_hostname
|
41
|
-
- update_etc_hosts
|
42
|
-
- ca-certs
|
43
|
-
- rsyslog
|
44
|
-
- users-groups
|
45
|
-
- ssh
|
46
|
-
|
47
|
-
# The modules that run in the 'config' stage
|
48
|
-
cloud_config_modules:
|
49
|
-
# Emit the cloud config ready event
|
50
|
-
# this can be used by upstart jobs for 'start on cloud-config'.
|
51
|
-
- emit_upstart
|
52
|
-
- disk_setup
|
53
|
-
- mounts
|
54
|
-
- ssh-import-id
|
55
|
-
- locale
|
56
|
-
- set-passwords
|
57
|
-
- grub-dpkg
|
58
|
-
- apt-pipelining
|
59
|
-
- apt-configure
|
60
|
-
- package-update-upgrade-install
|
61
|
-
- landscape
|
62
|
-
- timezone
|
63
|
-
- puppet
|
64
|
-
- chef
|
65
|
-
- salt-minion
|
66
|
-
- mcollective
|
67
|
-
- disable-ec2-metadata
|
68
|
-
- runcmd
|
69
|
-
- byobu
|
70
|
-
|
71
|
-
# The modules that run in the 'final' stage
|
72
|
-
cloud_final_modules:
|
73
|
-
- rightscale_userdata
|
74
|
-
- scripts-per-once
|
75
|
-
- scripts-per-boot
|
76
|
-
- scripts-per-instance
|
77
|
-
- scripts-user
|
78
|
-
- ssh-authkey-fingerprints
|
79
|
-
- keys-to-console
|
80
|
-
- phone-home
|
81
|
-
- final-message
|
82
|
-
- power-state-change
|
83
|
-
|
84
|
-
# System and/or distro specific settings
|
85
|
-
# (not accessible to handlers/transforms)
|
86
|
-
system_info:
|
87
|
-
# This will affect which distro class gets used
|
88
|
-
distro: debian
|
89
|
-
# Other config here will be given to the distro class and/or path classes
|
90
|
-
paths:
|
91
|
-
cloud_dir: /var/lib/cloud/
|
92
|
-
templates_dir: /etc/cloud/templates/
|
93
|
-
upstart_dir: /etc/init/
|
94
|
-
package_mirrors:
|
95
|
-
- arches: [default]
|
96
|
-
failsafe:
|
97
|
-
primary: http://ftp.debian.org/debian
|
98
|
-
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
|
99
|
-
manage_etc_hosts: true
|
100
|
-
|
101
|
-
# vim:syntax=yaml
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# This file is part of systemd.
|
2
|
-
#
|
3
|
-
# systemd is free software; you can redistribute it and/or modify it
|
4
|
-
# under the terms of the GNU Lesser General Public License as published by
|
5
|
-
# the Free Software Foundation; either version 2.1 of the License, or
|
6
|
-
# (at your option) any later version.
|
7
|
-
|
8
|
-
[Unit]
|
9
|
-
Description=Serial Getty on %I
|
10
|
-
Documentation=man:agetty(8) man:systemd-getty-generator(8)
|
11
|
-
Documentation=http://0pointer.de/blog/projects/serial-console.html
|
12
|
-
BindsTo=dev-%i.device
|
13
|
-
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
|
14
|
-
After=rc-local.service
|
15
|
-
|
16
|
-
# If additional gettys are spawned during boot then we should make
|
17
|
-
# sure that this is synchronized before getty.target, even though
|
18
|
-
# getty.target didn't actually pull it in.
|
19
|
-
Before=getty.target
|
20
|
-
IgnoreOnIsolate=yes
|
21
|
-
|
22
|
-
[Service]
|
23
|
-
ExecStart=-/sbin/agetty --autologin root --keep-baud 115200,38400,9600 %I $TERM
|
24
|
-
Type=idle
|
25
|
-
Restart=always
|
26
|
-
UtmpIdentifier=%I
|
27
|
-
TTYPath=/dev/%I
|
28
|
-
TTYReset=yes
|
29
|
-
TTYVHangup=yes
|
30
|
-
KillMode=process
|
31
|
-
IgnoreSIGPIPE=no
|
32
|
-
SendSIGHUP=yes
|
33
|
-
|
34
|
-
[Install]
|
35
|
-
WantedBy=getty.target
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# ttyS0 - getty
|
2
|
-
#
|
3
|
-
# This service maintains a getty on ttyS0 from the point the system is
|
4
|
-
# started until it is shut down again.
|
5
|
-
|
6
|
-
start on stopped rc RUNLEVEL=[2345] and (
|
7
|
-
not-container or
|
8
|
-
container CONTAINER=lxc or
|
9
|
-
container CONTAINER=lxc-libvirt)
|
10
|
-
|
11
|
-
stop on runlevel [!2345]
|
12
|
-
|
13
|
-
pre-start script
|
14
|
-
# getty will not be started if the serial console is not present
|
15
|
-
stty -F /dev/ttyS0 -a 2> /dev/null > /dev/null || { stop ; exit 0; }
|
16
|
-
end script
|
17
|
-
|
18
|
-
respawn
|
19
|
-
script
|
20
|
-
exec /sbin/getty --autologin root -L ttyS0 115200 vt102
|
21
|
-
end script
|
22
|
-
# CLOUD_IMG: This file was created/modified by the Cloud Image build process
|
@@ -1,111 +0,0 @@
|
|
1
|
-
# If this is set, 'root' will not be able to ssh in and they
|
2
|
-
# will get a message to login instead as the above $user (ubuntu)
|
3
|
-
disable_root: False
|
4
|
-
user: root
|
5
|
-
ssh_pwauth: False
|
6
|
-
ssh_deletekeys: True
|
7
|
-
ssh_genkeytypes: ['rsa', 'dsa']
|
8
|
-
ssh_svcname: sshd
|
9
|
-
|
10
|
-
# This will cause the set+update hostname module to not operate (if true)
|
11
|
-
preserve_hostname: false
|
12
|
-
cc_ready_cmd: ['/bin/true']
|
13
|
-
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
|
14
|
-
syslog_fix_perms: ~
|
15
|
-
manage_etc_hosts: True
|
16
|
-
|
17
|
-
# Update and upgrade system on first boot
|
18
|
-
apt_preserve_sources_list: True
|
19
|
-
package_update: True
|
20
|
-
package_upgrade: True
|
21
|
-
package_reboot_if_required: True
|
22
|
-
|
23
|
-
# work only with OpenNebula, use network based datasource,
|
24
|
-
# so that we can successfully resolve IPv4 based hostname
|
25
|
-
disable_ec2_metadata: True
|
26
|
-
datasource_list: ['OpenNebula']
|
27
|
-
datasource:
|
28
|
-
OpenNebula:
|
29
|
-
dsmode: net
|
30
|
-
|
31
|
-
# The modules that run in the 'init' stage
|
32
|
-
cloud_init_modules:
|
33
|
-
- migrator
|
34
|
-
- seed_random
|
35
|
-
- bootcmd
|
36
|
-
- write-files
|
37
|
-
- growpart
|
38
|
-
- resizefs
|
39
|
-
- set_hostname
|
40
|
-
- update_hostname
|
41
|
-
- update_etc_hosts
|
42
|
-
- ca-certs
|
43
|
-
- rsyslog
|
44
|
-
- users-groups
|
45
|
-
- ssh
|
46
|
-
|
47
|
-
# The modules that run in the 'config' stage
|
48
|
-
cloud_config_modules:
|
49
|
-
# Emit the cloud config ready event
|
50
|
-
# this can be used by upstart jobs for 'start on cloud-config'.
|
51
|
-
- emit_upstart
|
52
|
-
- disk_setup
|
53
|
-
- mounts
|
54
|
-
- ssh-import-id
|
55
|
-
- locale
|
56
|
-
- set-passwords
|
57
|
-
- grub-dpkg
|
58
|
-
- apt-pipelining
|
59
|
-
- apt-configure
|
60
|
-
- package-update-upgrade-install
|
61
|
-
- landscape
|
62
|
-
- timezone
|
63
|
-
- puppet
|
64
|
-
- chef
|
65
|
-
- salt-minion
|
66
|
-
- mcollective
|
67
|
-
- disable-ec2-metadata
|
68
|
-
- runcmd
|
69
|
-
- byobu
|
70
|
-
|
71
|
-
# The modules that run in the 'final' stage
|
72
|
-
cloud_final_modules:
|
73
|
-
- rightscale_userdata
|
74
|
-
- scripts-per-once
|
75
|
-
- scripts-per-boot
|
76
|
-
- scripts-per-instance
|
77
|
-
- scripts-user
|
78
|
-
- ssh-authkey-fingerprints
|
79
|
-
- keys-to-console
|
80
|
-
- phone-home
|
81
|
-
- final-message
|
82
|
-
- power-state-change
|
83
|
-
|
84
|
-
# System and/or distro specific settings
|
85
|
-
# (not accessible to handlers/transforms)
|
86
|
-
system_info:
|
87
|
-
# This will affect which distro class gets used
|
88
|
-
distro: ubuntu
|
89
|
-
# Other config here will be given to the distro class and/or path classes
|
90
|
-
paths:
|
91
|
-
cloud_dir: /var/lib/cloud/
|
92
|
-
templates_dir: /etc/cloud/templates/
|
93
|
-
upstart_dir: /etc/init/
|
94
|
-
package_mirrors:
|
95
|
-
- arches: [i386, amd64]
|
96
|
-
failsafe:
|
97
|
-
primary: http://archive.ubuntu.com/ubuntu
|
98
|
-
security: http://security.ubuntu.com/ubuntu
|
99
|
-
search:
|
100
|
-
primary:
|
101
|
-
- http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/
|
102
|
-
- http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/
|
103
|
-
- http://%(region)s.clouds.archive.ubuntu.com/ubuntu/
|
104
|
-
security: []
|
105
|
-
- arches: [armhf, armel, default]
|
106
|
-
failsafe:
|
107
|
-
primary: http://ports.ubuntu.com/ubuntu-ports
|
108
|
-
security: http://ports.ubuntu.com/ubuntu-ports
|
109
|
-
ssh_svcname: ssh
|
110
|
-
|
111
|
-
# vim:syntax=yaml
|
@@ -1,30 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name":"METACLOUD-Ubuntu-14.04-x86_64@metacloud-dukan",
|
3
|
-
"url":"https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img",
|
4
|
-
"verification":{
|
5
|
-
"signature":{
|
6
|
-
"detached":{
|
7
|
-
"signature":"https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.gpg",
|
8
|
-
"data":"https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS"
|
9
|
-
}
|
10
|
-
},
|
11
|
-
"hash":{
|
12
|
-
"function":"SHA256"
|
13
|
-
}
|
14
|
-
},
|
15
|
-
"distribution":"Ubuntu",
|
16
|
-
"version":"14.04",
|
17
|
-
"actions":{
|
18
|
-
"copy":[
|
19
|
-
{
|
20
|
-
"source":"ubuntu-cloud.cfg",
|
21
|
-
"target":"/etc/cloud/",
|
22
|
-
"name":"cloud.cfg"
|
23
|
-
},
|
24
|
-
{
|
25
|
-
"source":"ttyS0.conf",
|
26
|
-
"target":"/etc/init/"
|
27
|
-
}
|
28
|
-
]
|
29
|
-
}
|
30
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name":"METACLOUD-Ubuntu-16.04-x86_64@metacloud-dukan",
|
3
|
-
"url":"https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img",
|
4
|
-
"verification":{
|
5
|
-
"signature":{
|
6
|
-
"detached":{
|
7
|
-
"signature":"https://cloud-images.ubuntu.com/xenial/current/SHA256SUMS.gpg",
|
8
|
-
"data":"https://cloud-images.ubuntu.com/xenial/current/SHA256SUMS"
|
9
|
-
}
|
10
|
-
},
|
11
|
-
"hash":{
|
12
|
-
"function":"SHA256"
|
13
|
-
}
|
14
|
-
},
|
15
|
-
"distribution":"Ubuntu",
|
16
|
-
"version":"16.04",
|
17
|
-
"actions":{
|
18
|
-
"copy":[
|
19
|
-
{
|
20
|
-
"source":"ubuntu-cloud.cfg",
|
21
|
-
"target":"/etc/cloud/",
|
22
|
-
"name":"cloud.cfg"
|
23
|
-
},
|
24
|
-
{
|
25
|
-
"source":"serial-getty@ttyS0.service",
|
26
|
-
"target":"/etc/systemd/system/getty.target.wants/"
|
27
|
-
}
|
28
|
-
]
|
29
|
-
}
|
30
|
-
}
|