falkorlib 0.8.9 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +57 -117
  3. data/README.md +1 -1
  4. data/binscripts/bootstrap.sh +8 -10
  5. data/falkorlib.gemspec +12 -12
  6. data/lib/falkorlib/bootstrap/base.rb +29 -25
  7. data/lib/falkorlib/bootstrap/latex.rb +7 -2
  8. data/lib/falkorlib/bootstrap/vagrant.rb +17 -10
  9. data/lib/falkorlib/common.rb +3 -3
  10. data/lib/falkorlib/config.rb +3 -3
  11. data/lib/falkorlib/gem_tasks.rb +1 -1
  12. data/lib/falkorlib/git_tasks.rb +1 -1
  13. data/lib/falkorlib/puppet_tasks.rb +1 -1
  14. data/lib/falkorlib/version.rb +2 -1
  15. data/spec/falkorlib/bootstrap_latex_spec.rb +6 -5
  16. data/spec/falkorlib/git_spec.rb +2 -2
  17. data/spec/falkorlib/gitflow_spec.rb +5 -4
  18. data/templates/latex/article/_related_works.tex.erb +1 -1
  19. data/templates/latex/article/biblio.bib.erb +12 -1
  20. data/templates/latex/article-acm/main.tex.erb +47 -65
  21. data/templates/latex/article-ieee/main.tex.erb +42 -410
  22. data/templates/latex/article-llncs/main.tex.erb +30 -18
  23. data/templates/latex/beamer/.Makefile.local +1 -0
  24. data/templates/latex/beamer/_content.md.erb +1 -1
  25. data/templates/latex/beamer/main.tex.erb +24 -11
  26. data/templates/latex/images/logo_ANSSI.png +0 -0
  27. data/templates/latex/images/logo_RF.png +0 -0
  28. data/templates/latex/llncs/llncs.cls +49 -39
  29. data/templates/latex/llncs/{splncs03.bst → splncs04.bst} +40 -11
  30. data/templates/vagrant/.gitignore +14 -0
  31. data/templates/vagrant/Vagrantfile.erb +53 -15
  32. data/templates/vagrant/vagrant/config.yaml.sample +9 -6
  33. data/templates/vagrant/vagrant/scripts/bootstrap.sh +32 -14
  34. metadata +81 -77
  35. data/templates/latex/images/logo_UL.pdf +0 -0
  36. data/templates/latex/images/logo_ULHPC.pdf +0 -0
Binary file
@@ -1,4 +1,4 @@
1
- % LLNCS DOCUMENT CLASS -- version 2.20 (24-JUN-2015)
1
+ % LLNCS DOCUMENT CLASS -- version 2.21 (12-Jan-2022)
2
2
  % Springer Verlag LaTeX2e support for Lecture Notes in Computer Science
3
3
  %
4
4
  %%
@@ -19,7 +19,7 @@
19
19
  %% Right brace \} Tilde \~}
20
20
  %%
21
21
  \NeedsTeXFormat{LaTeX2e}[1995/12/01]
22
- \ProvidesClass{llncs}[2015/06/24 v2.20
22
+ \ProvidesClass{llncs}[2022/01/12 v2.21
23
23
  ^^J LaTeX document class for Lecture Notes in Computer Science]
24
24
  % Options
25
25
  \let\if@envcntreset\iffalse
@@ -77,40 +77,40 @@
77
77
  \fi}
78
78
  %
