imagemaster3000 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
}
|