SlideShare a Scribd company logo
1 of 14
Download to read offline
AdminKit

Frédéric Lepied


 25 mai 2012
Outline




1   Concepts


2   Details


3   Advanced usages




      Frédéric Lepied ()   AdminKit   25 mai 2012   2 / 14
Introduction




What is AdminKit ?
    a devops tool
    in the same vein as cfengine, puppet, chef...
    more in the spirit of cfengine V2 using the Python language




    Frédéric Lepied ()            AdminKit                  25 mai 2012   3 / 14
Objectives



What AdminKit do ?
    configure and manage a set of Linux systems.
    maintain the configurations as defined.
    KISS principle.
What AdminKit do not do ?
    manage the distribution of files → you need to use a way to distribute
    AdminKit files yourself : packages, version control system, web site,
    gui...




    Frédéric Lepied ()           AdminKit                   25 mai 2012   4 / 14
Concepts




   One central configuration file describing the roles for each system you
   want to manage.
   Role files describe what is needed for fulfill the roles (packages,
   configuration files, services...).
   Configuration files are templates to allow easy customization and
   reuse.




    Frédéric Lepied ()           AdminKit                    25 mai 2012   5 / 14
Central configuration

     Objective : define roles for all the systems and their associated
     variables.
     The central configuration file is stored under
     /var/lib/adminkit/adminkit.conf
     It’s a Python file so you can use conditionals, loops
     and functions...
     Example:
 1   define_domain ( ’ domain . com ’)
 2   add_roles ( ’ host1 ’ , ’ smtpserver ’ , ’ imapserver ’)
 3   add_roles ( ’ host2 ’ , ’ webserver ’)
 4   add_var ( ’ host1 ’ , ’ ip ’ , ’ 192.168.0.1 ’)
 5   add_var ( ’ host2 ’ , ’ ip ’ , ’ 192.168.0.2 ’)



     Frédéric Lepied ()            AdminKit                    25 mai 2012   6 / 14
Central configuration functions



define_domain(<name>) define the domain name for the hosts used
           bellow this declaration.
add_roles(<host>, <name1>, ...) adds roles for <host>.
add_var(<host>, <name>, <value>) define a variable for
           <host>.
add_to_list(<host>, <name>, <value>) add a <value> to the
            list <name> for <host>.
get_var(<name>) return the value of variable <name>.




    Frédéric Lepied ()         AdminKit                  25 mai 2012   7 / 14
Role file




Role files are stored under /var/lib/adminkit/roles/
    Objectives: define the files, services and packages to
    manage for the role.
    Exemple:
    activate_service ( ’ ntp ’)
    files_for_service ( ’ ntp ’ , ’/ etc / ntp . conf ’)




    Frédéric Lepied ()         AdminKit               25 mai 2012   8 / 14
Role functions
    add_files(<file desc>, <file desc> ...)
    files_for_service(<service>, <file1>, <file2>...)
    add_dirs(<dir1>, <dir2> ...)
    check_service_by_pidfile(<service>)
    activate_service(<name>)
    deactivate_service(<name>)
    check_perms((<file>, <perm>), ...)
    add_var(<name>[, <name2>...],<value>)
    add_to_list(<name>, <value>)
    get_var(<name>)
    run_once(<command>)
    files_to_command(<command>, <file1>, ...)
    install_pkg(<pkg1>, <pkg2>...)
    global_conf(<subdir>)
    Frédéric Lepied ()         AdminKit              25 mai 2012   9 / 14
Config file


Config files are stored under /var/lib/adminkit/files/
    Objectives: file templates for easy reuse.
    jinja2 templates with access to all the variables
    defined by the roles and the global config file.
    the relative path under the root directory is the
    destination filename.
    Extract from /var/lib/adminkit/files/etc/ntp.conf (will
    go to /etc/ntp.conf):
    {% for server in timeservers %}
    server {{ server }} iburst
    {% endfor %}



    Frédéric Lepied ()        AdminKit                 25 mai 2012   10 / 14
Invoking


Single command to know :
# adminkit
Interesting options :
             -d provide debug information.
             -n dry run.
             -s log to syslog.
The execution is done in 2 steps :
     compute what needs to be done.
     execute changes to be able to do actions only once.




     Frédéric Lepied ()              AdminKit              25 mai 2012   11 / 14