79
79
  \def\switcht@albion{%
80
- \def\abstractname{Abstract.}%
81
- \def\ackname{Acknowledgement.}%
82
- \def\andname{and}%
83
- \def\lastandname{\unskip, and}%
84
- \def\appendixname{Appendix}%
85
- \def\chaptername{Chapter}%
86
- \def\claimname{Claim}%
87
- \def\conjecturename{Conjecture}%
88
- \def\contentsname{Table of Contents}%
89
- \def\corollaryname{Corollary}%
90
- \def\definitionname{Definition}%
91
- \def\examplename{Example}%
92
- \def\exercisename{Exercise}%
93
- \def\figurename{Fig.}%
94
- \def\keywordname{{\bf Keywords:}}%
95
- \def\indexname{Index}%
96
- \def\lemmaname{Lemma}%
97
- \def\contriblistname{List of Contributors}%
98
- \def\listfigurename{List of Figures}%
99
- \def\listtablename{List of Tables}%
100
- \def\mailname{{\it Correspondence to\/}:}%
101
- \def\noteaddname{Note added in proof}%
102
- \def\notename{Note}%
103
- \def\partname{Part}%
104
- \def\problemname{Problem}%
105
- \def\proofname{Proof}%
106
- \def\propertyname{Property}%
107
- \def\propositionname{Proposition}%
108
- \def\questionname{Question}%
109
- \def\remarkname{Remark}%
110
- \def\seename{see}%
111
- \def\solutionname{Solution}%
112
- \def\subclassname{{\it Subject Classifications\/}:}%
113
- \def\tablename{Table}%
80
+ \def\abstractname{Abstract.}
81
+ \def\ackname{Acknowledgement.}
82
+ \def\andname{and}
83
+ \def\lastandname{\unskip, and}
84
+ \def\appendixname{Appendix}
85
+ \def\chaptername{Chapter}
86
+ \def\claimname{Claim}
87
+ \def\conjecturename{Conjecture}
88
+ \def\contentsname{Table of Contents}
89
+ \def\corollaryname{Corollary}
90
+ \def\definitionname{Definition}
91
+ \def\examplename{Example}
92
+ \def\exercisename{Exercise}
93
+ \def\figurename{Fig.}
94
+ \def\keywordname{{\bf Keywords:}}
95
+ \def\indexname{Index}
96
+ \def\lemmaname{Lemma}
97
+ \def\contriblistname{List of Contributors}
98
+ \def\listfigurename{List of Figures}
99
+ \def\listtablename{List of Tables}
100
+ \def\mailname{{\it Correspondence to\/}:}
101
+ \def\noteaddname{Note added in proof}
102
+ \def\notename{Note}
103
+ \def\partname{Part}
104
+ \def\problemname{Problem}
105
+ \def\proofname{Proof}
106
+ \def\propertyname{Property}
107
+ \def\propositionname{Proposition}
108
+ \def\questionname{Question}
109
+ \def\remarkname{Remark}
110
+ \def\seename{see}
111
+ \def\solutionname{Solution}
112
+ \def\subclassname{{\it Subject Classifications\/}:}
113
+ \def\tablename{Table}
114
114
  \def\theoremname{Theorem}}
115
115
  \switcht@albion
116
116
  % Names of theorem like environments are already defined
@@ -875,8 +875,10 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
875
875
  \or \ddagger\ddagger \else\@ctrerr\fi}}
876
876
 
877
877
  \def\inst#1{\unskip$^{#1}$}
878
+ \def\orcidID#1{\unskip$^{[#1]}$} % added MR 2018-03-10
878
879
  \def\fnmsep{\unskip$^,$}
879
880
  \def\email#1{{\tt#1}}
881
+
880
882
  \AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%
881
883
  \@ifpackageloaded{babel}{%
882
884
  \@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%
@@ -884,8 +886,12 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
884
886
  \@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%
885
887
  \@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}%
886
888
  }{\switcht@@therlang}%
