M0ses / kanku

Kanku - Bridging the gap between Open-Build-Service and DevOPS
http://m0ses.github.io/kanku/
GNU General Public License v3.0
9 stars 6 forks source link

Could not open '/etc/kanku/dancer/config.yml' for reading #60

Closed lrupp closed 1 month ago

lrupp commented 1 month ago

I followed the 'Getting Started Guide' on my Tumbleweed installation:

zypper ar obs://devel:kanku devel:kanku
zypper ar obs://devel:kanku:perl devel:kanku:perl
zypper ref -s
zypper in kanku-cli

Which resulted in the following packages getting installed:

The following 48 recommended packages were automatically selected:
  perl-Algorithm-Diff perl-Class-Method-Modifiers perl-Class-XSAccessor perl-DBD-CSV perl-DBD-SQLite perl-DBI perl-DBIx-Class-Schema-Loader perl-Data-OptList perl-Devel-LexAlias perl-Devel-StackTrace perl-Encode perl-File-MimeInfo
  perl-File-ReadBackwards perl-GD perl-Graph perl-GraphViz perl-IO-Compress-Lzma perl-IO-Tty perl-JSON-MaybeXS perl-List-MoreUtils perl-Log-Dispatch perl-Log-Dispatch-FileRotate perl-Math-Base-Convert perl-Module-Runtime perl-Moo
  perl-Package-Stash-XS perl-PadWalker perl-Params-Util perl-Path-Tiny perl-Perl-Tidy perl-Readonly perl-Ref-Util perl-Ref-Util-XS perl-Regexp-Common perl-SQL-Statement perl-Scope-Upper perl-Spreadsheet-ParseExcel perl-Sub-Name
  perl-Template-Toolkit perl-Test-Pod perl-Test-Pod-Coverage perl-Text-CSV_XS perl-Text-RecordParser perl-Text-Soundex perl-Text-TabularDisplay perl-XML-DOM perl-YAML-PP-LibYAML sqlite3-devel