Advanced usage : Global conf directive



    global_conf is a role directive to be able to process the whole
    configuration of your park on a system.
    for example you want to generate Nagios files for all your servers
    automatically. You just have to declare this in your nagios role :
    global_conf ( ’ nagios ’ )
    Then adminkit.conf will be read again by a special driver that will
    launch adminkit for all the servers setting their roles and using the
    root dir /var/lib/adminkit/nagios.




    Frédéric Lepied ()            AdminKit                    25 mai 2012   12 / 14
Advanced usage : update-adminkit.conf




   Allow to split configuration in multiple files. By default lookup in
   /var/lib/adminkit/adminkit.conf.d/*.conf. Files are copied in order.
   Use the config file /etc/update-adminkit.conf to specify other
   directories to lookup configuration parts using the TOPDIRS shell
   variable. In these case, take files from $DIR/{*.conf,files,roles}.
   Template files are copied, roles and conf files are concatenated in
   order from each directory.




    Frédéric Lepied ()          AdminKit                   25 mai 2012   13 / 14
Thanks




                        Questions ?




   Frédéric Lepied ()      AdminKit   25 mai 2012   14 / 14

More Related Content

Similar to AdminKit

Working With The Symfony Admin Generator
Working With The Symfony Admin GeneratorWorking With The Symfony Admin Generator
Working With The Symfony Admin GeneratorJohn Cleveley
 
Linux practicals T.Y.B.ScIT
Linux practicals T.Y.B.ScITLinux practicals T.Y.B.ScIT
Linux practicals T.Y.B.ScITvignesh0009
 
Rooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerRooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerPhil Estes
 
How To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iHow To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iSam Pinkhasov
 
How To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IHow To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IAlex Frenkel
 
XPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuXPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuThe Linux Foundation
 
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxUlrich Krause
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
Rupicon 2014 Action pack
Rupicon 2014 Action packRupicon 2014 Action pack
Rupicon 2014 Action packrupicon
 
How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)Kaliop-slide
 
DNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First LookDNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First Lookdaniel_nashed
 
short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)Jérôme Esnault
 
Infrastructure as code with Docker and fig
Infrastructure as code with Docker and figInfrastructure as code with Docker and fig
Infrastructure as code with Docker and figpranas_algoteq
 

Similar to AdminKit (20)

Linux Internals Part - 2
Linux Internals Part - 2Linux Internals Part - 2
Linux Internals Part - 2
 
Working With The Symfony Admin Generator
Working With The Symfony Admin GeneratorWorking With The Symfony Admin Generator
Working With The Symfony Admin Generator
 
Windows server Interview question and answers
Windows server Interview question and answersWindows server Interview question and answers
Windows server Interview question and answers
 
Linux practicals T.Y.B.ScIT
Linux practicals T.Y.B.ScITLinux practicals T.Y.B.ScIT
Linux practicals T.Y.B.ScIT
 
Rooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerRooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in Docker
 
Readme
ReadmeReadme
Readme
 
How To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iHow To Start Up With PHP In IBM i
How To Start Up With PHP In IBM i
 
How To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IHow To Start Up With Php In Ibm I
How To Start Up With Php In Ibm I
 
DB2UDB_the_Basics
DB2UDB_the_BasicsDB2UDB_the_Basics
DB2UDB_the_Basics
 
Linux Internals Part - 3
Linux Internals Part - 3Linux Internals Part - 3
Linux Internals Part - 3
 
DrupalCafe Kyiv drupal8
DrupalCafe Kyiv drupal8DrupalCafe Kyiv drupal8
DrupalCafe Kyiv drupal8
 
XPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuXPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, Fujitsu
 
dominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptxdominocamp2022.t1s1.dde.pptx
dominocamp2022.t1s1.dde.pptx
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Rupicon 2014 Action pack
Rupicon 2014 Action packRupicon 2014 Action pack
Rupicon 2014 Action pack
 
2007 Zend Con Mvc Edited Irmantas
2007 Zend Con Mvc Edited Irmantas2007 Zend Con Mvc Edited Irmantas
2007 Zend Con Mvc Edited Irmantas
 
How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)
 
DNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First LookDNUG HCL Domino 11 First Look
DNUG HCL Domino 11 First Look
 
short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)
 
Infrastructure as code with Docker and fig
Infrastructure as code with Docker and figInfrastructure as code with Docker and fig
Infrastructure as code with Docker and fig
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 

AdminKit

  • 2. Outline 1 Concepts 2 Details 3 Advanced usages Frédéric Lepied () AdminKit 25 mai 2012 2 / 14
  • 3. Introduction What is AdminKit ? a devops tool in the same vein as cfengine, puppet, chef... more in the spirit of cfengine V2 using the Python language Frédéric Lepied () AdminKit 25 mai 2012 3 / 14
  • 4. Objectives What AdminKit do ? configure and manage a set of Linux systems. maintain the configurations as defined. KISS principle. What AdminKit do not do ? manage the distribution of files → you need to use a way to distribute AdminKit files yourself : packages, version control system, web site, gui... Frédéric Lepied () AdminKit 25 mai 2012 4 / 14
  • 5. Concepts One central configuration file describing the roles for each system you want to manage. Role files describe what is needed for fulfill the roles (packages, configuration files, services...). Configuration files are templates to allow easy customization and reuse. Frédéric Lepied () AdminKit 25 mai 2012 5 / 14
  • 6. Central configuration Objective : define roles for all the systems and their associated variables. The central configuration file is stored under /var/lib/adminkit/adminkit.conf It’s a Python file so you can use conditionals, loops and functions... Example: 1 define_domain ( ’ domain . com ’) 2 add_roles ( ’ host1 ’ , ’ smtpserver ’ , ’ imapserver ’) 3 add_roles ( ’ host2 ’ , ’ webserver ’) 4 add_var ( ’ host1 ’ , ’ ip ’ , ’ 192.168.0.1 ’) 5 add_var ( ’ host2 ’ , ’ ip ’ , ’ 192.168.0.2 ’) Frédéric Lepied () AdminKit 25 mai 2012 6 / 14
  • 7. Central configuration functions define_domain(<name>) define the domain name for the hosts used bellow this declaration. add_roles(<host>, <name1>, ...) adds roles for <host>. add_var(<host>, <name>, <value>) define a variable for <host>. add_to_list(<host>, <name>, <value>) add a <value> to the list <name> for <host>. get_var(<name>) return the value of variable <name>. Frédéric Lepied () AdminKit 25 mai 2012 7 / 14
  • 8. Role file Role files are stored under /var/lib/adminkit/roles/ Objectives: define the files, services and packages to manage for the role. Exemple: activate_service ( ’ ntp ’) files_for_service ( ’ ntp ’ , ’/ etc / ntp . conf ’) Frédéric Lepied () AdminKit 25 mai 2012 8 / 14
  • 9. Role functions add_files(<file desc>, <file desc> ...) files_for_service(<service>, <file1>, <file2>...) add_dirs(<dir1>, <dir2> ...) check_service_by_pidfile(<service>) activate_service(<name>) deactivate_service(<name>) check_perms((<file>, <perm>), ...) add_var(<name>[, <name2>...],<value>) add_to_list(<name>, <value>) get_var(<name>) run_once(<command>) files_to_command(<command>, <file1>, ...) install_pkg(<pkg1>, <pkg2>...) global_conf(<subdir>) Frédéric Lepied () AdminKit 25 mai 2012 9 / 14
  • 10. Config file Config files are stored under /var/lib/adminkit/files/ Objectives: file templates for easy reuse. jinja2 templates with access to all the variables defined by the roles and the global config file. the relative path under the root directory is the destination filename. Extract from /var/lib/adminkit/files/etc/ntp.conf (will go to /etc/ntp.conf): {% for server in timeservers %} server {{ server }} iburst {% endfor %} Frédéric Lepied () AdminKit 25 mai 2012 10 / 14
  • 11. Invoking Single command to know : # adminkit Interesting options : -d provide debug information. -n dry run. -s log to syslog. The execution is done in 2 steps : compute what needs to be done. execute changes to be able to do actions only once. Frédéric Lepied () AdminKit 25 mai 2012 11 / 14
  • 12. Advanced usage : Global conf directive global_conf is a role directive to be able to process the whole configuration of your park on a system. for example you want to generate Nagios files for all your servers automatically. You just have to declare this in your nagios role : global_conf ( ’ nagios ’ ) Then adminkit.conf will be read again by a special driver that will launch adminkit for all the servers setting their roles and using the root dir /var/lib/adminkit/nagios. Frédéric Lepied () AdminKit 25 mai 2012 12 / 14
  • 13. Advanced usage : update-adminkit.conf Allow to split configuration in multiple files. By default lookup in /var/lib/adminkit/adminkit.conf.d/*.conf. Files are copied in order. Use the config file /etc/update-adminkit.conf to specify other directories to lookup configuration parts using the TOPDIRS shell variable. In these case, take files from $DIR/{*.conf,files,roles}. Template files are copied, roles and conf files are concatenated in order from each directory. Frédéric Lepied () AdminKit 25 mai 2012 13 / 14
  • 14. Thanks Questions ? Frédéric Lepied () AdminKit 25 mai 2012 14 / 14