887
- \providecommand{\keywords}[1]{\par\addvspace\baselineskip
889
+ \providecommand{\keywords}[1]{\def\and{{\textperiodcentered} }%
890
+ \par\addvspace\baselineskip
888
891
  \noindent\keywordname\enspace\ignorespaces#1}%
892
+ \@ifpackageloaded{hyperref}{%
893
+ \def\doi#1{\href{https://doi.org/\detokenize{#1}}{\url{https://doi.org/#1}}}}{
894
+ \def\doi#1{https://doi.org/\detokenize{#1}}}
889
895
  }
890
896
  \def\homedir{\~{ }}
891
897
 
@@ -946,6 +952,8 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
946
952
  %
947
953
  \if!\the\tocauthor!\relax
948
954
  {\def\and{\noexpand\protect\noexpand\and}%
955
+ \def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the TOC
956
+ \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the TOC
949
957
  \protected@xdef\toc@uthor{\@author}}%
950
958
  \else
951
959
  \def\\{\noexpand\protect\noexpand\newline}%
@@ -961,7 +969,9 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
961
969
  \else
962
970
  \edef\@author{\the\authorrunning}%
963
971
  \fi
964
- \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
972
+ \global\setbox\authrun=\hbox{\def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the runninghead
973
+ \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the runninghead
974
+ \small\unboldmath\@author\unskip}%
965
975
  \ifdim\wd\authrun>\instindent
966
976
  \typeout{Names of authors too long for running head. Please supply}%
967
977
  \typeout{a shorter form with \string\authorrunning\space prior to
@@ -1063,7 +1073,7 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
1063
1073
  \global\@namedef{end#1}{\@endtheorem}}}}
1064
1074
 
1065
1075
  \def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
1066
- \refstepcounter{#1}\phantomsection
1076
+ \refstepcounter{#1}%
1067
1077
  \@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
1068
1078
 
1069
1079
  \def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
@@ -1,4 +1,4 @@
1
- %% BibTeX bibliography style `splncs03'
1
+ %% BibTeX bibliography style `splncs04'
2
2
  %%
3
3
  %% BibTeX bibliography style for use with numbered references in
4
4
  %% Springer Verlag's "Lecture Notes in Computer Science" series.
@@ -31,6 +31,7 @@
31
31
  %% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle)
32
32
  %% - Removed a \newblock to avoid long spaces between title and "In: ..."
33
33
  %% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label
34
+ %% - Added doi
34
35
  %% ================================================================================================
35
36
  %% This was file `titto.bst',
36
37
  %% generated with the docstrip utility.
@@ -73,6 +74,7 @@ ENTRY
73
74
  author
74
75
  booktitle
75
76
  chapter
77
+ doi
76
78
  edition
77
79
  editor
78
80
  eid
@@ -243,8 +245,15 @@ FUNCTION {field.or.null}
243
245
  }
244
246
  FUNCTION {emphasize}
245
247
  { skip$ }
248
+
249
+ FUNCTION {embolden}
250
+ { duplicate$ empty$
251
+ { pop$ "" }
252
+ { "\textbf{" swap$ * "}" * }
253
+ if$
254
+ }
246
255
  FUNCTION {tie.or.space.prefix}
247
- { duplicate$ text.length$ #3 <
256
+ { duplicate$ text.length$ #5 <
248
257
  { "~" }
249
258
  { " " }
250
259
  if$
@@ -436,6 +445,14 @@ FUNCTION {format.url}
436
445
  if$
437
446
  }
438
447
 
448
+ FUNCTION {format.doi} % added in splncs04.bst
449
+ { doi empty$
450
+ { "" }
451
+ { after.block 'output.state :=
452
+ "\doi{" doi * "}" * }
453
+ if$
454
+ }
455
+
439
456
  INTEGERS { nameptr namesleft numnames }
440
457
 
441
458
 
@@ -768,17 +785,17 @@ FUNCTION {format.journal.eid}
768
785
  if$
769
786
  }
770
787
  FUNCTION {format.vol.num.pages} % this function is used only for journal entries
771
- { volume field.or.null
788
+ { volume field.or.null embolden
772
789
  duplicate$ empty$ 'skip$
773
790
  {
774
- % bbl.volume swap$ tie.or.space.prefix
775
- titto.bbl.volume swap$ titto.space.prefix
776
- % rationale for the change above: for journals you don't want "vol." label
777
- % hence it does not make sense to attach the journal number to the label when
778
- % it is short
791
+ % bbl.volume swap$ tie.or.space.prefix
792
+ titto.bbl.volume swap$ titto.space.prefix
793
+ % rationale for the change above: for journals you don't want "vol." label
794
+ % hence it does not make sense to attach the journal number to the label when
795
+ % it is short
779
796
  "volume" bibinfo.check
780
797
  * *
781
- }
798
+ }
782
799
  if$
783
800
  number "number" bibinfo.check duplicate$ empty$ 'skip$
784
801
  {
@@ -1006,6 +1023,7 @@ FUNCTION {article}
1006
1023
  }
1007
1024
  if$
1008
1025
  % new.block
1026
+ format.doi output
1009
1027
  format.url output
1010
1028
  % new.block
1011
1029
  format.note output
@@ -1042,6 +1060,7 @@ FUNCTION {book}
1042
1060
  format.edition output
1043
1061
  format.date "year" output.check
1044
1062
  % new.block
1063
+ format.doi output
1045
1064
  format.url output
1046
1065
  % new.block
1047
1066
  format.note output
@@ -1058,6 +1077,7 @@ FUNCTION {booklet}
1058
1077
  address "address" bibinfo.check output
1059
1078
  format.date output
1060
1079
  % new.block
1080
+ format.doi output
1061
1081
  format.url output
1062
1082
  % new.block
1063
1083
  format.note output
@@ -1098,6 +1118,7 @@ FUNCTION {inbook}
1098
1118
  format.edition output
1099
1119
  format.date "year" output.check
1100
1120
  % new.block
1121
+ format.doi output
1101
1122
  format.url output
1102
1123
  % new.block
1103
1124
  format.note output
@@ -1126,6 +1147,7 @@ FUNCTION {incollection}
1126
1147
  }
1127
1148
  if$
1128
1149
  % new.block
1150
+ format.doi output
1129
1151
  format.url output
1130
1152
  % new.block
1131
1153
  format.note output
@@ -1158,6 +1180,7 @@ FUNCTION {inproceedings}
1158
1180
  }
1159
1181
  if$
1160
1182
  % new.block
1183
+ format.doi output
1161
1184
  format.url output
1162
1185
  % new.block
1163
1186
  format.note output
@@ -1197,6 +1220,7 @@ FUNCTION {manual}
1197
1220
  format.edition output
1198
1221
  format.date output
1199
1222
  % new.block
1223
+ format.doi output
1200
1224
  format.url output
1201
1225
  % new.block
1202
1226
  format.note output
@@ -1216,6 +1240,7 @@ FUNCTION {mastersthesis}
1216
1240
  address "address" bibinfo.check output
1217
1241
  format.date "year" output.check
1218
1242
  % new.block
1243
+ format.doi output
1219
1244
  format.url output
1220
1245
  % new.block
1221
1246
  format.note output
@@ -1232,6 +1257,7 @@ FUNCTION {misc}
1232
1257
  howpublished "howpublished" bibinfo.check output
1233
1258
  format.date output
1234
1259
  % new.block
1260
+ format.doi output
1235
1261
  format.url output
1236
1262
  % new.block
1237
1263
  format.note output
@@ -1251,6 +1277,7 @@ FUNCTION {phdthesis}
1251
1277
  address "address" bibinfo.check output
1252
1278
  format.date "year" output.check
1253
1279
  % new.block
1280
+ format.doi output
1254
1281
  format.url output
1255
1282
  % new.block
1256
1283
  format.note output
@@ -1294,6 +1321,7 @@ FUNCTION {proceedings}
1294
1321
  if$
1295
1322
  format.date "year" output.check
1296
1323
  % new.block
1324
+ format.doi output
1297
1325
  format.url output
1298
1326
  % new.block
1299
1327
  format.note output
@@ -1313,6 +1341,7 @@ FUNCTION {techreport}
1313
1341
  address "address" bibinfo.check output
1314
1342
  format.date "year" output.check
1315
1343
  % new.block
1344
+ format.doi output
1316
1345
  format.url output
1317
1346
  % new.block
1318
1347
  format.note output
@@ -1503,6 +1532,8 @@ FUNCTION {begin.bib}
1503
1532
  write$ newline$
1504
1533
  "\providecommand{\urlprefix}{URL }"
1505
1534
  write$ newline$
1535
+ "\providecommand{\doi}[1]{https://doi.org/#1}"
1536
+ write$ newline$
1506
1537
  }
1507
1538
  EXECUTE {begin.bib}
1508
1539
  EXECUTE {init.state.consts}
@@ -1515,5 +1546,3 @@ EXECUTE {end.bib}
1515
1546
  %% End of customized bst file
1516
1547
  %%
1517
1548
  %% End of file `titto.bst'.
1518
-
1519
-
@@ -0,0 +1,14 @@
1
+ # Created by https://www.toptal.com/developers/gitignore/api/vagrant
2
+ # Edit at https://www.toptal.com/developers/gitignore?templates=vagrant
3
+
4
+ ### Vagrant ###
5
+ # General
6
+ .vagrant/
7
+
8
+ # Log files (if you are creating logs in debug mode, uncomment this)
9
+ # *.log
10
+
11
+ ### Vagrant Patch ###
12
+ *.box
13
+
14
+ # End of https://www.toptal.com/developers/gitignore/api/vagrant
@@ -1,6 +1,6 @@
1
1
  # -*- mode: ruby -*-
2
2
  # vi: set ft=ruby :
3
- # Time-stamp: <Mon 2020-04-20 15:32 svarrette>
3
+ # Time-stamp: <Mon 2023-12-04 17:12 svarrette>
4
4
  ###########################################################################################
5
5
  # __ __ _ __ _ _
6
6
  # \ \ / /_ _ __ _ _ __ __ _ _ __ | |_ / _(_) | ___
@@ -25,7 +25,7 @@ require 'erb'
25
25
  [ 'vagrant-hosts',
26
26
  'vagrant-vbguest',
27
27
  'vagrant-cachier',
28
- # 'vagrant-libvirt',
28
+ 'vagrant-libvirt',
29
29
  'deep_merge',
30
30
  'terminal-table' ].each do |plugin|
31
31
  abort "Install the '#{plugin}' plugin with 'vagrant plugin install #{plugin}'" unless Vagrant.has_plugin?("#{plugin}")
@@ -53,9 +53,10 @@ DEFAULT_SETTINGS = {
53
53
  # Default images settings
54
54
  :defaults => {
55
55
  :os => :<%= config[:os] %>,
56
+ :provider => :<%= config[:provider] %>,
56
57
  :ram => <%= config[:ram] %>,
57
58
  :vcpus => <%= config[:vcpus] %>,
58
- :vbguest_auto_update => true,
59
+ :vbguest_auto_update => false,
59
60
  :role => 'default',
60
61
  # :nodes => 1,
61
62
  },
@@ -66,10 +67,18 @@ DEFAULT_SETTINGS = {
66
67
  },
67
68
  # Default Boxes
68
69
  :boxes => {
69
- :centos8 => '<%= config[:boxes][:centos8] %>',
70
- :centos7 => '<%= config[:boxes][:centos7] %>',
71
- :debian8 => '<%= config[:boxes][:debian8] %>',
72
- :ubuntu14 => '<%= config[:boxes][:ubuntu14] %>'
70
+ :debian12 => '<%= config[:boxes][:debian12] %>',
71
+ :debian12_uefi => '<%= config[:boxes][:debian12_uefi] %>',
72
+ :almalinux9 => '<%= config[:boxes][:almalinux9] %>',
73
+ :almalinux8 => '<%= config[:boxes][:almalinux8] %>',
74
+ :almalinux8_uefi => '<%= config[:boxes][:almalinux8_uefi] %>',
75
+ :rockylinux8 => '<%= config[:boxes][:rockylinux8] %>',
76
+ :centosstream9 => '<%= config[:boxes][:centosstream9] %>',
77
+ :centosstream8 => '<%= config[:boxes][:centosstream8] %>',
78
+ :ubuntu22 => '<%= config[:boxes][:ubuntu22] %>',
79
+ :ubuntu20 => '<%= config[:boxes][:ubuntu20] %>',
80
+ :fedora38 => '<%= config[:boxes][:fedora38] %>',
81
+ :archlinux => '<%= config[:boxes][:archlinux] %>'
73
82
  },
74
83
  # virtual images to deploy
75
84
  # <name>:
@@ -126,18 +135,21 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
126
135
  # set auto_update to false, if you do NOT want to check the correct
127
136
  # additions version when booting these boxes
128
137
  config.vbguest.auto_update = defaults[:vbguest_auto_update]
138
+ config.vbguest.installer_options = { allow_kernel_upgrade: true }
139
+
129
140
  end
130
141
 
131
142
  # Shell provisioner, to bootstrap each box with the minimal settings/packages
132
143
  DEFAULT_PROVISIONING_SCRIPTS.each do |script|
133
144
  config.vm.provision "shell", path: "#{script}", keep_color: true
134
145
  end
135
- config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
146
+
147
+ # config.vm.synced_folder ".", "/vagrant", type: "virtualbox" # done by default
136
148
  ## Uncomment the below part if you want and additional shared directory
137
149
  # config.vm.synced_folder "vagrant/shared", "/shared", mount_options: ['dmode=777','fmode=777'],
138
150
  # type: "virtualbox" # Shared directory for users
139
151
  if Dir.exist?(File.join(TOP_PUPPETDIR, 'hieradata'))
140
- config.vm.synced_folder "#{puppet_dir}/hieradata", "/tmp/vagrant-puppet/hieradata", type: "virtualbox"
152
+ config.vm.synced_folder "#{puppet_dir}/hieradata", "/tmp/vagrant-puppet/hieradata" #, type: "virtualbox"
141
153
  end
142
154
 
143
155
  # network settings
@@ -161,12 +173,14 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
161
173
  boxname = defaults[:os].to_s.downcase.gsub(/([^\d]+)(\d+)/, '\\1-\\2')
162
174
  name = boxname if name == 'default'
163
175
  os = node[:os] ? node[:os].to_sym : defaults[:os].to_sym
176
+ provider = (os =~ /_uefi$/)? 'libvirt' : defaults[:provider]
177
+ provider = node[:provider] if node[:provider]
164
178
  ram = node[:ram] ? node[:ram] : defaults[:ram]
165
179
  vcpus = node[:vcpus] ? node[:vcpus] : defaults[:vcpus]
166
180
  role = node[:role] ? node[:role] : 'default'
167
181
  desc = node[:desc] ? node[:desc] : 'n/a'
168
182
  puppet_modules = node[:puppet_modules] ? node[:puppet_modules] : []
169
-
183
+ warn "provider: #{provider}"
170
184
  abort "Non-existing box OS '#{os}' for the VM '#{name}'" if settings[:boxes][os.to_sym].nil?
171
185
  abort "Empty IP address range" if ip_range.empty?
172
186
  ip = ip_range[ ip_index.to_i ].to_s
@@ -175,13 +189,36 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
175
189
  config.vm.define "#{name}" do |c|
176
190
  c.vm.box = settings[:boxes][os.to_sym]
177
191
  c.vm.hostname = "#{fqdn}"
178
- c.vm.network :private_network, :ip => ip
192
+ c.vm.network :private_network,
193
+ :ip => ip,
194
+ :libvirt__network_address => network[:range], # ip_range[0].to_s + '/24',
195
+ :libvirt__forward_mode => 'nat'
196
+
179
197
  c.vm.provision :hosts, :sync_hosts => true
198
+ # (eventually) Force default provider
199
+ c.vm.provider :"#{provider}" if provider != 'virtualbox'
180
200
 
181
- c.vm.provider "virtualbox" do |v|
201
+ # Custom VM configs for virtualbox provider
202
+ c.vm.provider 'virtualbox' do |v|
182
203
  v.customize [ 'modifyvm', :id, '--name', hostname, '--memory', ram.to_s ]
183
204
  v.customize [ 'modifyvm', :id, '--cpus', vcpus.to_s ] if vcpus.to_i > 1
184
205
  #v.customize [ 'setextradata', :id, 'VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root', '1']
206
+ v.customize ["modifyvm", :id, "--firmware", "efi"]
207
+ end
208
+ # Custom VM configs for libvirt provider
209
+ # see https://vagrant-libvirt.github.io/vagrant-libvirt/configuration.html
210
+ c.vm.provider :libvirt do |lv|
211
+ lv.uri = 'qemu:///system'
212
+ lv.host = hostname
213
+ lv.cpus = vcpus
214
+ lv.memory = ram
215
+ # lv.nested = true
216
+
217
+ # Emulated TPM
218
+ lv.tpm_model = "tpm-crb"
219
+ lv.tpm_type = "emulator"
220
+ lv.tpm_version = "2.0"
221
+
185
222
  end
186
223
 
187
224
  # role specialization
@@ -201,8 +238,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
201
238
  end
202
239
 
203
240
  # A role fact MUST be defined (default: 'default') as it is used in Hiera config
241
+ facts_dir = '/etc/facter/facts.d/'
204
242
  c.vm.provision "shell",
205
- inline: "echo '{ \"role\": \"#{role}\" }' > /opt/puppetlabs/facter/facts.d/custom.json",
243
+ inline: "mkdir -p #{facts_dir}; echo '{ \"role\": \"#{role}\" }' > #{facts_dir}/custom.json",
206
244
  keep_color: true
207
245
  ################ Puppet install ##############
208
246
  c.vm.provision "puppet" do |puppet|
@@ -222,14 +260,14 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
222
260
 
223
261
  __table[:rows] << [ name, fqdn, os.to_sym, "#{vcpus}/#{ram}", role, desc, ip]
224
262
 
225
- if settings[:vms].keys.last == name
263
+ #if settings[:vms].keys.last == name
226
264
  c.trigger.after :up do |trigger|
227
265
  trigger.info = (Terminal::Table.new __table).to_s
228
266
  trigger.warn = <<-EOF
229
267
  - Virtual Vagrant infrastructure successfully deployed!
230
268
  EOF
231
269
  end
232
- end
270
+ #end
233
271
 
234
272
  end # config.vm.define
235
273
  end # settings
@@ -1,5 +1,5 @@
1
1
  # -*- mode: yaml; -*-
2
- # Time-stamp: <Sat 2020-04-18 18:00 svarrette>
2
+ # Time-stamp: <Sat 2023-11-18 16:59 svarrette>
3
3
  ################################################################################
4
4
  # Complementary configuration for Vagrant
5
5
  # You can overwrite here the default settings defined in ../Vagrantfile and
@@ -11,15 +11,18 @@
11
11
  # Format:
12
12
  # :<os><version>: <username>/<box> # see https://vagrantcloud.com
13
13
  # :boxes:
14
- # :centos8: 'centos/8'
15
- # :centos7: 'centos/7'
16
- # :debian8: 'debian/contrib-jessie64'
17
- # :ubuntu14: 'ubuntu/trusty64'
14
+ # :debian12: 'debian/bookworm64'
15
+ # :rockylinux9: 'rockylinux/9'
16
+ # :rockylinux8: 'rockylinux/8'
17
+ # :ubuntu22: 'ubuntu/jammy64'
18
+ # :ubuntu20: 'ubuntu/focal64'
19
+ # :fedora38: 'generic/fedora38'
20
+ # :archlinux: 'archlinux/archlinux'
18
21
 
19
22
  #_________________
20
23
  # Default settings
21
24
  # :defaults:
22
- # :os: :centos7 # Default OS from the above box definition
25
+ # :os: :debian12 # Default OS from the above box definition
23
26
  # :ram: 512 # Default RAM
24
27
  # :vcpus: 1 # Default number of virtual CPUs
25
28
  # :vbguest_auto_update: 1 # check/update box guest additions
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env bash
2
- # Time-stamp: <Sun 2020-04-19 12:39 svarrette>
2
+ # Time-stamp: <Mon 2023-12-04 17:51 svarrette>
3
3
  ###########################################################################################
4
4
  # __ __ _ ____ _ _
5
5
  # \ \ / /_ _ __ _ _ __ __ _ _ __ | |_ | __ ) ___ ___ | |_ ___| |_ _ __ __ _ _ __
6
- # \ \ / / _` |/ _` | '__/ _` | '_ \| __| | _ \ / _ \ / _ \| __/ __| __| '__/ _` | '_ \
7
- # \ V / (_| | (_| | | | (_| | | | | |_ | |_) | (_) | (_) | |_\__ \ |_| | | (_| | |_) |
6
+ # \ \ / / _` |/ _` | '__/ _` | '_ \| __| | _ \ / _ \ / _ \| __/ __| __| '__/ _` | '_ \ .
7
+ # \ V / (_| | (_| | | | (_| | | | | |_ | |_) | (_) | (_) | |_\__ \ |_| | | (_| | |_) |
8
8
  # \_/ \__,_|\__, |_| \__,_|_| |_|\__| |____/ \___/ \___/ \__|___/\__|_| \__,_| .__/
9
9
  # |___/ |_|
10
- # Copyright (c) 2017-2020 Sebastien Varrette <sebastien.varrette@uni.lu>
10
+ # Copyright (c) 2017-2023 Sebastien Varrette
11
11
  ###########################################################################################
12
12
  # (prefered) way to see a Vagrant box configured.
13
13
  #
@@ -26,12 +26,12 @@ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
26
26
  MOTD="/etc/motd"
27
27
  DOTFILES_DIR='/etc/dotfiles.d'
28
28
  DOTFILES_URL='https://github.com/ULHPC/dotfiles.git'
29
- EXTRA_PACKAGES=
29
+ EXTRA_PACKAGES='swtpm swtpm-tools'
30
30
 
31
31
  TITLE=$(hostname -s)
32
32
 
33
33
  # List of default packages to install
34
- COMMON_DEFAULT_PACKAGES="ruby wget figlet git screen bash-completion rsync vim htop net-tools mailx"
34
+ COMMON_DEFAULT_PACKAGES="ruby wget figlet git screen bash-completion rsync vim htop net-tools"
35
35
 
36
36
  ######
37
37
  # Print information in the following form: '[$2] $1' ($2=INFO if not submitted)
@@ -67,6 +67,15 @@ setup_redhat() {
67
67
  touch /etc/sysconfig/bash-prompt-screen
68
68
  chmod +x /etc/sysconfig/bash-prompt-screen
69
69
 
70
+ if [ -x "/usr/bin/crb" ]; then
71
+ info "Enable CodeReady Builder (CRB) repository"
72
+ /usr/bin/crb enable
73
+ fi
74
+
75
+ if ! grep -e "fastestmirror" /etc/dnf/dnf.conf; then
76
+ echo "fastestmirror=1" >> /etc/dnf/dnf.conf
77
+ fi
78
+
70
79
  info "Running yum update"
71
80
  yum update -y >/dev/null
72
81
 
@@ -81,17 +90,24 @@ setup_redhat() {
81
90
  os_version=$(rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release))
82
91
  info "Adding Puppet Labs repo and installing Puppet for RHEL/CentOS ${os_version}"
83
92
  # Get the major version
84
- yum install -y https://yum.puppetlabs.com/puppet-release-el-$(echo $os_version | cut -d '.' -f 1).noarch.rpm
93
+ yum install -y https://yum.puppetlabs.com/puppet7-release-el-$(echo $os_version | cut -d '.' -f 1).noarch.rpm
85
94
  yum install -y puppet
86
95
  }
87
96
 
88
97
  setup_apt() {
98
+ export DEBIAN_FRONTEND=noninteractive
99
+
89
100
  case $1 in
90
101
  3*) codename=cumulus ;;
91
102
  6) codename=squeeze ;;
92
103
  7) codename=wheezy ;;
93
104
  8) codename=jessie ;;
94
105
  9) codename=stretch ;;
106
+ 10) codename=buster ;;
107
+ 11) codename=bullseye ;;
108
+ 12) codename=bookworm ;;
109
+ 13) codename=trixie ;;
110
+ 14) codename=forky ;;
95
111
  12.04) codename=precise ;;