The following 258 NEW packages are going to be installed:
  gd kanku-cli kanku-common perl-Algorithm-C3 perl-Algorithm-Diff perl-Apache-LogFormat-Compiler perl-AppConfig perl-Archive-Cpio perl-B-Hooks-EndOfScope perl-B-Utils perl-CLI-Osprey perl-Class-Accessor perl-Class-Accessor-Grouped
  perl-Class-C3 perl-Class-C3-Componentised perl-Class-Data-Inheritable perl-Class-Inspector perl-Class-Load perl-Class-Load-XS perl-Class-Method-Modifiers perl-Class-Singleton perl-Class-Tiny perl-Class-Unload perl-Class-XSAccessor
  perl-Clone-Choose perl-Compress-Raw-Lzma perl-Config-Any perl-Config-INI perl-Config-MySQL perl-Config-Tiny perl-Const-Fast perl-Context-Preserve perl-Cookie-Baker perl-Crypt-RC4 perl-Crypt-SaltedHash perl-DBD-CSV perl-DBD-SQLite
  perl-DBI perl-DBICx-Sugar perl-DBIx-Class perl-DBIx-Class-DeploymentHandler perl-DBIx-Class-Fixtures perl-DBIx-Class-Migration perl-DBIx-Class-Schema-Loader perl-Dancer2 perl-Dancer2-Plugin-Auth-Extensible
  perl-Dancer2-Plugin-Auth-Extensible-Provider-DBIC perl-Dancer2-Plugin-DBIC perl-Dancer2-Plugin-REST perl-Data-Dump perl-Data-Dump-Streamer perl-Data-Dumper-Concise perl-Data-OptList perl-Data-Visitor perl-DateTime
  perl-DateTime-Format-Builder perl-DateTime-Format-MySQL perl-DateTime-Format-Pg perl-DateTime-Format-SQLite perl-DateTime-Format-Strptime perl-DateTime-Locale perl-DateTime-TimeZone perl-Devel-Caller perl-Devel-GlobalDestruction
  perl-Devel-LexAlias perl-Devel-OverloadInfo perl-Devel-PartialDump perl-Devel-StackTrace perl-Devel-StackTrace-AsHTML perl-Devel-Symdump perl-Digest-Perl-MD5 perl-Dist-CheckConflicts perl-Encode perl-Eval-Closure perl-Exception-Class
  perl-Expect perl-Exporter-Declare perl-Exporter-Tiny perl-File-BaseDir perl-File-Copy-Recursive perl-File-DesktopEntry perl-File-HomeDir perl-File-LibMagic perl-File-MimeInfo perl-File-Path perl-File-ReadBackwards perl-File-Share
  perl-File-ShareDir perl-File-ShareDir-ProjectDistDir perl-Filesys-Notify-Simple perl-GD perl-Getopt-Long-Descriptive perl-Graph perl-GraphViz perl-HTTP-BrowserDetect perl-HTTP-Entity-Parser perl-HTTP-Headers-Fast
  perl-HTTP-MultiPartParser perl-Hash-Merge perl-Hash-Merge-Simple perl-Hash-MultiValue perl-Heap perl-IO-All perl-IO-Compress-Lzma perl-IO-Interactive perl-IO-Tty perl-IPC-Run perl-IPC-System-Simple perl-Import-Into perl-JSON-MaybeXS
  perl-JSON-XS perl-Libssh-Session perl-Lingua-EN-FindNumber perl-Lingua-EN-Inflect perl-Lingua-EN-Inflect-Number perl-Lingua-EN-Inflect-Phrase perl-Lingua-EN-Number-IsOrdinal perl-Lingua-EN-Tagger perl-Lingua-EN-Words2Nums
  perl-Lingua-PT-Stemmer perl-Lingua-Stem perl-Lingua-Stem-Fr perl-Lingua-Stem-It perl-Lingua-Stem-Ru perl-Lingua-Stem-Snowball-Da perl-List-MoreUtils perl-List-MoreUtils-XS perl-Log-Any perl-Log-Contextual perl-Log-Dispatch
  perl-Log-Dispatch-FileRotate perl-Log-Log4perl perl-MIME-Charset perl-MRO-Compat perl-Mail-Sendmail perl-Math-Base-Convert perl-Math-Int64 perl-Memoize-ExpireLRU perl-Meta-Builder perl-Mixin-Linewise perl-Module-Find
  perl-Module-Implementation perl-Module-Pluggable perl-Module-Runtime perl-Module-Runtime-Conflicts perl-Moo perl-MooX-Attribute-ENV perl-MooX-Locale-Passthrough perl-MooX-Options perl-MooX-Traits perl-Moose perl-MooseX-App
  perl-MooseX-Role-Parameterized perl-MooseX-Singleton perl-MooseX-Types perl-Net-AMQP-RabbitMQ perl-Net-IP perl-Net-OBS-Client perl-OLE-Storage_Lite perl-POSIX-strftime-Compiler perl-Package-DeprecationManager perl-Package-Stash
  perl-Package-Stash-XS perl-Package-Variant perl-PadWalker perl-Params-Util perl-Params-Validate perl-Params-ValidationCompiler perl-Passwd-Keyring-KDEWallet perl-Path-Class perl-Path-FindDev perl-Path-IsDev perl-Path-Tiny
  perl-Perl-Tidy perl-PerlIO-utf8_strict perl-Plack perl-Plack-Middleware-FixMissingBodyInRedirect perl-Plack-Middleware-RemoveRedundantBody perl-Pod-Coverage perl-Pod-Elemental perl-Pod-Eventual perl-Pod-Parser perl-Proc-SyncExec
  perl-Readonly perl-Ref-Util perl-Ref-Util-XS perl-Regexp-Common perl-Role-Tiny perl-SQL-Abstract perl-SQL-Abstract-Classic perl-SQL-SplitStatement perl-SQL-Statement perl-SQL-Translator perl-Safe-Isa perl-Scope-Guard perl-Scope-Upper
  perl-Session-Token perl-Set-Object perl-Snowball-Norwegian perl-Snowball-Swedish perl-Specio perl-Spreadsheet-ParseExcel perl-Stream-Buffered perl-String-CamelCase perl-String-RewritePrefix perl-String-ToIdentifier-EN
  perl-String-Truncate perl-Sub-Exporter perl-Sub-Exporter-ForMethods perl-Sub-Exporter-Progressive perl-Sub-Identify perl-Sub-Install perl-Sub-Name perl-Sub-Quote perl-Sys-Virt perl-Task-Weaken perl-Template-Plugin-Filter-ANSIColor
  perl-Template-Tiny perl-Template-Toolkit perl-Term-Terminfo perl-Test-Deep perl-Test-Fatal perl-Test-Pod perl-Test-Pod-Coverage perl-Test-SharedFork perl-Test-TCP perl-Text-Autoformat perl-Text-Brew perl-Text-CSV_XS perl-Text-German
  perl-Text-RecordParser perl-Text-Reform perl-Text-Soundex perl-Text-TabularDisplay perl-Tie-ToObject perl-Type-Tiny perl-Types-Serialiser perl-UUID perl-Unicode-LineBreak perl-Variable-Magic perl-WWW-Form-UrlEncoded perl-XML-DOM
  perl-XML-RegExp perl-XML-Structured perl-XML-XPath perl-XString perl-YAML perl-YAML-LibYAML-API perl-YAML-PP-LibYAML perl-YAML-Syck perl-aliased perl-common-sense perl-curry perl-libxml-perl perl-namespace-autoclean
  perl-namespace-clean perl-strictures sqlite3-devel