96
112
  14.04) codename=trusty ;;
97
113
  16.04) codename=xenial ;;
@@ -104,13 +120,12 @@ setup_apt() {
104
120
  info "Installing default packages"
105
121
  apt-get install -y ${COMMON_DEFAULT_PACKAGES} git-core ${EXTRA_PACKAGES} >/dev/null
106
122
 
107
- info "Installing Puppet and its dependencies"
108
- apt-get install puppet-agent -y >/dev/null
109
- apt-get install apt-transport-https -y >/dev/null
123
+ info "Set locale"
124
+ localectl set-locale LANG=en_US.UTF-8
125
+
126
+ info "Installing puppet"
127
+ apt-get install -y puppet >/dev/null
110
128
 
111
- info "installing Environment modules and LMod"
112
- apt-get install -y environment-modules lmod
113
- apt-get install -y build-essentials
114
129
  }
115
130
 
116
131
  setup_linux() {
@@ -144,7 +159,7 @@ setup_linux() {
144
159
  info "Detected Linux distro: ${distro} version ${majver} on arch ${ARCH}"
145
160
  case "$distro" in
146
161
  debian|ubuntu) setup_apt $majver ;;
147
- redhat|fedora|centos|scientific|amazon) setup_redhat $majver ;;
162
+ redhat|rocky|fedora|centos|almalinux|scientific|amazon) setup_redhat $majver ;;
148
163
  *) echo "Not supported distro: $distro"; exit 1;;
149
164
  esac
150
165
 
@@ -169,6 +184,9 @@ setup_dotfiles () {
169
184
  info "installing dotfiles for 'vagrant' user"
170
185
  sudo -u vagrant ${dotfile_install_cmd}
171
186
  fi
187
+ info "cleanup .inputrc"
188
+ rm -f /root/.inputrc
189
+ sudo -u vagrant rm -f ~vagrant/.inputrc
172
190
  }
173
191
 
174
192
  setup_motd() {