258 new packages to install.
Overall download size: 23.9 MiB. Already cached: 0 B. After the operation, additional 87.3 MiB will be used.

Following the guide, I decided to create a sub-directory for the next steps:

mkdir -p ~/kanku/projects/ansible && cd $_
kanku init --domain_name ansible

This is the resulting output:

[2024/05/29 11:52:11]DEBUG Config file '/home/lars/.kanku/kanku-config.yml' not found! [2024/05/29 11:52:11]DEBUG Config file '/etc/kanku/kanku-config.yml' not found! [2024/05/29 11:52:11]DEBUG No config file found! Using empty configuration. [2024/05/29 11:52:11] INFO KankuFile written [2024/05/29 11:52:11]DEBUG domain_name: ansible [2024/05/29 11:52:11]DEBUG domain_memory: 2G [2024/05/29 11:52:11]DEBUG domain_cpus: 2 [2024/05/29 11:52:11]DEBUG default_job: kanku-job [2024/05/29 11:52:11]DEBUG project: devel:kanku:images [2024/05/29 11:52:11]DEBUG package: openSUSE-Leap-15.6-JeOS [2024/05/29 11:52:11]DEBUG repository: images_leap_15_6 [2024/05/29 11:52:11]DEBUG pool: default [2024/05/29 11:52:11] INFO Now you can make your modifications [2024/05/29 11:52:11] INFO Or start you new VM: [2024/05/29 11:52:11] INFO [2024/05/29 11:52:11] INFO kanku up

The generated KankuFile:

#
domain_name: ansible
default_job: kanku-job
login_user: root
login_pass: kankudai

jobs:
 kanku-job:
  -
    use_module: Kanku::Handler::SetJobContext
    options:
      host_interface: eth0
  -
    use_module: Kanku::Handler::OBSCheck
    options:
      api_url: https://api.opensuse.org/public
      # Please have a look at
      # kanku lsi
      # to find more official Images
      project: devel:kanku:images
      package: openSUSE-Leap-15.6-JeOS
      repository: images_leap_15_6
      arch: 
      use_oscrc: 0
  -
    use_module: Kanku::Handler::ImageDownload
  -
    use_module: Kanku::Handler::CreateDomain
    options:
      memory: 2G
      vcpu: 2
      use_9p: 1

      # Please be aware that enabling a pool my bind a KankuFile to specific
      # libvirtd configuration.
      # KankuFiles containing the pool parameter are not supposed to be commited
      # into projects SCM's
      # pool_name: default

  -
    use_module: Kanku::Handler::PrepareSSH
  # Kanku::Handler::CopyProfile configuration in kanku-config.yml required
  -
    use_module: Kanku::Handler::CopyProfile
  -
    use_module: Kanku::Handler::ExecuteCommandViaSSH
    options:
      commands:
        - echo "Just for testing ssh connection"

For me, everything looked ok until this stage. So I fired up: kanku up

ERROR while parsing YAML from file '/etc/kanku/dancer/config.yml': Could not open '/etc/kanku/dancer/config.yml' for reading: No such file or directory at /usr/lib/perl5/vendor_perl/5.38.2/YAML/PP/Lexer.pm line 141. at /usr/lib/perl5/vendor_perl/5.38.2/YAML/PP/Loader.pm line 94.

Looking at the mentioned directory in /etc/kanku, I just found: ~> ls -al /etc/kanku/

insgesamt 0 drwxr-xr-x 1 root root 32 29. Mai 11:51 ./ drwxr-xr-x 1 root root 5518 29. Mai 11:51 ../ drwxr-xr-x 1 root root 84 29. Mai 11:51 logging/ drwxr-xr-x 1 root root 134 29. Mai 11:51 templates/

As result, I can not proceed with the kanku setup...

M0ses commented 1 month ago

Seems like you missed one step: "Setup your environment", correct?

Please reopen if my assumption was not correct.

lrupp commented 1 month ago

You are correct: I missed the step in the 'Getting Started Guide' :-/ After executing the kanku setup --devel command, everything works as expected.

Sorry for the noise.