diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 45c10d7b..00000000 --- a/.gitattributes +++ /dev/null @@ -1,8 +0,0 @@ -.gitignore export-ignore -.gitattributes export-ignore -.gitkeep export-ignore -docs/speeches export-ignore -docs/video export-ignore -docs/src/man7 export-ignore -bin/build-helper export-ignore -README-maintainers export-ignore diff --git a/.gitignore b/.gitignore index 85a8ccc7..10d98990 100644 --- a/.gitignore +++ b/.gitignore @@ -1,63 +1,15 @@ # -vim -# Swap -[._]*.s[a-v][a-z] -[._]*.sw[a-p] -[._]s[a-rt-v][a-z] -[._]ss[a-gi-z] -[._]sw[a-p] - -# Session -Session.vim - -# Temporary -.netrwhist -*~ -*.tmp -# Auto-generated tag files -tags -# Persistent undo -[._]*.un~ +.*.swp # Ignore generated manpages -docs/src/.marker -docs/src/man1/*.1 -docs/src/man7/*.7 -docs/src/man7/cdist-type__*.rst -docs/src/cdist-reference.rst -docs/src/cdist-types.rst -docs/src/cdist.cfg.skeleton +doc/man/.marker +doc/man/man1/*.1 +doc/man/man7/*.7 +doc/man/man*/*.html +doc/man/man*/*.xml +doc/man/man7/cdist-type__*.text +doc/man/man7/cdist-reference.text +doc/man/man*/docbook-xsl.css -# Ignore cdist cache for version control -/cache/ - -# Ignore inventory basedir -cdist/inventory/ - -# Python: cache, distutils, distribution in general -__pycache__/ -*.pyc -/MANIFEST -dist/ -cdist/version.py -cdist.egg-info/ - -# sphinx build dirs, cache -_build/ -docs/dist - -# Ignore temp files used for signing -cdist-*.tar -cdist-*.tar.gz -cdist-*.tar.gz.asc - -# Packaging: Archlinux -/PKGBUILD -/cdist-*.pkg.tar.xz -/cdist-*.tar.gz -/pkg -/src -build -.lock-* -.git-current-branch -.lock* -.pypi-release +# Ignore cache for version control +cache/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 1cc17995..00000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,18 +0,0 @@ -stages: - - test - -unit_tests: - stage: test - script: - - ./bin/build-helper version - - ./bin/build-helper test - -pycodestyle: - stage: test - script: - - ./bin/build-helper pycodestyle - -shellcheck: - stage: test - script: - - ./bin/build-helper shellcheck diff --git a/BUG b/BUG new file mode 100644 index 00000000..9d57ee49 --- /dev/null +++ b/BUG @@ -0,0 +1 @@ +See core/__cdist_object_run. diff --git a/HACKERS_README b/HACKERS_README new file mode 100755 index 00000000..ad3fe3fd --- /dev/null +++ b/HACKERS_README @@ -0,0 +1,40 @@ +cat << eof + +Hey hackers, + +this README is for you, for those who want to dig into cdist, hack it or try +to get a deeper understanding. Please read doc/man/man7/cdist-hacker.text. + +I hope you have a lot of fun with cdist, because it was also a lot of fun to +develop it! + + -- Nico, 20110324 + +## Running cdist when developing + +This file is suitable for execution and saving the objects and +explorers from cdist. I usually do it like this: + + % ./HACKERS_README + +################################################################################ +eof + +set -x +# Tell the user what we do, so this script makes sense during execution + +# prepare use (only from top level directory) +export PATH="$(pwd -P)/bin:$PATH" +export __cdist_conf_dir="$(pwd -P)/conf" + +# Allow user to supply hostname +target="${1:-localhost}" + +# And use hostname as basedir (dangerous, but hackers know what they do) +export __cdist_local_base_dir="/tmp/$target" + +# Run the real script +cdist-deploy-to "$target" + +# Display results +find "${__cdist_local_base_dir}" diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 14682ad6..00000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - cdist - Copyright (C) 2019 ungleich-public - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - cdist Copyright (C) 2019 ungleich-public - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index a675f446..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,3 +0,0 @@ -include docs/changelog -recursive-include docs/gfx *.png *.text -recursive-include docs *.text *.html *.1 *.7 diff --git a/Makefile b/Makefile deleted file mode 100644 index f89ac1e7..00000000 --- a/Makefile +++ /dev/null @@ -1,148 +0,0 @@ -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo "man build only man user documentation" - @echo "html build only html user documentation" - @echo "docs build both man and html user documentation" - @echo "dotman build man pages for types in your ~/.cdist directory" - @echo "speeches build speeches pdf files" - @echo "install install in the system site-packages directory" - @echo "install-user install in the user site-packages directory" - @echo "docs-clean clean documentation" - @echo "clean clean" - -DOCS_SRC_DIR=./docs/src -SPEECHDIR=./docs/speeches -TYPEDIR=./cdist/conf/type - -SPHINXM=make -C $(DOCS_SRC_DIR) man -SPHINXH=make -C $(DOCS_SRC_DIR) html -SPHINXC=make -C $(DOCS_SRC_DIR) clean - -################################################################################ -# Manpages -# -MAN7DSTDIR=$(DOCS_SRC_DIR)/man7 - -# Manpages #1: Types -# Use shell / ls to get complete list - $(TYPEDIR)/*/man.rst does not work -# Using ls does not work if no file with given pattern exist, so use wildcard -MANTYPESRC=$(wildcard $(TYPEDIR)/*/man.rst) -MANTYPEPREFIX=$(subst $(TYPEDIR)/,$(MAN7DSTDIR)/cdist-type,$(MANTYPESRC)) -MANTYPES=$(subst /man.rst,.rst,$(MANTYPEPREFIX)) - -# Link manpage: do not create man.html but correct named file -$(MAN7DSTDIR)/cdist-type%.rst: $(TYPEDIR)/%/man.rst - mkdir -p $(MAN7DSTDIR) - ln -sf "../../../$^" $@ - -# Manpages #2: reference -DOCSREF=$(MAN7DSTDIR)/cdist-reference.rst -DOCSREFSH=$(DOCS_SRC_DIR)/cdist-reference.rst.sh - -$(DOCSREF): $(DOCSREFSH) - $(DOCSREFSH) - -# Html types list with references -DOCSTYPESREF=$(MAN7DSTDIR)/cdist-types.rst -DOCSTYPESREFSH=$(DOCS_SRC_DIR)/cdist-types.rst.sh - -$(DOCSTYPESREF): $(DOCSTYPESREFSH) - $(DOCSTYPESREFSH) - -DOCSCFGSKEL=./configuration/cdist.cfg.skeleton - -configskel: $(DOCSCFGSKEL) - cp -f "$(DOCSCFGSKEL)" "$(DOCS_SRC_DIR)/" - -version: - @[ -f "cdist/version.py" ] || { \ - printf "Missing 'cdist/version.py', please generate it first.\n" && exit 1; \ - } - -# Manpages #3: generic part -man: version $(MANTYPES) $(DOCSREF) - $(SPHINXM) - -html: version configskel $(MANTYPES) $(DOCSREF) $(DOCSTYPESREF) - $(SPHINXH) - -docs: man html - -docs-clean: - $(SPHINXC) - -# Manpages: .cdist Types -DOT_CDIST_PATH=${HOME}/.cdist -DOTMAN7DSTDIR=$(MAN7DSTDIR) -DOTTYPEDIR=$(DOT_CDIST_PATH)/type -DOTMANTYPESRC=$(wildcard $(DOTTYPEDIR)/*/man.rst) -DOTMANTYPEPREFIX=$(subst $(DOTTYPEDIR)/,$(DOTMAN7DSTDIR)/cdist-type,$(DOTMANTYPESRC)) -DOTMANTYPES=$(subst /man.rst,.rst,$(DOTMANTYPEPREFIX)) - -# Link manpage: do not create man.html but correct named file -$(DOTMAN7DSTDIR)/cdist-type%.rst: $(DOTTYPEDIR)/%/man.rst - ln -sf "$^" $@ - -dotman: version $(DOTMANTYPES) - $(SPHINXM) - -################################################################################ -# Speeches -# -SPEECHESOURCES=$(SPEECHDIR)/*.tex -SPEECHES=$(SPEECHESOURCES:.tex=.pdf) - -# Create speeches and ensure Toc is up-to-date -$(SPEECHDIR)/%.pdf: $(SPEECHDIR)/%.tex - pdflatex -output-directory $(SPEECHDIR) $^ - pdflatex -output-directory $(SPEECHDIR) $^ - pdflatex -output-directory $(SPEECHDIR) $^ - -speeches: $(SPEECHES) - -################################################################################ -# Misc -# -clean: docs-clean - rm -f $(DOCS_SRC_DIR)/cdist-reference.rst - rm -f $(DOCS_SRC_DIR)/cdist-types.rst - rm -f $(DOCS_SRC_DIR)/cdist.cfg.skeleton - - find "$(DOCS_SRC_DIR)" -mindepth 2 -type l \ - | xargs rm -f - - find * -name __pycache__ | xargs rm -rf - - # distutils - rm -rf ./build - -################################################################################ -# install -# - -install: - python3 setup.py install - -install-user: - python3 setup.py install --user diff --git a/PKGBUILD.in b/PKGBUILD.in deleted file mode 100755 index c0188e68..00000000 --- a/PKGBUILD.in +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -version="$1" -outfile=${0%.in} - -cat << eof > "${outfile}" -pkgname=cdist -pkgver=$version -pkgrel=1 -pkgdesc='A Usable Configuration Management System"' -arch=('any') -url='https://www.cdi.st/' -license=('GPL3') -depends=('python>=3.2.0') -source=("http://pypi.python.org/packages/source/c/cdist/cdist-\${pkgver}.tar.gz") - -package() { - cd cdist-\${pkgver} - python3 setup.py build install --root="\${pkgdir}" - find "\$pkgdir" -type d -exec chmod 0755 {} \; - find "\$pkgdir" -type f -exec chmod a+r {} \; -} -eof - -makepkg -g >> "${outfile}" - -# Fix this issue: -# error: failed to upload cdist-3.1.6-1.src.tar.gz: Error - all files must have permissions of 644 or 755. -chmod a+r "${outfile}" diff --git a/README b/README index caf2dac8..295b9152 100644 --- a/README +++ b/README @@ -1,7 +1,240 @@ -cdist ------ +[[!meta title="cdist - usable configuration management"]] + + + .. . .x+=:. s + dF @88> z` ^% :8 + '88bu. %8P . origin/ + + # Stay on a specific version + version=1.7 + git checkout -b $version origin/$version + +### Mirrors + + * git://github.com/telmich/cdist.git ([github](https://github.com/telmich/cdist)) + * git://git.sans.ethz.ch/cdist ([sans](http://git.sans.ethz.ch/?p=cdist;a=summary)) + +## Update + +To upgrade cdist in the current branch use + + git pull + + # Also update the manpages + ./build.sh man + export MANPATH=$MANPATH:$(pwd -P)/doc/man + +If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break. +The master branch on the other hand is the development branch and may not be +working, break your setup or eat the tree in your garden. + +### Upgrading from 1.6 to 1.7 + +* If you used the global explorer **hardware_type**, you need to change + your code to use **machine** instead. + +### Upgrading from 1.5 to 1.6 + +* If you used **\_\_package_apt --preseed**, you need to use the new + type **\_\_debconf_set_selections** instead. +* The **\_\_package** types accepted either --state deinstalled or + --state uninstaaled. Starting with 1.6, it was made consistently + to --state removed. + +### Upgrading from 1.3 to 1.5 + +No incompatiblities. + +### Upgrading from 1.2 to 1.3 + +Rename **gencode** of every type to **gencode-remote**. + +### Upgrading from 1.1 to 1.2 + +No incompatiblities. + +### Upgrading from 1.0 to 1.1 + +In 1.1 the type **\_\_file** was split into **\_\_directory**, **\_\_file** and +**\_\_link**. The parameter **--type** was removed from **\_\_file**. Thus you +need to replace **\_\_file** calls in your manifests: + + * Remove --type from all \_\_file calls + * If type was symlink, use \_\_link and --type symbolic + * If type was directory, use \_\_directory + + +## Support + +### IRC + +You can join the development ***IRC channel*** +[#cstar on irc.freenode.org](irc://irc.freenode.org/#cstar). + +### Mailing list + +Bug reports, questions, patches, etc. should be send to the +[cdist mailing list](http://l.schottelius.org/mailman/listinfo/cdist). + +### Commercial support + +You can request commercial support for cdist from +[my company](http://firma.schottelius.org/english/). + +## Used by + +If you're using cdist, feel free to send a report to the mailing list. +Interesting information are for instance + + * Which services do you manage? + * How many machines do you manage? + * What are the pros/cons you see in cdist? + * General comments/critics + +### Nico Schottelius, Systems Group ETH Zurich and privately + +Yes, I'm actually eating my own dogfood and currently managing + + * [plone](http://plone.org/) (cms) + * [moinmoin](http://moinmo.in/) (wiki) + * [apache](http://httpd.apache.org/) (webserver) + * [kerberos (mit)](http://web.mit.edu/kerberos/) (authentication) + * [nss-pam-ldapd](http://arthurdejong.org/nss-pam-ldapd/) (authentication) + * [ircd-hybrid](http://www.ircd-hybrid.org/) (chat) + * [stunnel](http://stunnel.mirt.net/) (SSL tunnel) + * [mercurial-server](http://www.lshift.net/mercurial-server.html) (version control) + * [xfce](http://www.xfce.org/) (lightweight desktop environment) + * [slim](http://slim.berlios.de/) (graphical login manager for X11) + +with cdist on more than **60** production machines of the +[Systems Group](http://www.systems.ethz.ch) at the +[ETH Zurich](http://www.ethz.ch) as well at home. + +### Steven Armstrong, CBRG ETH Zurich + +The CBRG is managing most of their compute clusters with cdist. -cdist is a usable configuration management system. -For the web documentation have a look at https://www.cdi.st/ -or at docs/src for reStructuredText manual. diff --git a/README-maintainers b/README-maintainers deleted file mode 100644 index af57f475..00000000 --- a/README-maintainers +++ /dev/null @@ -1,4 +0,0 @@ -Maintainers should use ./bin/build-helper script. - -Makefile is intended for end users. It can be used for non-maintaining -targets that can be run from pure source (without git repository). diff --git a/bin/build-helper b/bin/build-helper deleted file mode 100755 index ed41e438..00000000 --- a/bin/build-helper +++ /dev/null @@ -1,566 +0,0 @@ -#!/bin/sh -# -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2016-2019 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This file contains the heavy lifting found usually in the Makefile. -# - -usage() { - printf "usage: %s TARGET [TARGET-ARGS...] - Available targets: - changelog-changes - changelog-version - check-date - check-unittest - ml-release - archlinux-release - pypi-release - release-git-tag - sign-git-release - release - test - test-remote - pycodestyle - pep8 - check-pycodestyle - shellcheck-global-explorers - shellcheck-type-explorers - shellcheck-manifests - shellcheck-local-gencodes - shellcheck-remote-gencodes - shellcheck-scripts - shellcheck-gencodes - shellcheck-types - shellcheck - shellcheck-type-files - shellcheck-with-files - shellcheck-build-helper - check-shellcheck - version-branch - version - target-version - clean - distclean\n" "$1" -} - -basename="${0##*/}" - -if [ $# -lt 1 ] -then - usage "${basename}" - exit 1 -fi - -option=$1; shift - -SHELLCHECKCMD="shellcheck -s sh -f gcc -x" -# Skip SC2154 for variables starting with __ since such variables are cdist -# environment variables. -SHELLCHECK_SKIP=': __.*is referenced but not assigned.*\[SC2154\]' -SHELLCHECKTMP=".shellcheck.tmp" - -# Change to checkout directory -basedir="${0%/*}/../" -cd "$basedir" - -case "$option" in - changelog-changes) - if [ "$#" -eq 1 ]; then - start=$1 - else - start="[[:digit:]]" - fi - - end="[[:digit:]]" - - awk -F: "BEGIN { start=0 } - { - if(start == 0) { - if (\$0 ~ /^$start/) { - start = 1 - } - } else { - if (\$0 ~ /^$end/) { - exit - } else { - print \$0 - } - } - }" "$basedir/docs/changelog" - ;; - - changelog-version) - # get version from changelog - grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/:.*//' - ;; - - check-date) - # verify date in changelog is today - date_today="$(date +%Y-%m-%d)" - date_changelog=$(grep '^[[:digit:]]' "$basedir/docs/changelog" | head -n1 | sed 's/.*: //') - - if [ "$date_today" != "$date_changelog" ]; then - printf "Date in changelog is not today\n" - printf "Changelog date: %s\n" "${date_changelog}" - exit 1 - fi - ;; - - check-unittest) - "$0" test - ;; - - ml-release) - if [ $# -ne 1 ]; then - printf "%s ml-release version\n" "$0" >&2 - exit 1 - fi - - version=$1; shift - - ( - cat << eof -Subject: cdist $version has been released - -Hello .*, - -cdist $version has been released with the following changes: - -eof - - "$0" changelog-changes "$version" - cat << eof - -eof - ) > mailinglist.tmp - ;; - - archlinux-release) - if [ $# -ne 1 ]; then - printf "%s archlinux-release version\n" "$0" >&2 - exit 1 - fi - version=$1; shift - - ARCHLINUXTAR="cdist-${version}-1.src.tar.gz" - ./PKGBUILD.in "${version}" - umask 022 - mkaurball - burp -c system "${ARCHLINUXTAR}" - ;; - - pypi-release) - # Ensure that pypi release has the right version - "$0" version - - make docs-clean - make docs - python3 setup.py sdist upload - ;; - - release-git-tag) - target_version=$($0 changelog-version) - if git rev-parse --verify "refs/tags/${target_version}" 2>/dev/null; then - printf "Tag for %s exists, aborting\n" "${target_version}" - exit 1 - fi - printf "Enter tag description for %s: " "${target_version}" - read -r tagmessage - - # setup for signed tags: - # gpg --fulL-gen-key - # gpg --list-secret-keys --keyid-format LONG - # git config --local user.signingkey - # for exporting pub key: - # gpg --armor --export > pubkey.asc - # gpg --output pubkey.gpg --export - # show tag with signature - # git show - # verify tag signature - # git tag -v - # - # gpg verify signature - # gpg --verify - # gpg --no-default-keyring --keyring --verify - # Ensure gpg-agent is running. - GPG_TTY=$(tty) - export GPG_TTY - gpg-agent - - git tag -s "$target_version" -m "$tagmessage" - git push --tags - ;; - - sign-git-release) - if [ $# -lt 2 ] - then - printf "usage: %s sign-git-release TAG TOKEN [ARCHIVE]\n" "$0" - printf " if ARCHIVE is not specified then it is created\n" - exit 1 - fi - tag="$1" - if ! git rev-parse -q --verify "${tag}" >/dev/null 2>&1 - then - printf "Tag \"%s\" not found.\n" "${tag}" - exit 1 - fi - token="$2" - if [ $# -gt 2 ] - then - archivename="$3" - else - archivename="cdist-${tag}.tar" - git archive --prefix="cdist-${tag}/" -o "${archivename}" "${tag}" \ - || exit 1 - # make sure target version is generated - "$0" target-version - tar -x -f "${archivename}" || exit 1 - cp cdist/version.py "cdist-${tag}/cdist/version.py" || exit 1 - tar -c -f "${archivename}" "cdist-${tag}/" || exit 1 - rm -r -f "cdist-${tag}/" - gzip "${archivename}" || exit 1 - archivename="${archivename}.gz" - fi - gpg --armor --detach-sign "${archivename}" || exit 1 - - project="ungleich-public%2Fcdist" - sed_cmd='s/^.*"markdown":"\([^"]*\)".*$/\1/' - - # upload archive - response_archive=$(curl -f -X POST \ - --http1.1 \ - -H "PRIVATE-TOKEN: ${token}" \ - -F "file=@${archivename}" \ - "https://code.ungleich.ch/api/v4/projects/${project}/uploads" \ - | sed "${sed_cmd}") || exit 1 - - # upload archive signature - response_archive_sig=$(curl -f -X POST \ - --http1.1 \ - -H "PRIVATE-TOKEN: ${token}" \ - -F "file=@${archivename}.asc" \ - "https://code.ungleich.ch/api/v4/projects/${project}/uploads" \ - | sed "${sed_cmd}") || exit 1 - - # make release - changelog=$("$0" changelog-changes "$1" | sed 's/^[[:space:]]*//') - release_notes=$( - printf "%s\n\n%s\n\n**Changelog**\n\n%s\n" \ - "${response_archive}" "${response_archive_sig}" "${changelog}" - ) - curl -f -X POST \ - -H "PRIVATE-TOKEN: ${token}" \ - -F "description=${release_notes}" \ - "https://code.ungleich.ch/api/v4/projects/${project}/repository/tags/${tag}/release" \ - || exit 1 - - # remove generated files (archive and asc) - if [ $# -eq 2 ] - then - rm -f "${archivename}" - fi - rm -f "${archivename}.asc" - ;; - - release) - set -e - target_version=$($0 changelog-version) - target_branch=$($0 version-branch) - - printf "Beginning release process for %s\n" "${target_version}" - - # First check everything is sane - "$0" check-date - "$0" check-unittest - "$0" check-pycodestyle - "$0" check-shellcheck - - # Generate version file to be included in packaging - "$0" target-version - - # Ensure the git status is clean, else abort - if ! git diff-index --name-only --exit-code HEAD ; then - printf "Unclean tree, see files above, aborting.\n" - exit 1 - fi - - # Ensure we are on the master branch - masterbranch=yes - if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then - printf "Releases are happening from the master branch, aborting.\n" - - printf "Enter the magic word to release anyway:" - read -r magicword - - if [ "$magicword" = "iknowwhatido" ]; then - masterbranch=no - else - exit 1 - fi - fi - - if [ "$masterbranch" = yes ]; then - # Ensure version branch exists - if ! git rev-parse --verify "refs/heads/${target_branch}" 2>/dev/null; then - git branch "$target_branch" - fi - - # Merge master branch into version branch - git checkout "$target_branch" - git merge master - fi - - # Verify that after the merge everything works - "$0" check-date - "$0" check-unittest - - # Generate documentation (man and html) - # First, clean old generated docs - make docs-clean - make docs - - ############################################################# - # Everything green, let's do the release - - # Tag the current commit - "$0" release-git-tag - - # Also merge back the version branch - if [ "$masterbranch" = yes ]; then - git checkout master - git merge "$target_branch" - fi - - # Publish git changes - # if you want to have mirror locally then uncomment this and comment below - # git push --mirror - git push - # push also new branch and set up tracking - git push -u origin "${target_branch}" - # fi - - # Create and publish package for pypi - "$0" pypi-release - - # sign git tag - printf "Enter upstream repository authentication token: " - read -r token - "$0" sign-git-release "${target_version}" "${token}" - - # Announce change on ML - "$0" ml-release "${target_version}" - - cat << eof -Manual steps post release: - - cdist-web - - send generated mailinglist.tmp mail - - twitter -eof - ;; - - test) - if [ ! -f "cdist/version.py" ] - then - printf "cdist/version.py is missing, generate it first.\n" - exit 1 - fi - - PYTHONPATH="$(pwd -P)" - export PYTHONPATH - - if [ $# -lt 1 ]; then - python3 -m cdist.test - else - python3 -m unittest "$@" - fi - ;; - - test-remote) - if [ ! -f "cdist/version.py" ] - then - printf "cdist/version.py is missing, generate it first.\n" - exit 1 - fi - - PYTHONPATH="$(pwd -P)" - export PYTHONPATH - - python3 -m cdist.test.exec.remote - ;; - - pycodestyle|pep8) - pycodestyle "${basedir}" "${basedir}/scripts/cdist" - ;; - - check-pycodestyle) - "$0" pycodestyle - printf "\\nPlease review pycodestyle report.\\n" - while true - do - printf "Continue (yes/no)?\n" - any= - read -r any - case "$any" in - yes) - break - ;; - no) - exit 1 - ;; - *) - printf "Please answer with 'yes' or 'no' explicitly.\n" - ;; - esac - done - ;; - - shellcheck-global-explorers) - # shellcheck disable=SC2086 - find cdist/conf/explorer -type f -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-type-explorers) - # shellcheck disable=SC2086 - find cdist/conf/type -type f -path "*/explorer/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-manifests) - # shellcheck disable=SC2086 - find cdist/conf/type -type f -name manifest -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-local-gencodes) - # shellcheck disable=SC2086 - find cdist/conf/type -type f -name gencode-local -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-remote-gencodes) - # shellcheck disable=SC2086 - find cdist/conf/type -type f -name gencode-remote -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-scripts) - # shellcheck disable=SC2086 - ${SHELLCHECKCMD} scripts/cdist-dump scripts/cdist-new-type > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-gencodes) - "$0" shellcheck-local-gencodes || exit 1 - "$0" shellcheck-remote-gencodes || exit 1 - ;; - - shellcheck-types) - "$0" shellcheck-type-explorers || exit 1 - "$0" shellcheck-manifests || exit 1 - "$0" shellcheck-gencodes || exit 1 - ;; - - shellcheck) - "$0" shellcheck-global-explorers || exit 1 - "$0" shellcheck-types || exit 1 - "$0" shellcheck-scripts || exit 1 - ;; - - shellcheck-type-files) - # shellcheck disable=SC2086 - find cdist/conf/type -type f -path "*/files/*" -exec ${SHELLCHECKCMD} {} + | grep -v "${SHELLCHECK_SKIP}" > "${SHELLCHECKTMP}" - test ! -s "${SHELLCHECKTMP}" || { cat "${SHELLCHECKTMP}"; exit 1; } - ;; - - shellcheck-with-files) - "$0" shellcheck || exit 1 - "$0" shellcheck-type-files || exit 1 - ;; - - shellcheck-build-helper) - ${SHELLCHECKCMD} ./bin/build-helper - ;; - - check-shellcheck) - "$0" shellcheck - printf "\\nPlease review shellcheck report.\\n" - while true - do - printf "Continue (yes/no)?\n" - any= - read -r any - case "$any" in - yes) - break - ;; - no) - exit 1 - ;; - *) - printf "Please answer with 'yes' or 'no' explicitly.\n" - ;; - esac - done - ;; - - version-branch) - "$0" changelog-version | cut -d. -f '1,2' - ;; - - version) - printf "VERSION = \"%s\"\n" "$(git describe)" > cdist/version.py - ;; - - target-version) - target_version=$($0 changelog-version) - printf "VERSION = \"%s\"\n" "${target_version}" > cdist/version.py - ;; - - clean) - make clean - - # Archlinux - rm -f cdist-*.pkg.tar.xz cdist-*.tar.gz - rm -rf pkg/ src/ - - rm -f MANIFEST PKGBUILD - rm -rf dist/ - - # Signed release - rm -f cdist-*.tar.gz - rm -f cdist-*.tar.gz.asc - - # Temp files - rm -f ./*.tmp - rm -f ./.*.tmp - ;; - - distclean) - "$0" clean - rm -f cdist/version.py - ;; - *) - printf "Unknown target: '%s'.\n" "${option}" >&2 - usage "${basename}" - exit 1 - ;; - -esac diff --git a/bin/cdist-config b/bin/cdist-config new file mode 100644 index 00000000..b15d1f3e --- /dev/null +++ b/bin/cdist-config @@ -0,0 +1,355 @@ +#!/bin/sh +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +__cdist_version="1.8.0" + +# +# Enable debugging: +# +# __cdist_debug unset -> no debug +# __cdist_debug = 1 -> debug via __cdist_echo +# __cdist_debug = 2 -> debug via set -x +# + +: ${__cdist_debug:=0} +[ "$__cdist_debug" = 2 ] && set -x + +# Fail if something bogus is going on +set -u + +################################################################################ +# cconf standard vars prefixed with cdist + +__cdist_pwd="$(pwd -P)" +__cdist_mydir="${0%/*}"; +__cdist_abs_mydir="$(cd "$__cdist_mydir" && pwd -P)" +__cdist_myname=${0##*/}; +__cdist_abs_myname="$__cdist_abs_mydir/$__cdist_myname" + +################################################################################ +# Names / Constants +# +# Most values can be overriden from outside, so you can +# customise paths as you like (for distributors, geeks and hackers) +# + +: ${__cdist_name_bin:=bin} +: ${__cdist_name_cache:=cache} +: ${__cdist_name_code:=code} +: ${__cdist_name_conf_dir:=conf} +: ${__cdist_name_core_dir:=core} +: ${__cdist_name_dot_cdist:=.cdist} +: ${__cdist_name_explorer:=explorer} +: ${__cdist_name_gencode:=gencode} +: ${__cdist_name_gencode_local:=local} +: ${__cdist_name_gencode_remote:=remote} +: ${__cdist_name_global:=global} +: ${__cdist_name_host:=host} +: ${__cdist_name_init:=init} +: ${__cdist_name_manifest:=manifest} +: ${__cdist_name_object:=object} +: ${__cdist_name_object_finished:=done} +: ${__cdist_name_object_prepared:=prepared} +: ${__cdist_name_object_id:=object_id} +: ${__cdist_name_object_source:=source} +: ${__cdist_name_objects_created:=.objects_created} +: ${__cdist_name_out_dir:=out} +: ${__cdist_name_parameter:=parameter} +: ${__cdist_name_parameter_required:=required} +: ${__cdist_name_parameter_optional:=optional} +: ${__cdist_name_require:=require} +: ${__cdist_name_self:=self} +: ${__cdist_name_singleton:=singleton} +: ${__cdist_name_target_host:=target_host} +: ${__cdist_name_target_user:=target_user} +: ${__cdist_name_type:=type} +: ${__cdist_name_type_bin:=type_bin} +: ${__cdist_name_type_explorer:=type_explorer} +: ${__cdist_name_type_explorer_pushed:=.explorer_pushed} + +# Used for IDs: Allow everything not starting with - and . +: ${__cdist_sane_regexp:=[^-\.].*} + +# Default remote user +: ${__cdist_remote_user:=root} + + +################################################################################ +# Exported variable names (usable for non core) +# +: ${__cdist_name_var_explorer:=__$__cdist_name_explorer} +: ${__cdist_name_var_type_explorer:=__$__cdist_name_type_explorer} +: ${__cdist_name_var_global:=__$__cdist_name_global} +: ${__cdist_name_var_manifest:=__$__cdist_name_manifest} +: ${__cdist_name_var_target_host:=__$__cdist_name_target_host} +: ${__cdist_name_var_target_user:=__$__cdist_name_target_user} +: ${__cdist_name_var_object:=__$__cdist_name_object} +: ${__cdist_name_var_object_id:=__$__cdist_name_object_id} +: ${__cdist_name_var_self:=__$__cdist_name_self} +: ${__cdist_name_var_type:=__$__cdist_name_type} + + +################################################################################ +# Tempfiles +# +: ${__cdist_tmp_base_dir=/tmp} +__cdist_tmp_dir=$(mktemp -d "$__cdist_tmp_base_dir/cdist.XXXXXXXXXXXX") +__cdist_tmp_file=$(mktemp "$__cdist_tmp_dir/cdist.XXXXXXXXXXXX") + +################################################################################ +# Local Base +# +: ${__cdist_local_base_dir:=$__cdist_tmp_dir} + +# Cache may *NOT* be below __cdist_local_base_dir! +: ${__cdist_local_base_cache_dir:=$__cdist_abs_mydir/../$__cdist_name_cache} + +: ${__cdist_conf_dir:="$(cd "$__cdist_abs_mydir/../conf" && pwd -P)"} +: ${__cdist_core_dir:="$(cd "$__cdist_abs_mydir/../$__cdist_name_core_dir" && pwd -P)"} + +: ${__cdist_explorer_dir:=$__cdist_conf_dir/$__cdist_name_explorer} +: ${__cdist_manifest_dir:=$__cdist_conf_dir/$__cdist_name_manifest} +: ${__cdist_manifest_init:=$__cdist_manifest_dir/$__cdist_name_init} +: ${__cdist_type_dir:=$__cdist_conf_dir/$__cdist_name_type} + +################################################################################ +# Local output +# +: ${__cdist_out_dir:=$__cdist_local_base_dir/$__cdist_name_out_dir} +: ${__cdist_out_explorer_dir:=$__cdist_out_dir/$__cdist_name_explorer} +: ${__cdist_out_object_dir:=$__cdist_out_dir/$__cdist_name_object} +: ${__cdist_out_type_dir:=$__cdist_out_dir/$__cdist_name_type} +: ${__cdist_out_type_bin_dir:=$__cdist_out_dir/$__cdist_name_type_bin} + +: ${__cdist_objects_created:=$__cdist_out_object_dir/$__cdist_name_objects_created} + +################################################################################ +# Remote base +# +: ${__cdist_remote_base_dir:=/var/lib/cdist} +: ${__cdist_remote_bin_dir:=$__cdist_remote_base_dir/$__cdist_name_bin} +: ${__cdist_remote_conf_dir:=$__cdist_remote_base_dir/$__cdist_name_conf_dir} +: ${__cdist_remote_core_dir:=$__cdist_remote_base_dir/$__cdist_name_core_dir} + +: ${__cdist_remote_explorer_dir:=$__cdist_remote_conf_dir/$__cdist_name_explorer} +: ${__cdist_remote_type_dir:=$__cdist_remote_conf_dir/$__cdist_name_type} + +################################################################################ +# Remote output +# +: ${__cdist_remote_out_dir:=$__cdist_remote_base_dir/$__cdist_name_out_dir} +: ${__cdist_remote_out_explorer_dir:=$__cdist_remote_out_dir/$__cdist_name_explorer} +: ${__cdist_remote_out_object_dir:=$__cdist_remote_out_dir/$__cdist_name_object} + + +################################################################################ +# Internal functions +# + +# *NEW* Load functions from library +for __cdist_lib in $__cdist_core_dir/*; do + # echo Loading $__cdist_lib ... + . "$__cdist_lib" +done + + +################################################################################ +# Cache +# +__cdist_cache_dir() +{ + cd "${__cdist_local_base_cache_dir}" && pwd -P +} + +__cdist_host_cache_dir() +{ + echo "$(__cdist_cache_dir)/$1" +} + +################################################################################ +# Object +# + +__cdist_object_code() +{ + echo "$(__cdist_object_dir "$1")/${__cdist_name_code}-$2" +} + +__cdist_object_prepared() +{ + echo "$(__cdist_object_dir "$1")/${__cdist_name_object_prepared}" +} + +__cdist_object_finished() +{ + echo "$(__cdist_object_dir "$1")/${__cdist_name_object_finished}" +} + +__cdist_object_dir() +{ + echo "$(__cdist_object_base_dir "$1")/${__cdist_name_dot_cdist}" +} + +__cdist_object_base_dir() +{ + echo "${__cdist_out_object_dir}/$1" +} + +__cdist_object_id_from_object() +{ + echo "${1#*/}" +} + +__cdist_object_parameter_dir() +{ + echo "$(__cdist_object_dir "$1")/${__cdist_name_parameter}" +} + +__cdist_object_require() +{ + echo "$(__cdist_object_dir "$1")/${__cdist_name_require}" +} + +__cdist_object_source_name() +{ + echo "$1/${__cdist_name_object_source}" +} + +__cdist_object_source() +{ + cat "$(__cdist_object_source_name "$1")" +} + +__cdist_object_source_add() +{ + echo "$__cdist_manifest" >> "$(__cdist_object_source_name "$1")" +} + +__cdist_object_type_explorer_dir() +{ + echo "$(__cdist_object_dir "$1")/${__cdist_name_explorer}" +} + +################################################################################ +# Remote +# + +__cdist_remote_object_base_dir() +{ + echo "${__cdist_remote_out_object_dir}/$1" +} + +__cdist_remote_object_dir() +{ + echo "$(__cdist_remote_object_base_dir "$1")/${__cdist_name_dot_cdist}" +} + +__cdist_remote_object_code() +{ + # FIXME: this should probably be __cdist_name_CODE_remote instead, although + # they have the same name always + echo "$(__cdist_remote_object_dir "$1")/${__cdist_name_code}-${__cdist_name_gencode_remote}" +} + +__cdist_remote_object_parameter_dir() +{ + echo "$(__cdist_remote_object_dir "$1")/${__cdist_name_parameter}" +} + +__cdist_remote_object_type_explorer_dir() +{ + echo "$(__cdist_remote_object_dir "$1")/${__cdist_name_explorer}" +} + + +__cdist_remote_type_explorer_dir() +{ + echo "${__cdist_remote_type_dir}/$1/${__cdist_name_explorer}" +} + + +################################################################################ +# Traps +# + +# Remove tempfiles at normal exit +trap __cdist_tmp_removal EXIT + + +################################################################################ +# Type +# +__cdist_type_dir() +{ + echo "${__cdist_type_dir}/$1" +} + +__cdist_type_explorer_dir() +{ + echo "${__cdist_type_dir}/$1/${__cdist_name_explorer}" +} + +__cdist_type_from_object() +{ + echo "${1%%/*}" +} + +__cdist_type_explorer_pushed() +{ + [ -f "${__cdist_out_type_dir}/${__cdist_name_type_explorer_pushed}" ] \ + && grep -q "$1" "${__cdist_out_type_dir}/${__cdist_name_type_explorer_pushed}" +} + +__cdist_type_explorer_pushed_add() +{ + [ -d "$__cdist_out_type_dir" ] || mkdir "$__cdist_out_type_dir" + echo "$1" >> "${__cdist_out_type_dir}/${__cdist_name_type_explorer_pushed}" +} + +__cdist_type_gencode() +{ + echo "${__cdist_type_dir}/$1/${__cdist_name_gencode}-$2" +} + +__cdist_type_manifest() +{ + echo "${__cdist_type_dir}/$1/${__cdist_name_manifest}" +} + +__cdist_type_parameter_dir() +{ + echo "$(__cdist_type_dir "$1")/${__cdist_name_parameter}" +} + +__cdist_type_parameter_optional() +{ + echo "$(__cdist_type_parameter_dir "$1")/$__cdist_name_parameter_optional" +} + +__cdist_type_parameter_required() +{ + echo "$(__cdist_type_parameter_dir "$1")/$__cdist_name_parameter_required" +} + +__cdist_type_singleton() +{ + echo "${__cdist_type_dir}/$1/${__cdist_name_singleton}" +} diff --git a/bin/cdist-deploy-to b/bin/cdist-deploy-to new file mode 100755 index 00000000..49c8a6fc --- /dev/null +++ b/bin/cdist-deploy-to @@ -0,0 +1,63 @@ +#!/bin/sh +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Deploy configuration to a host +# + +. cdist-config +[ $# -eq 1 ] || __cdist_usage "" +set -eu + +# Kill children on interrupt - only in interactive scripts +trap __cdist_kill_on_interrupt INT TERM + +__cdist_target_host="$1" + +# Make target host available for non-core +export $__cdist_name_var_target_host="$__cdist_target_host" +export $__cdist_name_var_target_user="$__cdist_remote_user" + +# Export variables for core, which others do not reset +export __cdist_local_base_dir +export __cdist_core_dir + +__cdist_echo info "cdist $__cdist_version: Configuring $__cdist_target_host " + +################################################################################ +# See cdist-stages(7) +# + +# Prepare local and remote directories +__cdist_init_deploy "$__cdist_target_host" + +# Transfer cdist executables +__cdist_echo info "Transferring cdist binaries/functions to the target host " +__cdist_dir push "${__cdist_abs_mydir}" "${__cdist_remote_bin_dir}" +__cdist_dir push "${__cdist_core_dir}" "${__cdist_remote_core_dir}" + +__cdist_explorer_run_global +__cdist_manifest_run_init +__cdist_object_all __cdist_object_prepare +__cdist_object_all __cdist_object_run +unset __cdist_object_self + +__cdist_cache + +__cdist_echo info "cdist $__cdist_version: Successfully finished run" diff --git a/bin/cdist-env b/bin/cdist-env new file mode 100755 index 00000000..2aac5e6b --- /dev/null +++ b/bin/cdist-env @@ -0,0 +1,33 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Setup environment for use with cdist - must be standalone! +# + +export PATH="$(cd "${0%/*}" && pwd -P):$PATH" +export MANPATH="$(cd "${0%/*}/../doc/man" && pwd -P):$MANPATH" + +if [ "$(echo ${SHELL##*/} | grep 'csh$')" ]; then + echo setenv PATH $PATH \; + echo setenv MANPATH $MANPATH +else + echo export PATH=$PATH + echo export MANPATH=$MANPATH +fi diff --git a/bin/cdist-mass-deploy b/bin/cdist-mass-deploy new file mode 100755 index 00000000..c2b6d6a5 --- /dev/null +++ b/bin/cdist-mass-deploy @@ -0,0 +1,75 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Deploy configuration to many hosts +# + +. cdist-config +[ $# -ge 1 ] || __cdist_usage "[-p] [target host ]" +set -u + +# Kill children on interrupt - only in interactive scripts +trap __cdist_kill_on_interrupt INT TERM + +filter() +{ + awk -v host=$1 '{ print "[" host "] " $0 }' +} + +parallel="" +if [ "$1" = "-p" ]; then + parallel=yes + shift +fi + +i=0 +while [ $# -gt 0 ]; do + if [ "$parallel" ]; then + cdist-deploy-to "$1" 2>&1 | filter "$1" & + # Record pid and host for use later + i=$((i+1)) + eval pid_$i=$! + eval host_$i=\$1 + else + cdist-deploy-to "$1" 2>&1 | filter "$1" + fi + shift +done + +e=0 +if [ "$parallel" ]; then + __cdist_echo info "Waiting for cdist-deploy-to jobs to finish" + while [ "$i" -gt 0 ]; do + eval pid=\$pid_$i + wait "$pid" + if [ $? -ne 0 ]; then + e=$((e+1)) + eval e_host_$e=\$host_$i + fi + i=$((i-1)) + done +fi + +# Display all failed hosts after all runs are done, so the sysadmin gets them +while [ "$e" -gt 0 ]; do + eval host=\$host_$e + __cdist_echo error "Configuration of host $host failed." + e=$((e-1)) +done diff --git a/bin/cdist-quickstart b/bin/cdist-quickstart new file mode 100755 index 00000000..4d89180c --- /dev/null +++ b/bin/cdist-quickstart @@ -0,0 +1,310 @@ +#!/bin/sh +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Give the user an introduction into cdist +# + +. cdist-config +set -eu + +banner="cdist-quickstart>" +continue="Press enter to continue or ctrl-c to abort." +create_continue="Press enter to create the described files/directories" + +__prompt() +{ + echo -n "$banner" "$@" + read answer +} + +################################################################################ +# Intro of quickstart +# +cat << eof +$banner cdist version $__cdist_version + +Welcome to the interactive guide to cdist! +This is the interactive tutorial and beginners help for cdist and here's +our schedule: + + - Stages: How cdist operates + - Explorer: Explore facts of the target host + - Manifest: Map configurations to hosts + - Types: Bundled functionality + - Deploy a configuration to the local host! + +eof +__prompt "$continue" + +################################################################################ +# Stages +# +cat << eof + +To deploy configurations to a host, you call + + cdist-deploy-to + +which makes calls to other scripts, which realise the so called "stages". +Usually you'll not notice this, but in case you want to debug or hack cdist, +you can run each stage on its own. Besides that, you just need to remember +that the command cdist-deploy-to is the main cdist command. + +See also: + + Source of cdist-deploy-to(1), cdist-stages(7) + +eof +__prompt "$continue" + +################################################################################ +# Explorer +# +cat << eof + +The first thing cdist always does is running different explorers on the +target host. The explorers can be found in the directory + + ${__cdist_explorer_dir} + +An explorer is executed on the target host and its output is saved to a file. +You can use these files later to decide what or how to configure the host. + +For a demonstration, we'll call the OS explorer locally now, but remember: +This is only for demonstration, normally it is run on the target host. +The os explorer will which either displays the detected operating system or +nothing if it does not know your OS. + +See also: + + cdist-explorer(7) + +eof +explorer="${__cdist_explorer_dir}/os" + +__prompt "Press enter to execute $explorer" + +set -x +"$explorer" +set +x + +################################################################################ +# Manifest +# +cat << eof + +The initial manifest is the entry point for cdist to find out, what you would +like to have configured. It is located at + + ${__cdist_manifest_init} + +And can be as simple as + +-------------------------------------------------------------------------------- +__file /etc/cdist-configured --type file +-------------------------------------------------------------------------------- + +See also: + + cdist-manifest(7) + +eof +__prompt "$continue" + +cat << eof + +Let's take a deeper look at the initial manifest to understand what it means: + + __file /etc/cdist-configured --type file + | | | \\ + | | The parameter type \\ With the value file + | | + | | + | | This is the object id + | + __file is a so called "type" + + +This essentially looks like a standard command executed in the shell. +eof +__prompt "$continue" + +cat << eof + +And that's exactly true. Manifests are shell snippets that can use +types as commands with arguments. cdist prepends a special path +that contain links to the cdist-type-emulator, to \$PATH, so you +can use your types as a command. + +This is also the reason why types should always be prefixed with +"__", to prevent collisions with existing binaries. + +The object id is unique per type and used to prevent you from creating +the same object twice. + +Parameters are type specific and are always specified as --parameter . + +See also: + + cdist-type-build-emulation(1), cdist-type-emulator(1) + +eof +__prompt "$continue" + +################################################################################ +# Types +# +cat << eof + +Types are bundled functionality and are the main component of cdist. +If you want to have a feature x, you write the type __x. Types are stored in + + ${__cdist_type_dir} + +And cdist ships with some types already! + +See also: + + cdist-type(7) + +eof +__prompt "Press enter to see available types" + +set -x +ls ${__cdist_type_dir} +set +x + +cat << eof + +Types consist of the following parts: + + - ${__cdist_name_parameter} (${__cdist_name_parameter_required}/${__cdist_name_parameter_optional} + - ${__cdist_name_manifest} + - ${__cdist_name_explorer} + - ${__cdist_name_gencode} + +eof +__prompt "$continue" + + +cat << eof + +Every type must have a directory named ${__cdist_name_parameter}, which +contains required or optional parameters (in newline seperated files). + +If an object of a specific type was created in the initial manifest, +the manifest of the type is run and may create other objects. + +A type may have ${__cdist_name_explorer}, which are very similar to the +${__cdist_name_explorer} seen above, but with a different purpose: +They are specific to the type and are not relevant for other types. + +You may use them for instance to find out details on the target host, +so you can decide what to do on the target host eventually. + +After the ${__cdist_name_manifest} and the ${__cdist_name_explorer} of +a type have been run, ${__cdist_name_gencode} is executed, which creates +code to be executed on the target on stdout. + +eof +__prompt "$continue" + +################################################################################ +# Deployment +# + +cat << eof + +Now you've got some basic knowledge about cdist, let's configure your a host! + +Ensure that you have a ssh server running on the host and that you can login as root. + +eof + +__prompt "Enter hostname or press enter for localhost: " + +if [ "$answer" ]; then + host="$answer" +else + host="localhost" +fi + +manifestinit="conf/manifest/init" +cat << eof + +I'll know setup $manifestinit, containing the following code: + +-------------------------------------------------------------------------------- +# Every machine becomes a marker, so sysadmins know that automatic +# configurations are happening +__file /etc/cdist-configured + +case "\$__target_host" in + $host) + __link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic + __addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist" + ;; +esac +-------------------------------------------------------------------------------- + +WARNING: This will overwrite ${manifestinit}. + +eof + +cat > "$__cdist_abs_mydir/../$manifestinit" << eof + +# Every machine becomes a marker, so sysadmins know that automatic +# configurations are happening +__file /etc/cdist-configured + +case "\$__target_host" in + $host) + __link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic + __addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist" + ;; +esac + +eof + +chmod u+x "$__cdist_abs_mydir/../$manifestinit" + +cmd="cdist-deploy-to $host" + +__prompt "Press enter to run \"$cmd\"" + +# No quotes, we need field splitting +$cmd + +################################################################################ +# End +# + +cat << eof + + +-------------------------------------------------------------------------------- +That's it, this is the end of the cdist-quickstart. + +I hope you've got some impression on how cdist works, here are again some +pointers on where to continue to read: + +cdist(7), cdist-deploy-to(1), cdist-type(7), cdist-stages(7) + +eof diff --git a/bin/cdist-type-emulator b/bin/cdist-type-emulator new file mode 100755 index 00000000..8ff190ad --- /dev/null +++ b/bin/cdist-type-emulator @@ -0,0 +1,182 @@ +#!/bin/sh +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Wrapper script that generates cconfig from arguments +# +# This script will be called everytime the manifest decides to create +# a new type +# + +. cdist-config +set -u + +################################################################################ +# Prepare object and type +# + +__cdist_type="$__cdist_myname" + +# Find out whether type is a singleton or regular type +if [ -f "$(__cdist_type_singleton "$__cdist_type")" ]; then + __cdist_object_id="$__cdist_name_singleton" +else + [ $# -ge 1 ] || __cdist_usage " " + __cdist_object_id="$1"; shift +fi + +# Verify object id +__cdist_object_id_sane=$(echo "$__cdist_object_id" | grep "^${__cdist_sane_regexp}\$") +if [ -z "$__cdist_object_id_sane" ]; then + __cdist_usage "Insane object id, ${__cdist_object_id}." +fi + +# Prevent double slash if id begins with / +if [ "$(echo $__cdist_object_id | grep "^/")" ]; then + __cdist_object_self="${__cdist_type}${__cdist_object_id}" +else + __cdist_object_self="${__cdist_type}/${__cdist_object_id}" +fi +################################################################################ +# Internal quirks +# + +# Append id for error messages +__cdist_myname="$__cdist_myname ($__cdist_object_id)" + +################################################################################ +# Create object in tmpdir first +# + +# Save original destination +__cdist_out_object_dir_orig="$__cdist_out_object_dir" + +# Store to tmp now +__cdist_out_object_dir="$__cdist_tmp_dir" + +__cdist_new_object_dir="$(__cdist_object_dir "$__cdist_object_self")" + +# Initialise object +mkdir -p "${__cdist_new_object_dir}" + +# Record parameter +__cdist_parameter_dir="$(__cdist_object_parameter_dir "$__cdist_object_self")" +mkdir -p "${__cdist_parameter_dir}" + +while [ $# -gt 0 ]; do + opt="$1"; shift + + echo "$opt" | grep -q "^--${__cdist_sane_regexp}\$" || \ + __cdist_usage "Provide sane options" + + opt_file="${opt#--}" + + [ $# -ge 1 ] || __cdist_usage "Missing value for $opt" + + value="$1"; shift + + echo "${value}" > "${__cdist_parameter_dir}/${opt_file}" +done + +# Record requirements +# it's fine, if it's not set +set +u +for requirement in $require; do + echo $requirement >> "$(__cdist_object_require "$__cdist_object_self")" + __cdist_echo info "Recording requirement $requirement" +done +set -u + +################################################################################ +# Check newly created object +# + +# +# Ensure required parameters are given +# +if [ -f "$(__cdist_type_parameter_required "$__cdist_type")" ]; then + while read required; do + if [ ! -f "${__cdist_parameter_dir}/${required}" ]; then + __cdist_usage "Missing required parameter $required" + fi + done < "$(__cdist_type_parameter_required "$__cdist_type")" +fi + +# +# Ensure that only optional or required parameters are given +# + +if [ -f "$(__cdist_type_parameter_optional "$__cdist_type")" ]; then + cat "$(__cdist_type_parameter_optional "$__cdist_type")" > \ + "$__cdist_tmp_file" +fi + +if [ -f "$(__cdist_type_parameter_required "$__cdist_type")" ]; then + cat "$(__cdist_type_parameter_required "$__cdist_type")" >> \ + "$__cdist_tmp_file" +fi + +cd "$__cdist_parameter_dir" +for parameter in $(ls -1); do + is_valid=$(grep "^$parameter\$" "$__cdist_tmp_file") + + [ "$is_valid" ] || __cdist_usage "Unknown parameter $parameter" +done + +################################################################################ +# Merge object +# +# Restore original destination +__cdist_out_object_dir="$__cdist_out_object_dir_orig" + +__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")" + +# +# If the object already exists and is exactly the same, merge it. Otherwise fail. +# +if [ -e "${__cdist_object_dir}" ]; then + # Allow diff to fail + set +e + diff -ru "${__cdist_new_object_dir}/${__cdist_name_parameter}" \ + "${__cdist_object_dir}/${__cdist_name_parameter}" \ + > "$__cdist_tmp_file"; ret=$? + set -e + + if [ "$ret" != 0 ]; then + # Go to standard error + exec >&2 + echo "${__cdist_object_self} already exists differently." + echo "Recorded source(s):" + __cdist_object_source "${__cdist_object_dir}" + echo "Differences:" + cat "$__cdist_tmp_file" + __cdist_exit_err "Aborting due to object conflict." + fi +else + # + # Move object into tree: + # Create full path minus .cdist and move .cdist + # + __cdist_new_object_base_dir="$(__cdist_object_base_dir "$__cdist_object_self")" + mkdir -p "$__cdist_new_object_base_dir" + mv "$__cdist_new_object_dir" "$__cdist_new_object_base_dir" +fi + +# Add "I was here message" +__cdist_object_source_add "${__cdist_object_dir}" diff --git a/bin/cdist-type-template b/bin/cdist-type-template new file mode 100755 index 00000000..6d8a3f15 --- /dev/null +++ b/bin/cdist-type-template @@ -0,0 +1,83 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Create a new type from scratch +# + +. cdist-config +[ $# -eq 1 ] || __cdist_usage "" +set -eu + +__cdist_type="$1"; shift +__cdist_my_type_dir="$(__cdist_type_dir "$__cdist_type")" + +if [ -d "$__cdist_my_type_dir" ]; then + __cdist_usage "Type $__cdist_type already exists" +fi + +echo "Creating type $__cdist_type in $__cdist_my_type_dir ..." +# Base +mkdir -p "$__cdist_my_type_dir" + +# Parameter +mkdir -p "$(__cdist_type_parameter_dir "$__cdist_type")" +touch "$(__cdist_type_parameter_dir "$__cdist_type")/${__cdist_name_parameter_required}" +touch "$(__cdist_type_parameter_dir "$__cdist_type")/${__cdist_name_parameter_optional}" + +# Manifest +cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$__cdist_my_type_dir/${__cdist_name_manifest}" + +# +# This is the manifest, which can be used to create other objects like this: +# __file /path/to/destination --source /from/where/ +# +# To tell cdist to make use of it, you need to make it executable (chmod +x) +# +# + +eof + +# Gencode remote +cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$(__cdist_type_dir "$__cdist_type")/${__cdist_name_gencode}-${__cdist_name_gencode_remote}" + +# +# This file should generate code on stdout, which will be collected by cdist +# and run on the target. +# +# To tell cdist to make use of it, you need to make it executable (chmod +x) +# +# + +eof + +cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$(__cdist_type_dir "$__cdist_type")/${__cdist_name_gencode}-${__cdist_name_gencode_local}" + +# +# This file should generate code on stdout, which will be collected by cdist +# and run on the same machine cdist-deploy-to is executed. +# +# To tell cdist to make use of it, you need to make it executable (chmod +x) +# +# + +eof + +# Explorer +mkdir -p "$__cdist_my_type_dir/${__cdist_name_explorer}" diff --git a/build.sh b/build.sh new file mode 100755 index 00000000..a6897d49 --- /dev/null +++ b/build.sh @@ -0,0 +1,139 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Push a directory to a target, both sides have the same name (i.e. explorers) +# or +# Pull a directory from a target, both sides have the same name (i.e. explorers) +# + +# exit on any error +#set -e + +# Manpage and HTML +A2XM="a2x -f manpage --no-xmllint" +A2XH="a2x -f xhtml --no-xmllint" + +# Developer webbase +WEBDIR=$HOME/niconetz +WEBBASE=software/cdist +WEBPAGE=${WEBBASE}.mdwn + +# Documentation +MANDIR=doc/man +MAN1DSTDIR=${MANDIR}/man1 +MAN7DSTDIR=${MANDIR}/man7 +SPEECHESDIR=doc/speeches + +case "$1" in + man) + set -e + "$0" mangen + "$0" mantype + "$0" manbuild + ;; + + manbuild) + trap abort INT + abort() { + kill 0 + } + for section in 1 7; do + for src in ${MANDIR}/man${section}/*.text; do + manpage="${src%.text}.$section" + if [ ! -f "$manpage" -o "$manpage" -ot "$src" ]; then + echo "Compiling man page for $src" + $A2XM "$src" + fi + htmlpage="${src%.text}.html" + if [ ! -f "$htmlpage" -o "$htmlpage" -ot "$src" ]; then + echo "Compiling html page for $src" + $A2XH "$src" + fi + done + done + ;; + + mantype) + for mansrc in conf/type/*/man.text; do + dst="$(echo $mansrc | sed -e 's;conf/;cdist-;' -e 's;/;;' -e 's;/man;;' -e 's;^;doc/man/man7/;')" + ln -sf "../../../$mansrc" "$dst" + done + ;; + + mangen) + ${MANDIR}/cdist-reference.text.sh + ;; + + release) + "$0" clean && "$0" man && "$0" web + ;; + + speeches) + cd "$SPEECHESDIR" + for speech in *tex; do + pdflatex "$speech" + pdflatex "$speech" + pdflatex "$speech" + done + ;; + + web) + cp README ${WEBDIR}/${WEBPAGE} + rm -rf ${WEBDIR}/${WEBBASE}/man && mkdir ${WEBDIR}/${WEBBASE}/man + rm -rf ${WEBDIR}/${WEBBASE}/speeches && mkdir ${WEBDIR}/${WEBBASE}/speeches + + cp ${MAN1DSTDIR}/*.html ${MAN7DSTDIR}/*.html ${WEBDIR}/${WEBBASE}/man + cp ${SPEECHESDIR}/*.pdf ${WEBDIR}/${WEBBASE}/speeches + + git describe > ${WEBDIR}/${WEBBASE}/man/VERSION + cd ${WEBDIR} && git add ${WEBBASE} + cd ${WEBDIR} && git commit -m "cdist update" ${WEBBASE} ${WEBPAGE} + cd ${WEBDIR} && make pub + ;; + + p|pu|pub) + git push --mirror + git push --mirror github + ;; + + clean) + rm -f ${MAN7DSTDIR}/cdist-reference.text + find "${MANDIR}" -mindepth 2 -type l \ + -o -name "*.1" \ + -o -name "*.7" \ + -o -name "*.html" \ + -o -name "*.xml" \ + | xargs rm -f + ;; + + *) + echo '' + echo 'Welcome to cdist!' + echo '' + echo 'Here are the possible targets:' + echo '' + echo ' man: Build manpages (requires Asciidoc)' + echo ' clean: Remove build stuff' + echo '' + echo '' + echo "Unknown target, \"$1\"" >&2 + exit 1 + ;; +esac diff --git a/cdist/__init__.py b/cdist/__init__.py deleted file mode 100644 index c673b3ba..00000000 --- a/cdist/__init__.py +++ /dev/null @@ -1,271 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2010-2015 Nico Schottelius (nico-cdist at schottelius.org) -# 2012-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import hashlib - -import cdist.log -import cdist.version - -VERSION = cdist.version.VERSION - -BANNER = """ - .. . .x+=:. s - dF @88> z` ^% :8 - '88bu. %8P . 0: - output = [] - label_begin = name + ":" + header_name - output.append(label_begin) - output.append('\n') - output.append('-' * len(label_begin)) - output.append('\n') - with open(path, 'r') as fd: - output.append(fd.read()) - output.append('\n') - result[name].append(''.join(output)) - except UnicodeError as ue: - result[name].append(('Cannot output {}:{} due to: {}.\n' - 'You can try to read the error file "{}"' - ' yourself.').format( - name, header_name, ue, path)) - return result - - def _stderr(self): - return self._stdpath(self.stderr_paths, 'stderr') - - def _stdout(self): - return self._stdpath(self.stdout_paths, 'stdout') - - def _update_dict_list(self, target, source): - for x in source: - if x not in target: - target[x] = [] - target[x].extend(source[x]) - - @property - def std_streams(self): - std_dict = {} - self._update_dict_list(std_dict, self._stdout()) - self._update_dict_list(std_dict, self._stderr()) - return std_dict - - def __str__(self): - output = [] - output.append(self.message) - output.append('\n\n') - header = "Error processing " + self.entity_name - under_header = '=' * len(header) - output.append(header) - output.append('\n') - output.append(under_header) - output.append('\n') - for param_name, param_value in self.entity_params: - output.append(param_name + ': ' + str(param_value)) - output.append('\n') - output.append('\n') - for x in self.std_streams: - output.append(''.join(self.std_streams[x])) - return ''.join(output) - - -class CdistObjectError(CdistEntityError): - """Something went wrong while working on a specific cdist object""" - def __init__(self, cdist_object, subject=''): - params = [ - ('name', cdist_object.name, ), - ('path', cdist_object.absolute_path, ), - ('source', " ".join(cdist_object.source), ), - ('type', os.path.realpath( - cdist_object.cdist_type.absolute_path), ), - ] - stderr_paths = [] - for stderr_name in os.listdir(cdist_object.stderr_path): - stderr_path = os.path.join(cdist_object.stderr_path, - stderr_name) - stderr_paths.append((stderr_name, stderr_path, )) - stdout_paths = [] - for stdout_name in os.listdir(cdist_object.stdout_path): - stdout_path = os.path.join(cdist_object.stdout_path, - stdout_name) - stdout_paths.append((stdout_name, stdout_path, )) - super().__init__("object '{}'".format(cdist_object.name), - params, stdout_paths, stderr_paths, subject) - - -class CdistObjectExplorerError(CdistEntityError): - """ - Something went wrong while working on a specific - cdist object explorer - """ - def __init__(self, cdist_object, explorer_name, explorer_path, - stderr_path, subject=''): - params = [ - ('object name', cdist_object.name, ), - ('object path', cdist_object.absolute_path, ), - ('object source', " ".join(cdist_object.source), ), - ('object type', os.path.realpath( - cdist_object.cdist_type.absolute_path), ), - ('explorer name', explorer_name, ), - ('explorer path', explorer_path, ), - ] - stdout_paths = [] - stderr_paths = [ - ('remote', stderr_path, ), - ] - super().__init__("explorer '{}' of object '{}'".format( - explorer_name, cdist_object.name), params, stdout_paths, - stderr_paths, subject) - - -class InitialManifestError(CdistEntityError): - """Something went wrong while executing initial manifest""" - def __init__(self, initial_manifest, stdout_path, stderr_path, subject=''): - params = [ - ('path', initial_manifest, ), - ] - stdout_paths = [ - ('init', stdout_path, ), - ] - stderr_paths = [ - ('init', stderr_path, ), - ] - super().__init__('initial manifest', params, stdout_paths, - stderr_paths, subject) - - -class GlobalExplorerError(CdistEntityError): - """Something went wrong while executing global explorer""" - def __init__(self, name, path, stderr_path, subject=''): - params = [ - ('name', name, ), - ('path', path, ), - ] - stderr_paths = [ - ('remote', stderr_path, ), - ] - super().__init__("global explorer '{}'".format(name), - params, [], stderr_paths, subject) - - -def file_to_list(filename): - """Return list from \n seperated file""" - if os.path.isfile(filename): - file_fd = open(filename, "r") - lines = file_fd.readlines() - file_fd.close() - - # Remove \n from all lines - lines = map(lambda s: s.strip(), lines) - else: - lines = [] - - return lines - - -def str_hash(s): - """Return hash of string s""" - if isinstance(s, str): - return hashlib.md5(s.encode('utf-8')).hexdigest() - else: - raise Error("Param should be string") - - -def home_dir(): - if 'HOME' in os.environ: - home = os.environ['HOME'] - if home: - rv = os.path.join(home, ".cdist") - else: - rv = None - else: - rv = None - return rv diff --git a/cdist/argparse.py b/cdist/argparse.py deleted file mode 100644 index 611c484a..00000000 --- a/cdist/argparse.py +++ /dev/null @@ -1,505 +0,0 @@ -import argparse -import cdist -import multiprocessing -import logging -import collections -import functools -import cdist.configuration -import cdist.preos -import cdist.info - - -# set of beta sub-commands -BETA_COMMANDS = set(('install', 'inventory', )) -# set of beta arguments for sub-commands -BETA_ARGS = { - 'config': set(('tag', 'all_tagged_hosts', 'use_archiving', )), -} -EPILOG = "Get cdist at https://code.ungleich.ch/ungleich-public/cdist" -# Parser others can reuse -parser = None - - -_verbosity_level_off = -2 -_verbosity_level = { - None: logging.WARNING, - _verbosity_level_off: logging.OFF, - -1: logging.ERROR, - 0: logging.WARNING, - 1: logging.INFO, - 2: logging.VERBOSE, - 3: logging.DEBUG, - 4: logging.TRACE, -} - - -# Generate verbosity level constants: -# VERBOSE_OFF, VERBOSE_ERROR, VERBOSE_WARNING, VERBOSE_INFO, VERBOSE_VERBOSE, -# VERBOSE_DEBUG, VERBOSE_TRACE. -this_globals = globals() -for level in _verbosity_level: - const = 'VERBOSE_' + logging.getLevelName(_verbosity_level[level]) - this_globals[const] = level - - -# All verbosity levels above 4 are TRACE. -_verbosity_level = collections.defaultdict( - lambda: logging.TRACE, _verbosity_level) - - -def add_beta_command(cmd): - BETA_COMMANDS.add(cmd) - - -def add_beta_arg(cmd, arg): - if cmd in BETA_ARGS: - if arg not in BETA_ARGS[cmd]: - BETA_ARGS[cmd].append(arg) - else: - BETA_ARGS[cmd] = set((arg, )) - - -def check_beta(args_dict): - if 'beta' not in args_dict: - args_dict['beta'] = False - # Check only if beta is not enabled: if beta option is specified then - # raise error. - if not args_dict['beta']: - cmd = args_dict['command'] - # first check if command is beta - if cmd in BETA_COMMANDS: - raise cdist.CdistBetaRequired(cmd) - # then check if some command's argument is beta - if cmd in BETA_ARGS: - for arg in BETA_ARGS[cmd]: - if arg in args_dict and args_dict[arg]: - raise cdist.CdistBetaRequired(cmd, arg) - - -def check_lower_bounded_int(value, lower_bound, name): - try: - val = int(value) - except ValueError: - raise argparse.ArgumentTypeError( - "{} is invalid int value".format(value)) - if val < lower_bound: - raise argparse.ArgumentTypeError( - "{} is invalid {} value".format(val, name)) - return val - - -def get_parsers(): - global parser - - # Construct parser others can reuse - if parser: - return parser - else: - parser = {} - # Options _all_ parsers have in common - parser['loglevel'] = argparse.ArgumentParser(add_help=False) - parser['loglevel'].add_argument( - '-l', '--log-level', metavar='LOGLEVEL', - type=functools.partial(check_lower_bounded_int, lower_bound=-1, - name="log level"), - help=('Set the specified verbosity level. ' - 'The levels, in order from the lowest to the highest, are: ' - 'ERROR (-1), WARNING (0), INFO (1), VERBOSE (2), DEBUG (3), ' - 'TRACE (4 or higher). If used along with -v then -v ' - 'increases last set value and -l overwrites last set ' - 'value.'), - action='store', dest='verbose', required=False) - parser['loglevel'].add_argument( - '-q', '--quiet', - help='Quiet mode: disables logging, including WARNING and ERROR.', - action='store_true', default=False) - parser['loglevel'].add_argument( - '-v', '--verbose', - help=('Increase the verbosity level. Every instance of -v ' - 'increments the verbosity level by one. Its default value ' - 'is 0 which includes ERROR and WARNING levels. ' - 'The levels, in order from the lowest to the highest, are: ' - 'ERROR (-1), WARNING (0), INFO (1), VERBOSE (2), DEBUG (3) ' - 'TRACE (4 or higher). If used along with -l then -l ' - 'overwrites last set value and -v increases last set ' - 'value.'), - action='count', default=None) - - parser['beta'] = argparse.ArgumentParser(add_help=False) - parser['beta'].add_argument( - '-b', '--beta', - help=('Enable beta functionality. '), - action='store_true', dest='beta', default=None) - - # Main subcommand parser - parser['main'] = argparse.ArgumentParser( - description='cdist ' + cdist.VERSION) - parser['main'].add_argument( - '-V', '--version', help='Show version.', action='version', - version='%(prog)s ' + cdist.VERSION) - parser['sub'] = parser['main'].add_subparsers( - title="Commands", dest="command") - - # Banner - parser['banner'] = parser['sub'].add_parser( - 'banner', parents=[parser['loglevel']]) - parser['banner'].set_defaults(func=cdist.banner.banner) - - parser['inventory_common'] = argparse.ArgumentParser(add_help=False) - parser['inventory_common'].add_argument( - '-I', '--inventory', - help=('Use specified custom inventory directory. ' - 'Inventory directory is set up by the following rules: ' - 'if cdist configuration resolves this value then specified ' - 'directory is used, ' - 'if HOME env var is set then ~/.cdist/inventory is ' - 'used, otherwise distribution inventory directory is used.'), - dest="inventory_dir", required=False) - - parser['common'] = argparse.ArgumentParser(add_help=False) - parser['common'].add_argument( - '-g', '--config-file', - help=('Use specified custom configuration file.'), - dest="config_file", required=False) - - # Config - parser['config_main'] = argparse.ArgumentParser(add_help=False) - parser['config_main'].add_argument( - '-4', '--force-ipv4', - help=('Force to use IPv4 addresses only. No influence for custom' - ' remote commands.'), - action='store_const', dest='force_ipv', const=4) - parser['config_main'].add_argument( - '-6', '--force-ipv6', - help=('Force to use IPv6 addresses only. No influence for custom' - ' remote commands.'), - action='store_const', dest='force_ipv', const=6) - parser['config_main'].add_argument( - '-C', '--cache-path-pattern', - help=('Specify custom cache path pattern. If ' - 'it is not set then default hostdir is used.'), - dest='cache_path_pattern', - default=None) - parser['config_main'].add_argument( - '-c', '--conf-dir', - help=('Add configuration directory (can be repeated, ' - 'last one wins).'), action='append') - parser['config_main'].add_argument( - '-i', '--initial-manifest', - help='Path to a cdist manifest or \'-\' to read from stdin.', - dest='manifest', required=False) - parser['config_main'].add_argument( - '-j', '--jobs', nargs='?', - type=functools.partial(check_lower_bounded_int, lower_bound=1, - name="positive int"), - help=('Operate in parallel in specified maximum number of jobs. ' - 'Global explorers, object prepare and object run are ' - 'supported. Without argument CPU count is used by default. '), - action='store', dest='jobs', - const=multiprocessing.cpu_count()) - parser['config_main'].add_argument( - '-n', '--dry-run', - help='Do not execute code.', action='store_true') - parser['config_main'].add_argument( - '-o', '--out-dir', - help='Directory to save cdist output in.', dest="out_path") - parser['config_main'].add_argument( - '-P', '--timestamp', - help=('Timestamp log messages with the current local date and time ' - 'in the format: YYYYMMDDHHMMSS.us.'), - action='store_true', dest='timestamp') - parser['config_main'].add_argument( - '-R', '--use-archiving', nargs='?', - choices=('tar', 'tgz', 'tbz2', 'txz',), - help=('Operate by using archiving with compression where ' - 'appropriate. Supported values are: tar - tar archive, ' - 'tgz - gzip tar archive (the default), ' - 'tbz2 - bzip2 tar archive and txz - lzma tar archive. ' - 'Currently in beta.'), - action='store', dest='use_archiving', - const='tgz') - - # remote-copy and remote-exec defaults are environment variables - # if set; if not then None - these will be futher handled after - # parsing to determine implementation default - parser['config_main'].add_argument( - '-r', '--remote-out-dir', - help='Directory to save cdist output in on the target host.', - dest="remote_out_path") - parser['config_main'].add_argument( - '--remote-copy', - help='Command to use for remote copy (should behave like scp).', - action='store', dest='remote_copy', - default=None) - parser['config_main'].add_argument( - '--remote-exec', - help=('Command to use for remote execution ' - '(should behave like ssh).'), - action='store', dest='remote_exec', - default=None) - parser['config_main'].add_argument( - '-S', '--disable-saving-output-streams', - help='Disable saving output streams.', - action='store_false', dest='save_output_streams', default=True) - - # Config - parser['config_args'] = argparse.ArgumentParser(add_help=False) - parser['config_args'].add_argument( - '-A', '--all-tagged', - help=('Use all hosts present in tags db. Currently in beta.'), - action="store_true", dest="all_tagged_hosts", default=False) - parser['config_args'].add_argument( - '-a', '--all', - help=('List hosts that have all specified tags, ' - 'if -t/--tag is specified.'), - action="store_true", dest="has_all_tags", default=False) - parser['config_args'].add_argument( - '-f', '--file', - help=('Read specified file for a list of additional hosts to ' - 'operate on or if \'-\' is given, read stdin (one host per ' - 'line). If no host or host file is specified then, by ' - 'default, read hosts from stdin.'), - dest='hostfile', required=False) - parser['config_args'].add_argument( - '-p', '--parallel', nargs='?', metavar='HOST_MAX', - type=functools.partial(check_lower_bounded_int, lower_bound=1, - name="positive int"), - help=('Operate on multiple hosts in parallel for specified maximum ' - 'hosts at a time. Without argument CPU count is used by ' - 'default.'), - action='store', dest='parallel', - const=multiprocessing.cpu_count()) - parser['config_args'].add_argument( - '-s', '--sequential', - help='Operate on multiple hosts sequentially (default).', - action='store_const', dest='parallel', const=0) - parser['config_args'].add_argument( - '-t', '--tag', - help=('Host is specified by tag, not hostname/address; ' - 'list all hosts that contain any of specified tags. ' - 'Currently in beta.'), - dest='tag', required=False, action="store_true", default=False) - parser['config_args'].add_argument( - 'host', nargs='*', help='Host(s) to operate on.') - parser['config'] = parser['sub'].add_parser( - 'config', parents=[parser['loglevel'], parser['beta'], - parser['common'], - parser['config_main'], - parser['inventory_common'], - parser['config_args']]) - parser['config'].set_defaults(func=cdist.config.Config.commandline) - - # Install - parser['install'] = parser['sub'].add_parser('install', add_help=False, - parents=[parser['config']]) - parser['install'].set_defaults(func=cdist.install.Install.commandline) - - # Inventory - parser['inventory'] = parser['sub'].add_parser('inventory') - parser['invsub'] = parser['inventory'].add_subparsers( - title="Inventory commands", dest="subcommand") - - parser['add-host'] = parser['invsub'].add_parser( - 'add-host', parents=[parser['loglevel'], parser['beta'], - parser['common'], - parser['inventory_common']]) - parser['add-host'].add_argument( - 'host', nargs='*', help='Host(s) to add.') - parser['add-host'].add_argument( - '-f', '--file', - help=('Read additional hosts to add from specified file ' - 'or from stdin if \'-\' (each host on separate line). ' - 'If no host or host file is specified then, by default, ' - 'read from stdin.'), - dest='hostfile', required=False) - - parser['add-tag'] = parser['invsub'].add_parser( - 'add-tag', parents=[parser['loglevel'], parser['beta'], - parser['common'], - parser['inventory_common']]) - parser['add-tag'].add_argument( - 'host', nargs='*', - help='List of host(s) for which tags are added.') - parser['add-tag'].add_argument( - '-f', '--file', - help=('Read additional hosts to add tags from specified file ' - 'or from stdin if \'-\' (each host on separate line). ' - 'If no host or host file is specified then, by default, ' - 'read from stdin. If no tags/tagfile nor hosts/hostfile' - ' are specified then tags are read from stdin and are' - ' added to all hosts.'), - dest='hostfile', required=False) - parser['add-tag'].add_argument( - '-T', '--tag-file', - help=('Read additional tags to add from specified file ' - 'or from stdin if \'-\' (each tag on separate line). ' - 'If no tag or tag file is specified then, by default, ' - 'read from stdin. If no tags/tagfile nor hosts/hostfile' - ' are specified then tags are read from stdin and are' - ' added to all hosts.'), - dest='tagfile', required=False) - parser['add-tag'].add_argument( - '-t', '--taglist', - help=("Tag list to be added for specified host(s), comma separated" - " values."), - dest="taglist", required=False) - - parser['del-host'] = parser['invsub'].add_parser( - 'del-host', parents=[parser['loglevel'], parser['beta'], - parser['common'], - parser['inventory_common']]) - parser['del-host'].add_argument( - 'host', nargs='*', help='Host(s) to delete.') - parser['del-host'].add_argument( - '-a', '--all', help=('Delete all hosts.'), - dest='all', required=False, action="store_true", default=False) - parser['del-host'].add_argument( - '-f', '--file', - help=('Read additional hosts to delete from specified file ' - 'or from stdin if \'-\' (each host on separate line). ' - 'If no host or host file is specified then, by default, ' - 'read from stdin.'), - dest='hostfile', required=False) - - parser['del-tag'] = parser['invsub'].add_parser( - 'del-tag', parents=[parser['loglevel'], parser['beta'], - parser['common'], - parser['inventory_common']]) - parser['del-tag'].add_argument( - 'host', nargs='*', - help='List of host(s) for which tags are deleted.') - parser['del-tag'].add_argument( - '-a', '--all', - help=('Delete all tags for specified host(s).'), - dest='all', required=False, action="store_true", default=False) - parser['del-tag'].add_argument( - '-f', '--file', - help=('Read additional hosts to delete tags for from specified ' - 'file or from stdin if \'-\' (each host on separate line). ' - 'If no host or host file is specified then, by default, ' - 'read from stdin. If no tags/tagfile nor hosts/hostfile' - ' are specified then tags are read from stdin and are' - ' deleted from all hosts.'), - dest='hostfile', required=False) - parser['del-tag'].add_argument( - '-T', '--tag-file', - help=('Read additional tags from specified file ' - 'or from stdin if \'-\' (each tag on separate line). ' - 'If no tag or tag file is specified then, by default, ' - 'read from stdin. If no tags/tagfile nor' - ' hosts/hostfile are specified then tags are read from' - ' stdin and are added to all hosts.'), - dest='tagfile', required=False) - parser['del-tag'].add_argument( - '-t', '--taglist', - help=("Tag list to be deleted for specified host(s), " - "comma separated values."), - dest="taglist", required=False) - - parser['list'] = parser['invsub'].add_parser( - 'list', parents=[parser['loglevel'], parser['beta'], - parser['common'], - parser['inventory_common']]) - parser['list'].add_argument( - 'host', nargs='*', help='Host(s) to list.') - parser['list'].add_argument( - '-a', '--all', - help=('List hosts that have all specified tags, ' - 'if -t/--tag is specified.'), - action="store_true", dest="has_all_tags", default=False) - parser['list'].add_argument( - '-f', '--file', - help=('Read additional hosts to list from specified file ' - 'or from stdin if \'-\' (each host on separate line). ' - 'If no host or host file is specified then, by default, ' - 'list all.'), dest='hostfile', required=False) - parser['list'].add_argument( - '-H', '--host-only', help=('Suppress tags listing.'), - action="store_true", dest="list_only_host", default=False) - parser['list'].add_argument( - '-t', '--tag', - help=('Host is specified by tag, not hostname/address; ' - 'list all hosts that contain any of specified tags.'), - action="store_true", default=False) - - parser['inventory'].set_defaults( - func=cdist.inventory.Inventory.commandline) - - # PreOS - parser['preos'] = parser['sub'].add_parser('preos', add_help=False) - - # Shell - parser['shell'] = parser['sub'].add_parser( - 'shell', parents=[parser['loglevel']]) - parser['shell'].add_argument( - '-s', '--shell', - help=('Select shell to use, defaults to current shell. Used shell' - ' should be POSIX compatible shell.')) - parser['shell'].set_defaults(func=cdist.shell.Shell.commandline) - - # Info - parser['info'] = parser['sub'].add_parser('info') - parser['info'].add_argument( - '-a', '--all', help='Display all info. This is the default.', - action='store_true', default=False) - parser['info'].add_argument( - '-c', '--conf-dir', - help='Add configuration directory (can be repeated).', - action='append') - parser['info'].add_argument( - '-e', '--global-explorers', - help='Display info for global explorers.', action='store_true', - default=False) - parser['info'].add_argument( - '-F', '--fixed-string', - help='Interpret pattern as a fixed string.', action='store_true', - default=False) - parser['info'].add_argument( - '-f', '--full', help='Display full details.', - action='store_true', default=False) - parser['info'].add_argument( - '-g', '--config-file', - help='Use specified custom configuration file.', - dest="config_file", required=False) - parser['info'].add_argument( - '-t', '--types', help='Display info for types.', - action='store_true', default=False) - parser['info'].add_argument( - 'pattern', nargs='?', help='Glob pattern.') - parser['info'].set_defaults(func=cdist.info.Info.commandline) - - for p in parser: - parser[p].epilog = EPILOG - - return parser - - -def handle_loglevel(args): - if hasattr(args, 'quiet') and args.quiet: - args.verbose = _verbosity_level_off - - logging.root.setLevel(_verbosity_level[args.verbose]) - - -def parse_and_configure(argv, singleton=True): - parser = get_parsers() - parser_args = parser['main'].parse_args(argv) - try: - cfg = cdist.configuration.Configuration(parser_args, - singleton=singleton) - args = cfg.get_args() - except ValueError as e: - raise cdist.Error(str(e)) - # Loglevels are handled globally in here - handle_loglevel(args) - - log = logging.getLogger("cdist") - - log.verbose("version %s" % cdist.VERSION) - log.trace('command line args: {}'.format(cfg.command_line_args)) - log.trace('configuration: {}'.format(cfg.get_config())) - log.trace('configured args: {}'.format(args)) - - check_beta(vars(args)) - - return parser, cfg diff --git a/cdist/autil.py b/cdist/autil.py deleted file mode 100644 index d16d147e..00000000 --- a/cdist/autil.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - - -import cdist -import tarfile -import os -import glob -import tempfile - - -_ARCHIVING_MODES = { - 'tar': '', - 'tgz': 'gz', - 'tbz2': 'bz2', - 'txz': 'xz', -} - - -_UNARCHIVE_OPT = { - 'tar': None, - 'tgz': '-z', - 'tbz2': '-j', - 'txz': '-J', -} - - -# Archiving will be enabled if directory contains more than FILES_LIMIT files. -FILES_LIMIT = 1 - - -def get_extract_option(mode): - return _UNARCHIVE_OPT[mode] - - -def tar(source, mode="tgz"): - if mode not in _ARCHIVING_MODES: - raise cdist.Error("Unsupported archiving mode {}.".format(mode)) - - files = glob.glob1(source, '*') - fcnt = len(files) - if fcnt <= FILES_LIMIT: - return None, fcnt - - tarmode = 'w:{}'.format(_ARCHIVING_MODES[mode]) - _, tarpath = tempfile.mkstemp(suffix='.' + mode) - with tarfile.open(tarpath, tarmode, dereference=True) as tar: - if os.path.isdir(source): - for f in files: - tar.add(os.path.join(source, f), arcname=f) - else: - tar.add(source) - return tarpath, fcnt diff --git a/cdist/banner.py b/cdist/banner.py deleted file mode 100644 index da4dea5d..00000000 --- a/cdist/banner.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import logging -import cdist - -log = logging.getLogger(__name__) - - -def banner(args): - """Guess what :-)""" - print(cdist.BANNER) diff --git a/cdist/conf/explorer/cpu_cores b/cdist/conf/explorer/cpu_cores deleted file mode 100755 index a52bddac..00000000 --- a/cdist/conf/explorer/cpu_cores +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# 2014 Daniel Heule (hda at sfs.biz) -# 2014 Thomas Oettli (otho at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -# FIXME: other system types (not linux ...) - -os=$("$__explorer/os") -case "$os" in - "macosx") - sysctl -n hw.physicalcpu - ;; - - "openbsd") - sysctl -n hw.ncpuonline - ;; - - *) - if [ -r /proc/cpuinfo ]; then - cores="$(grep "core id" /proc/cpuinfo | sort | uniq | wc -l)" - if [ "${cores}" -eq 0 ]; then - cores="1" - fi - echo "$cores" - fi - ;; -esac diff --git a/cdist/conf/explorer/cpu_sockets b/cdist/conf/explorer/cpu_sockets deleted file mode 100755 index a32e2f00..00000000 --- a/cdist/conf/explorer/cpu_sockets +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# -# 2014 Daniel Heule (hda at sfs.biz) -# 2014 Thomas Oettli (otho at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -# FIXME: other system types (not linux ...) - -os=$("$__explorer/os") -case "$os" in - "macosx") - system_profiler SPHardwareDataType | grep "Number of Processors" | awk -F': ' '{print $2}' - ;; - - *) - if [ -r /proc/cpuinfo ]; then - sockets="$(grep "physical id" /proc/cpuinfo | sort -u | wc -l)" - if [ "${sockets}" -eq 0 ]; then - sockets="$(grep -c "processor" /proc/cpuinfo)" - fi - echo "${sockets}" - fi - ;; -esac diff --git a/cdist/conf/explorer/disks b/cdist/conf/explorer/disks deleted file mode 100755 index 87a6b5c6..00000000 --- a/cdist/conf/explorer/disks +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -uname_s="$(uname -s)" - -case "${uname_s}" in - FreeBSD) - sysctl -n kern.disks - ;; - OpenBSD|NetBSD) - sysctl -n hw.disknames | grep -Eo '[lsw]d[0-9]+' | xargs - ;; - Linux) - if command -v lsblk > /dev/null - then - # exclude ram disks, floppies and cdroms - # https://www.kernel.org/doc/Documentation/admin-guide/devices.txt - lsblk -e 1,2,11 -dno name | xargs - else - printf "Don't know how to list disks for %s operating system without lsblk, if you can please submit a patch\n" "${uname_s}" >&2 - fi - ;; - *) - printf "Don't know how to list disks for %s operating system, if you can please submit a patch\n" "${uname_s}" >&2 - ;; -esac - -exit 0 diff --git a/cdist/conf/explorer/init b/cdist/conf/explorer/init deleted file mode 100755 index a8a7857e..00000000 --- a/cdist/conf/explorer/init +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# 2016 Daniel Heule (hda at sfs.biz) -# Copyright 2017, Philippe Gregoire -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Returns the process name of pid 1 ( normaly the init system ) -# for example at linux this value is "init" or "systemd" in most cases -# - -uname_s="$(uname -s)" - -case "$uname_s" in - Linux) - (pgrep -P0 -l | awk '/^1[ \t]/ {print $2;}') || true - ;; - FreeBSD|OpenBSD) - ps -o comm= -p 1 || true - ;; - *) - # return a empty string as unknown value - echo "" - ;; -esac diff --git a/cdist/conf/explorer/interfaces b/cdist/conf/explorer/interfaces deleted file mode 100755 index aeb55ed0..00000000 --- a/cdist/conf/explorer/interfaces +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -e -# -# 2019 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if command -v ip >/dev/null -then - ip -o link show | sed -n 's/^[0-9]\+: \(.\+\): <.*/\1/p' -elif command -v ifconfig >/dev/null -then - ifconfig -a | sed -n -E 's/^(.*)(:[[:space:]]*flags=|Link encap).*/\1/p' -fi \ - | sort -u diff --git a/cdist/conf/explorer/is-freebsd-jail b/cdist/conf/explorer/is-freebsd-jail deleted file mode 100755 index 010917f5..00000000 --- a/cdist/conf/explorer/is-freebsd-jail +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -sysctl -n security.jail.jailed 2>/dev/null | grep "1" || true diff --git a/cdist/conf/explorer/kernel_name b/cdist/conf/explorer/kernel_name deleted file mode 100755 index 1f9cfca4..00000000 --- a/cdist/conf/explorer/kernel_name +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -uname -s diff --git a/cdist/conf/explorer/lsb_codename b/cdist/conf/explorer/lsb_codename deleted file mode 100755 index 26bb8e3d..00000000 --- a/cdist/conf/explorer/lsb_codename +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -set +e -case "$("$__explorer/os")" in - openwrt) - # shellcheck disable=SC1091 - (. /etc/openwrt_release && echo "$DISTRIB_CODENAME") - ;; - *) - lsb_release=$(command -v lsb_release) - if [ -x "$lsb_release" ]; then - $lsb_release --short --codename - fi - ;; -esac diff --git a/cdist/conf/explorer/lsb_description b/cdist/conf/explorer/lsb_description deleted file mode 100755 index b1009627..00000000 --- a/cdist/conf/explorer/lsb_description +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -set +e -case "$("$__explorer/os")" in - openwrt) - # shellcheck disable=SC1091 - (. /etc/openwrt_release && echo "$DISTRIB_DESCRIPTION") - ;; - *) - lsb_release=$(command -v lsb_release) - if [ -x "$lsb_release" ]; then - $lsb_release --short --description - fi - ;; -esac diff --git a/cdist/conf/explorer/lsb_id b/cdist/conf/explorer/lsb_id deleted file mode 100755 index 82ff9977..00000000 --- a/cdist/conf/explorer/lsb_id +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -set +e -case "$("$__explorer/os")" in - openwrt) - # shellcheck disable=SC1091 - (. /etc/openwrt_release && echo "$DISTRIB_ID") - ;; - *) - lsb_release=$(command -v lsb_release) - if [ -x "$lsb_release" ]; then - $lsb_release --short --id - fi - ;; -esac diff --git a/cdist/conf/explorer/lsb_release b/cdist/conf/explorer/lsb_release deleted file mode 100755 index 5ebfff1a..00000000 --- a/cdist/conf/explorer/lsb_release +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -set +e -case "$("$__explorer/os")" in - openwrt) - # shellcheck disable=SC1091 - (. /etc/openwrt_release && echo "$DISTRIB_RELEASE") - ;; - *) - lsb_release=$(command -v lsb_release) - if [ -x "$lsb_release" ]; then - $lsb_release --short --release - fi - ;; -esac diff --git a/cdist/conf/explorer/machine_type b/cdist/conf/explorer/machine_type deleted file mode 100755 index bb21f69c..00000000 --- a/cdist/conf/explorer/machine_type +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# -# 2014 Daniel Heule (hda at sfs.biz) -# 2014 Thomas Oettli (otho at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -# FIXME: other system types (not linux ...) - -if [ -d "/proc/vz" ] && [ ! -d "/proc/bc" ]; then - echo openvz - exit -fi - -if [ -e "/proc/1/environ" ] && - tr '\000' '\n' < "/proc/1/environ" | grep -Eiq '^container='; then - echo lxc - exit -fi - -if [ -r /proc/cpuinfo ]; then - # this should only exist on virtual guest machines, - # tested on vmware, xen, kvm - if grep -q "hypervisor" /proc/cpuinfo; then - # this file is aviable in xen guest systems - if [ -r /sys/hypervisor/type ]; then - if grep -q -i "xen" /sys/hypervisor/type; then - echo virtual_by_xen - exit - fi - else - if [ -r /sys/class/dmi/id/product_name ]; then - if grep -q -i 'vmware' /sys/class/dmi/id/product_name; then - echo "virtual_by_vmware" - exit - elif grep -q -i 'bochs' /sys/class/dmi/id/product_name; then - echo "virtual_by_kvm" - exit - elif grep -q -i 'virtualbox' /sys/class/dmi/id/product_name; then - echo "virtual_by_virtualbox" - exit - fi - fi - - if [ -r /sys/class/dmi/id/sys_vendor ]; then - if grep -q -i 'qemu' /sys/class/dmi/id/sys_vendor; then - echo "virtual_by_kvm" - exit - fi - fi - - if [ -r /sys/class/dmi/id/chassis_vendor ]; then - if grep -q -i 'qemu' /sys/class/dmi/id/chassis_vendor; then - echo "virtual_by_kvm" - exit - fi - fi - fi - echo "virtual_by_unknown" - else - echo "physical" - fi -else - echo "unknown" -fi diff --git a/cdist/conf/explorer/memory b/cdist/conf/explorer/memory deleted file mode 100755 index 4e3efff8..00000000 --- a/cdist/conf/explorer/memory +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# -# 2014 Daniel Heule (hda at sfs.biz) -# 2014 Thomas Oettli (otho at sfs.biz) -# Copyright 2017, Philippe Gregoire -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -# FIXME: other system types (not linux ...) - -os=$("$__explorer/os") -case "$os" in - "macosx") - echo "$(sysctl -n hw.memsize)/1024" | bc - ;; - - "openbsd") - echo "$(sysctl -n hw.physmem) / 1048576" | bc - ;; - - *) - if [ -r /proc/meminfo ]; then - grep "MemTotal:" /proc/meminfo | awk '{print $2}' - fi - ;; -esac diff --git a/cdist/conf/explorer/os b/cdist/conf/explorer/os deleted file mode 100755 index 563fa4cf..00000000 --- a/cdist/conf/explorer/os +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# Copyright 2017, Philippe Gregoire -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# All os variables are lower case. Keep this file in alphabetical -# order by os variable except in cases where order otherwise matters, -# in which case keep the primary os and its derivatives together in -# a block (see Debian and Redhat examples below). -# - -if grep -q ^Amazon /etc/system-release 2>/dev/null; then - echo amazon - exit 0 -fi - -if [ -f /etc/arch-release ]; then - echo archlinux - exit 0 -fi - -if [ -f /etc/cdist-preos ]; then - echo cdist-preos - exit 0 -fi - -if [ -d /gnu/store ]; then - echo guixsd - exit 0 -fi - -### Debian and derivatives -if grep -q ^DISTRIB_ID=Ubuntu /etc/lsb-release 2>/dev/null; then - echo ubuntu - exit 0 -fi - -# devuan ascii has both devuan_version and debian_version, so we need to check devuan_version first! -if [ -f /etc/devuan_version ]; then - echo devuan - exit 0 -fi - -if [ -f /etc/debian_version ]; then - echo debian - exit 0 -fi - -### - -if [ -f /etc/gentoo-release ]; then - echo gentoo - exit 0 -fi - -if [ -f /etc/openwrt_version ]; then - echo openwrt - exit 0 -fi - -if [ -f /etc/owl-release ]; then - echo owl - exit 0 -fi - -### Redhat and derivatives -if grep -q ^Scientific /etc/redhat-release 2>/dev/null; then - echo scientific - exit 0 -fi - -if grep -q ^CentOS /etc/redhat-release 2>/dev/null; then - echo centos - exit 0 -fi - -if grep -q ^Fedora /etc/redhat-release 2>/dev/null; then - echo fedora - exit 0 -fi - -if grep -q ^Mitel /etc/redhat-release 2>/dev/null; then - echo mitel - exit 0 -fi - -if [ -f /etc/redhat-release ]; then - echo redhat - exit 0 -fi -### - -if [ -f /etc/SuSE-release ]; then - echo suse - exit 0 -fi - -if [ -f /etc/slackware-version ]; then - echo slackware - exit 0 -fi - -uname_s="$(uname -s)" - -# Assume there is no tr on the client -> do lower case ourselves -case "$uname_s" in - Darwin) - echo macosx - exit 0 - ;; - NetBSD) - echo netbsd - exit 0 - ;; - FreeBSD) - echo freebsd - exit 0 - ;; - OpenBSD) - echo openbsd - exit 0 - ;; - SunOS) - echo solaris - exit 0 - ;; -esac - -if [ -f /etc/os-release ]; then - # already lowercase, according to: - # https://www.freedesktop.org/software/systemd/man/os-release.html - awk -F= '/^ID=/ { if ($2 ~ /^'"'"'(.*)'"'"'$/ || $2 ~ /^"(.*)"$/) { print substr($2, 2, length($2) - 2) } else { print $2 } }' /etc/os-release - exit 0 -fi - -echo "Unknown OS" >&2 -exit 1 diff --git a/cdist/conf/explorer/os_version b/cdist/conf/explorer/os_version deleted file mode 100755 index 4c41695b..00000000 --- a/cdist/conf/explorer/os_version +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# All os variables are lower case -# -# - -case "$("$__explorer/os")" in - amazon) - cat /etc/system-release - ;; - archlinux) - # empty, but well... - cat /etc/arch-release - ;; - debian) - cat /etc/debian_version - ;; - devuan) - cat /etc/devuan_version - ;; - fedora) - cat /etc/fedora-release - ;; - gentoo) - cat /etc/gentoo-release - ;; - macosx) - sw_vers -productVersion - ;; - *bsd|solaris) - uname -r - ;; - openwrt) - cat /etc/openwrt_version - ;; - owl) - cat /etc/owl-release - ;; - redhat|centos|mitel|scientific) - cat /etc/redhat-release - ;; - slackware) - cat /etc/slackware-version - ;; - suse) - if [ -f /etc/os-release ]; then - cat /etc/os-release - else - cat /etc/SuSE-release - fi - ;; - ubuntu) - lsb_release -sr - ;; -esac diff --git a/cdist/conf/manifest/sample-from-distribution b/cdist/conf/manifest/sample-from-distribution deleted file mode 100755 index 56d52cf5..00000000 --- a/cdist/conf/manifest/sample-from-distribution +++ /dev/null @@ -1,62 +0,0 @@ -## # -## # Sample manifest from cdist distribution -## # -## -## # Every machine becomes a marker, so sysadmins know that automatic -## # configurations are happening -## __file /etc/cdist-configured -## __cdistmarker -## -## case "$__target_host" in -## # Everybody has this -## localhost) -## require="__file/etc/cdist-configured" __link /tmp/cdist-testfile \ -## --source /etc/cdist-configured --type symbolic -## require="__directory/tmp/cdist-test-dir" __file /tmp/cdist-test-dir/test-file \ -## --mode 0750 --owner nobody --group root -## __directory /tmp/cdist-test-dir --mode 4777 -## -## require="__file/etc/cdist-configured __link/tmp/cdist-testfile" \ -## __file /tmp/cdist-another-testfile -## -## ;; -## -## # -## # Use an alias in /etc/hosts for localhost to use these hosts: -## # -## # 127.0.0.1 localhost.localdomain localhost cdist-archlinux -## # -## cdist-archlinux) -## # This is the specific package type for pacman -## __package_pacman zsh --state installed -## -## # The __package type autoselect the right type based on the os -## __package vim --state installed -## -## # If the type is a singleton, it does not take an object id -## __issue -## ;; -## # This is how it would look like on gentoo -## cdist-gentoo) -## # Same stuff for gentoo -## __package tree --state installed -## ;; -## -## cdist-debian) -## __package_apt atop --state installed -## __package apache2 --state removed -## ;; -## -## cdist-redhat) -## __issue -## __motd -## ;; -## -## # Real machines may be used with their hostname or fqdn, -## # depending on how you call cdist -## # ... -## # ;; -## # machine.example.org) -## # ... -## # ;; -## esac diff --git a/cdist/conf/type/__acl/explorer/acl_is b/cdist/conf/type/__acl/explorer/acl_is deleted file mode 100755 index a693c023..00000000 --- a/cdist/conf/type/__acl/explorer/acl_is +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -[ ! -e "/$__object_id" ] && exit 0 - -if ! command -v getfacl > /dev/null -then - echo 'getfacl not available' >&2 - exit 1 -fi - -getfacl "/$__object_id" 2>/dev/null \ - | grep -Eo '^(default:)?(user|group|(mask|other):):[^:][[:graph:]]+' \ - || true diff --git a/cdist/conf/type/__acl/explorer/checks b/cdist/conf/type/__acl/explorer/checks deleted file mode 100755 index 70bb0412..00000000 --- a/cdist/conf/type/__acl/explorer/checks +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -e -# -# 2019 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# TODO check if filesystem has ACL turned on etc - -if [ -f "$__object/parameter/acl" ] -then - grep -E '^(default:)?(user|group):' "$__object/parameter/acl" \ - | while read -r acl - do - param="$( echo "$acl" | awk -F: '{print $(NF-2)}' )" - check="$( echo "$acl" | awk -F: '{print $(NF-1)}' )" - - [ "$param" = 'user' ] && db=passwd || db="$param" - - if ! getent "$db" "$check" > /dev/null - then - echo "missing $param '$check'" >&2 - exit 1 - fi - done -fi diff --git a/cdist/conf/type/__acl/explorer/file_is b/cdist/conf/type/__acl/explorer/file_is deleted file mode 100755 index 096cffd1..00000000 --- a/cdist/conf/type/__acl/explorer/file_is +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -e "/$__object_id" ] -then - if [ -d "/$__object_id" ] - then echo directory - elif [ -f "/$__object_id" ] - then echo regular - else echo other - fi -else - echo missing -fi diff --git a/cdist/conf/type/__acl/gencode-remote b/cdist/conf/type/__acl/gencode-remote deleted file mode 100755 index f4f0d1e2..00000000 --- a/cdist/conf/type/__acl/gencode-remote +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -file_is="$( cat "$__object/explorer/file_is" )" - -[ "$file_is" = 'missing' ] && [ -z "$__cdist_dry_run" ] && exit 0 - -os="$( cat "$__global/explorer/os" )" - -acl_path="/$__object_id" - -acl_is="$( cat "$__object/explorer/acl_is" )" - -if [ -f "$__object/parameter/entry" ] -then - acl_should="$( cat "$__object/parameter/entry" )" -elif [ -f "$__object/parameter/acl" ] -then - acl_should="$( cat "$__object/parameter/acl" )" -elif - [ -f "$__object/parameter/user" ] \ - || [ -f "$__object/parameter/group" ] \ - || [ -f "$__object/parameter/mask" ] \ - || [ -f "$__object/parameter/other" ] -then - acl_should="$( for param in user group mask other - do - [ ! -f "$__object/parameter/$param" ] && continue - - echo "$param" | grep -Eq 'mask|other' && sep=:: || sep=: - - echo "$param$sep$( cat "$__object/parameter/$param" )" - done )" -else - echo 'no parameters set' >&2 - exit 1 -fi - -if [ -f "$__object/parameter/default" ] -then - acl_should="$( echo "$acl_should" \ - | sed 's/^default://' \ - | sort -u \ - | sed 's/\(.*\)/default:\1\n\1/' )" -fi - -if [ "$file_is" = 'regular' ] \ - && echo "$acl_should" | grep -Eq '^default:' -then - # only directories can have default ACLs, - # but instead of error, - # let's just remove default entries - acl_should="$( echo "$acl_should" | grep -Ev '^default:' )" -fi - -if echo "$acl_should" | awk -F: '{ print $NF }' | grep -Fq 'X' -then - [ "$file_is" = 'directory' ] && rep=x || rep=- - - acl_should="$( echo "$acl_should" | sed "s/\\(.*\\)X/\\1$rep/" )" -fi - -setfacl_exec='setfacl' - -if [ -f "$__object/parameter/recursive" ] -then - if echo "$os" | grep -Fq 'freebsd' - then - echo "$os setfacl do not support recursive operations" >&2 - else - setfacl_exec="$setfacl_exec -R" - fi -fi - -if [ -f "$__object/parameter/remove" ] -then - echo "$acl_is" | while read -r acl - do - # skip wanted ACL entries which already exist - # and skip mask and other entries, because we - # can't actually remove them, but only change. - if echo "$acl_should" | grep -Eq "^$acl" \ - || echo "$acl" | grep -Eq '^(default:)?(mask|other)' - then continue - fi - - if echo "$os" | grep -Fq 'freebsd' - then - remove="$acl" - else - remove="$( echo "$acl" | sed 's/:...$//' )" - fi - - echo "$setfacl_exec -x \"$remove\" \"$acl_path\"" - echo "removed '$remove'" >> "$__messages_out" - done -fi - -for acl in $acl_should -do - if ! echo "$acl_is" | grep -Eq "^$acl" - then - if echo "$os" | grep -Fq 'freebsd' \ - && echo "$acl" | grep -Eq '^default:' - then - echo "setting default ACL in $os is currently not supported" >&2 - else - echo "$setfacl_exec -m \"$acl\" \"$acl_path\"" - echo "added '$acl'" >> "$__messages_out" - fi - fi -done diff --git a/cdist/conf/type/__acl/man.rst b/cdist/conf/type/__acl/man.rst deleted file mode 100644 index c3493e49..00000000 --- a/cdist/conf/type/__acl/man.rst +++ /dev/null @@ -1,85 +0,0 @@ -cdist-type__acl(7) -================== - -NAME ----- -cdist-type__acl - Set ACL entries - - -DESCRIPTION ------------ -Fully supported and tested on Linux (ext4 filesystem), partial support for FreeBSD. - -See ``setfacl`` and ``acl`` manpages for more details. - - -REQUIRED MULTIPLE PARAMETERS ----------------------------- -entry - Set ACL entry following ``getfacl`` output syntax. - - -BOOLEAN PARAMETERS ------------------- -default - Set all ACL entries as default too. - Only directories can have default ACLs. - Setting default ACL in FreeBSD is currently not supported. - -recursive - Make ``setfacl`` recursive (Linux only), but not ``getfacl`` in explorer. - -remove - Remove undefined ACL entries. - ``mask`` and ``other`` entries can't be removed, but only changed. - - -DEPRECATED PARAMETERS ---------------------- -Parameters ``acl``, ``user``, ``group``, ``mask`` and ``other`` are deprecated and they -will be removed in future versions. Please use ``entry`` parameter instead. - - -EXAMPLES --------- - -.. code-block:: sh - - __acl /srv/project \ - --default \ - --recursive \ - --remove \ - --entry user:alice:rwx \ - --entry user:bob:r-x \ - --entry group:project-group:rwx \ - --entry group:some-other-group:r-x \ - --entry mask::r-x \ - --entry other::r-x - - # give Alice read-only access to subdir, - # but don't allow her to see parent content. - - __acl /srv/project2 \ - --remove \ - --entry default:group:secret-project:rwx \ - --entry group:secret-project:rwx \ - --entry user:alice:--x - - __acl /srv/project2/subdir \ - --default \ - --remove \ - --entry group:secret-project:rwx \ - --entry user:alice:r-x - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2018 Ander Punnar. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__acl/parameter/boolean b/cdist/conf/type/__acl/parameter/boolean deleted file mode 100644 index 8b96693f..00000000 --- a/cdist/conf/type/__acl/parameter/boolean +++ /dev/null @@ -1,3 +0,0 @@ -recursive -default -remove diff --git a/cdist/conf/type/__acl/parameter/deprecated/acl b/cdist/conf/type/__acl/parameter/deprecated/acl deleted file mode 100644 index 94e14159..00000000 --- a/cdist/conf/type/__acl/parameter/deprecated/acl +++ /dev/null @@ -1 +0,0 @@ -see manual for details diff --git a/cdist/conf/type/__acl/parameter/deprecated/group b/cdist/conf/type/__acl/parameter/deprecated/group deleted file mode 100644 index 94e14159..00000000 --- a/cdist/conf/type/__acl/parameter/deprecated/group +++ /dev/null @@ -1 +0,0 @@ -see manual for details diff --git a/cdist/conf/type/__acl/parameter/deprecated/mask b/cdist/conf/type/__acl/parameter/deprecated/mask deleted file mode 100644 index 94e14159..00000000 --- a/cdist/conf/type/__acl/parameter/deprecated/mask +++ /dev/null @@ -1 +0,0 @@ -see manual for details diff --git a/cdist/conf/type/__acl/parameter/deprecated/other b/cdist/conf/type/__acl/parameter/deprecated/other deleted file mode 100644 index 94e14159..00000000 --- a/cdist/conf/type/__acl/parameter/deprecated/other +++ /dev/null @@ -1 +0,0 @@ -see manual for details diff --git a/cdist/conf/type/__acl/parameter/deprecated/user b/cdist/conf/type/__acl/parameter/deprecated/user deleted file mode 100644 index 94e14159..00000000 --- a/cdist/conf/type/__acl/parameter/deprecated/user +++ /dev/null @@ -1 +0,0 @@ -see manual for details diff --git a/cdist/conf/type/__acl/parameter/optional b/cdist/conf/type/__acl/parameter/optional deleted file mode 100644 index 4b32086b..00000000 --- a/cdist/conf/type/__acl/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -mask -other diff --git a/cdist/conf/type/__acl/parameter/optional_multiple b/cdist/conf/type/__acl/parameter/optional_multiple deleted file mode 100644 index c615d507..00000000 --- a/cdist/conf/type/__acl/parameter/optional_multiple +++ /dev/null @@ -1,4 +0,0 @@ -entry -acl -user -group diff --git a/cdist/conf/type/__apt_default_release/man.rst b/cdist/conf/type/__apt_default_release/man.rst deleted file mode 100644 index 0277a06f..00000000 --- a/cdist/conf/type/__apt_default_release/man.rst +++ /dev/null @@ -1,46 +0,0 @@ -cdist-type__apt_default_release(7) -================================== - -NAME ----- -cdist-type__apt_default_release - Configure the default release for apt - - -DESCRIPTION ------------ -Configure the default release for apt, using the APT::Default-Release -configuration value. - -REQUIRED PARAMETERS -------------------- -release - The value to set APT::Default-Release to. - - This can contain release name, codename or release version. Examples: - 'stable', 'testing', 'unstable', 'stretch', 'buster', '4.0', '5.0*'. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __apt_default_release --release stretch - - -AUTHORS -------- -Matthijs Kooijman - - -COPYING -------- -Copyright \(C) 2017 Matthijs Kooijman. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_default_release/manifest b/cdist/conf/type/__apt_default_release/manifest deleted file mode 100755 index 1232efb5..00000000 --- a/cdist/conf/type/__apt_default_release/manifest +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2017 Matthijs Kooijman (matthijs at stdin.nl) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") -release="$(cat "$__object/parameter/release")" - -case "$os" in - ubuntu|debian|devuan) - __file /etc/apt/apt.conf.d/99-default-release \ - --owner root --group root --mode 644 \ - --source - << DONE -APT::Default-Release "$release"; -DONE - ;; - *) - cat >&2 << DONE -The developer of this type (${__type##*/}) did not think your operating system -($os) would have any use for it. If you think otherwise please submit a patch. -DONE - exit 1 - ;; -esac diff --git a/cdist/conf/type/__apt_default_release/parameter/required b/cdist/conf/type/__apt_default_release/parameter/required deleted file mode 100644 index d7025695..00000000 --- a/cdist/conf/type/__apt_default_release/parameter/required +++ /dev/null @@ -1 +0,0 @@ -release diff --git a/cdist/conf/type/__apt_key/explorer/state b/cdist/conf/type/__apt_key/explorer/state deleted file mode 100755 index 38f1bd3c..00000000 --- a/cdist/conf/type/__apt_key/explorer/state +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Get the current state of the apt key. -# - -if [ -f "$__object/parameter/keyid" ]; then - keyid="$(cat "$__object/parameter/keyid")" -else - keyid="$__object_id" -fi - -keydir="$(cat "$__object/parameter/keydir")" -keyfile="$keydir/$__object_id.gpg" - -if [ -d "$keydir" ] -then - if [ -f "$keyfile" ] - then echo present - else echo absent - fi -else - # fallback to deprecated apt-key - apt-key export "$keyid" | head -n 1 | grep -Fqe "BEGIN PGP PUBLIC KEY BLOCK" \ - && echo present \ - || echo absent -fi diff --git a/cdist/conf/type/__apt_key/gencode-remote b/cdist/conf/type/__apt_key/gencode-remote deleted file mode 100755 index 0c96ff67..00000000 --- a/cdist/conf/type/__apt_key/gencode-remote +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -e -# -# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/keyid" ]; then - keyid="$(cat "$__object/parameter/keyid")" -else - keyid="$__object_id" -fi -state_should="$(cat "$__object/parameter/state")" -state_is="$(cat "$__object/explorer/state")" - -if [ "$state_should" = "$state_is" ]; then - # nothing to do - exit 0 -fi - -keydir="$(cat "$__object/parameter/keydir")" -keyfile="$keydir/$__object_id.gpg" - -case "$state_should" in - present) - keyserver="$(cat "$__object/parameter/keyserver")" - - if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" - - if [ -d "$keydir" ]; then - cat << EOF - -curl -s -L \\ - -o "$keyfile" \\ - "$uri" - -key="\$( cat "$keyfile" )" - -if echo "\$key" | grep -Fq 'BEGIN PGP PUBLIC KEY BLOCK' -then - echo "\$key" | gpg --dearmor > "$keyfile" -fi - -EOF - else - # fallback to deprecated apt-key - echo "curl -s -L '$uri' | apt-key add -" - fi - elif [ -d "$keydir" ]; then - # we need to kill gpg after 30 seconds, because gpg - # can get stuck if keyserver is not responding. - # exporting env var and not exit 1, - # because we need to clean up and kill dirmngr. - cat << EOF - -gpgtmphome="\$( mktemp -d )" - -if timeout 30s \\ - gpg --homedir "\$gpgtmphome" \\ - --keyserver "$keyserver" \\ - --recv-keys "$keyid" -then - gpg --homedir "\$gpgtmphome" \\ - --export "$keyid" \\ - > "$keyfile" -else - export GPG_GOT_STUCK=1 -fi - -GNUPGHOME="\$gpgtmphome" gpgconf --kill dirmngr - -rm -rf "\$gpgtmphome" - -if [ -n "\$GPG_GOT_STUCK" ] -then - echo "GPG GOT STUCK - no response from keyserver after 30 seconds" >&2 - exit 1 -fi - -EOF - else - # fallback to deprecated apt-key - echo "apt-key adv --keyserver \"$keyserver\" --recv-keys \"$keyid\"" - fi - - echo "added '$keyid'" >> "$__messages_out" - ;; - absent) - if [ -f "$keyfile" ]; then - echo "rm '$keyfile'" - else - # fallback to deprecated apt-key - echo "apt-key del \"$keyid\"" - fi - - echo "removed '$keyid'" >> "$__messages_out" - ;; -esac diff --git a/cdist/conf/type/__apt_key/man.rst b/cdist/conf/type/__apt_key/man.rst deleted file mode 100644 index 234bc715..00000000 --- a/cdist/conf/type/__apt_key/man.rst +++ /dev/null @@ -1,72 +0,0 @@ -cdist-type__apt_key(7) -====================== - -NAME ----- -cdist-type__apt_key - Manage the list of keys used by apt - - -DESCRIPTION ------------ -Manages the list of keys used by apt to authenticate packages. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent'. Defaults to 'present' - -keyid - the id of the key to add. Defaults to __object_id - -keyserver - the keyserver from which to fetch the key. If omitted the default set - in ./parameter/default/keyserver is used. - -keydir - key save location, defaults to ``/etc/apt/trusted.pgp.d`` - -uri - the URI from which to download the key - - -EXAMPLES --------- - -.. code-block:: sh - - # Add Ubuntu Archive Automatic Signing Key - __apt_key 437D05B5 - # Same thing - __apt_key 437D05B5 --state present - # Get rid of it - __apt_key 437D05B5 --state absent - - # same thing with human readable name and explicit keyid - __apt_key UbuntuArchiveKey --keyid 437D05B5 - - # same thing with other keyserver - __apt_key UbuntuArchiveKey --keyid 437D05B5 --keyserver keyserver.ubuntu.com - - # download key from the internet - __apt_key rabbitmq \ - --uri http://www.rabbitmq.com/rabbitmq-signing-key-public.asc - - -AUTHORS -------- -Steven Armstrong -Ander Punnar - - -COPYING -------- -Copyright \(C) 2011-2019 Steven Armstrong and Ander Punnar. You can -redistribute it and/or modify it under the terms of the GNU General Public -License as published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_key/manifest b/cdist/conf/type/__apt_key/manifest deleted file mode 100755 index 010357cd..00000000 --- a/cdist/conf/type/__apt_key/manifest +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -e - -__package gnupg - -if [ -f "$__object/parameter/uri" ] -then __package curl -else __package dirmngr -fi diff --git a/cdist/conf/type/__apt_key/parameter/default/keydir b/cdist/conf/type/__apt_key/parameter/default/keydir deleted file mode 100644 index 190eb2de..00000000 --- a/cdist/conf/type/__apt_key/parameter/default/keydir +++ /dev/null @@ -1 +0,0 @@ -/etc/apt/trusted.gpg.d diff --git a/cdist/conf/type/__apt_key/parameter/default/keyserver b/cdist/conf/type/__apt_key/parameter/default/keyserver deleted file mode 100644 index 0d189916..00000000 --- a/cdist/conf/type/__apt_key/parameter/default/keyserver +++ /dev/null @@ -1 +0,0 @@ -pool.sks-keyservers.net diff --git a/cdist/conf/type/__apt_key/parameter/default/state b/cdist/conf/type/__apt_key/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__apt_key/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__apt_key/parameter/optional b/cdist/conf/type/__apt_key/parameter/optional deleted file mode 100644 index de647375..00000000 --- a/cdist/conf/type/__apt_key/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -state -keyid -keyserver -keydir -uri diff --git a/cdist/conf/type/__apt_key_uri/gencode-remote b/cdist/conf/type/__apt_key_uri/gencode-remote deleted file mode 100755 index 229b6564..00000000 --- a/cdist/conf/type/__apt_key_uri/gencode-remote +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -e -# -# 2011-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi -state_should="$(cat "$__object/parameter/state")" -state_is="$(cat "$__object/explorer/state")" - -if [ "$state_should" = "$state_is" ]; then - # nothing to do - exit 0 -fi - -case "$state_should" in - present) - uri="$(cat "$__object/parameter/uri")" - printf 'curl -s -L "%s" | apt-key add -\n' "$uri" - ;; - absent) - cat << DONE -keyid=\$(apt-key list | grep -B1 "$name" | awk '/pub/ { print \$2 }' | cut -d'/' -f 2) -apt-key del \$keyid -DONE - ;; -esac diff --git a/cdist/conf/type/__apt_key_uri/man.rst b/cdist/conf/type/__apt_key_uri/man.rst deleted file mode 100644 index 82a191b9..00000000 --- a/cdist/conf/type/__apt_key_uri/man.rst +++ /dev/null @@ -1,51 +0,0 @@ -cdist-type__apt_key_uri(7) -========================== - -NAME ----- -cdist-type__apt_key_uri - Add apt key from uri - - -DESCRIPTION ------------ -Download a key from an uri and add it to the apt keyring. - - -REQUIRED PARAMETERS -------------------- -uri - the uri from which to download the key - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - -name - a name for this key, used when testing if it is already installed. - Defaults to __object_id - - -EXAMPLES --------- - -.. code-block:: sh - - __apt_key_uri rabbitmq \ - --name 'RabbitMQ Release Signing Key ' \ - --uri http://www.rabbitmq.com/rabbitmq-signing-key-public.asc \ - --state present - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011-2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_key_uri/manifest b/cdist/conf/type/__apt_key_uri/manifest deleted file mode 100755 index bf7b267d..00000000 --- a/cdist/conf/type/__apt_key_uri/manifest +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -# 2013-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -__package curl diff --git a/cdist/conf/type/__apt_key_uri/parameter/default/state b/cdist/conf/type/__apt_key_uri/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__apt_key_uri/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__apt_key_uri/parameter/optional b/cdist/conf/type/__apt_key_uri/parameter/optional deleted file mode 100644 index 72c84b88..00000000 --- a/cdist/conf/type/__apt_key_uri/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -name diff --git a/cdist/conf/type/__apt_key_uri/parameter/required b/cdist/conf/type/__apt_key_uri/parameter/required deleted file mode 100644 index c7954952..00000000 --- a/cdist/conf/type/__apt_key_uri/parameter/required +++ /dev/null @@ -1 +0,0 @@ -uri diff --git a/cdist/conf/type/__apt_mark/explorer/apt_version b/cdist/conf/type/__apt_mark/explorer/apt_version deleted file mode 100755 index 7bb90cc2..00000000 --- a/cdist/conf/type/__apt_mark/explorer/apt_version +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -e -# -# 2016 Ander Punnar (cdist at kvlt.ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -apt_version_is=$(dpkg-query --show --showformat '${Version}' apt) - -# from APT changelog: -# apt (0.8.14.2) UNRELEASED; urgency=low -# provide a 'dpkg --set-selections' wrapper to set/release holds - -apt_version_should=0.8.14.2 - -dpkg --compare-versions "$apt_version_should" le "$apt_version_is" \ - && echo 0 \ - || echo 1 diff --git a/cdist/conf/type/__apt_mark/explorer/package_installed b/cdist/conf/type/__apt_mark/explorer/package_installed deleted file mode 100755 index 0b072cbc..00000000 --- a/cdist/conf/type/__apt_mark/explorer/package_installed +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -e -# -# 2016 Ander Punnar (cdist at kvlt.ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -dpkg-query --show --showformat '${Status}' "$name" 2>/dev/null \ - | grep -Fq 'ok installed' \ - && echo 0 \ - || echo 1 diff --git a/cdist/conf/type/__apt_mark/explorer/state b/cdist/conf/type/__apt_mark/explorer/state deleted file mode 100755 index b7fe08fa..00000000 --- a/cdist/conf/type/__apt_mark/explorer/state +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -e -# -# 2016 Ander Punnar (cdist at kvlt.ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -apt-mark showhold | grep -Fq "$name" && echo hold || echo unhold diff --git a/cdist/conf/type/__apt_mark/gencode-remote b/cdist/conf/type/__apt_mark/gencode-remote deleted file mode 100755 index bc995444..00000000 --- a/cdist/conf/type/__apt_mark/gencode-remote +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -e -# -# 2016 Ander Punnar (cdist at kvlt.ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -apt_version="$(cat "$__object/explorer/apt_version")" - -if [ "$apt_version" != '0' ]; then - echo 'APT version not supported' >&2 - exit 1 -fi - -package_installed="$(cat "$__object/explorer/package_installed")" - -if [ "$package_installed" != '0' ]; then - exit 0 -fi - -state_should="$(cat "$__object/parameter/state")" - -state_is="$(cat "$__object/explorer/state")" - -if [ "$state_should" = "$state_is" ]; then - exit 0 -fi - -case "$state_should" in - hold|unhold) - echo "apt-mark $state_should $name > /dev/null" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__apt_mark/man.rst b/cdist/conf/type/__apt_mark/man.rst deleted file mode 100644 index 7aa2a519..00000000 --- a/cdist/conf/type/__apt_mark/man.rst +++ /dev/null @@ -1,47 +0,0 @@ -cdist-type__apt_mark(7) -======================= - -NAME ----- -cdist-type__apt_mark - set package state as 'hold' or 'unhold' - - -DESCRIPTION ------------ -See apt-mark(8) for details. - - -REQUIRED PARAMETERS -------------------- -state - Either "hold" or "unhold". - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - - -EXAMPLES --------- - -.. code-block:: sh - - # hold package - __apt_mark quagga --state hold - # unhold package - __apt_mark quagga --state unhold - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2016 Ander Punnar. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_norecommends/man.rst b/cdist/conf/type/__apt_norecommends/man.rst deleted file mode 100644 index 001fffe4..00000000 --- a/cdist/conf/type/__apt_norecommends/man.rst +++ /dev/null @@ -1,42 +0,0 @@ -cdist-type__apt_norecommends(7) -=============================== - -NAME ----- -cdist-type__apt_norecommends - Configure apt to not install recommended packages - - -DESCRIPTION ------------ -Configure apt to not install any recommended or suggested packages. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __apt_norecommends - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_norecommends/manifest b/cdist/conf/type/__apt_norecommends/manifest deleted file mode 100755 index e737df89..00000000 --- a/cdist/conf/type/__apt_norecommends/manifest +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - ubuntu|debian|devuan) - # No stinking recommends thank you very much. - # If I want something installed I will do so myself. - __file /etc/apt/apt.conf.d/99-no-recommends \ - --owner root --group root --mode 644 \ - --source - << DONE -APT::Install-Recommends "0"; -APT::Install-Suggests "0"; -APT::AutoRemove::RecommendsImportant "0"; -APT::AutoRemove::SuggestsImportant "0"; -DONE - ;; - *) - cat >&2 << DONE -The developer of this type (${__type##*/}) did not think your operating system -($os) would have any use for it. If you think otherwise please submit a patch. -DONE - exit 1 - ;; -esac diff --git a/cdist/conf/type/__apt_ppa/man.rst b/cdist/conf/type/__apt_ppa/man.rst deleted file mode 100644 index 8347c908..00000000 --- a/cdist/conf/type/__apt_ppa/man.rst +++ /dev/null @@ -1,50 +0,0 @@ -cdist-type__apt_ppa(7) -====================== - -NAME ----- -cdist-type__apt_ppa - Manage ppa repositories - - -DESCRIPTION ------------ -This cdist type allows manage ubuntu ppa repositories. - - -REQUIRED PARAMETERS -------------------- -state - The state the ppa should be in, either 'present' or 'absent'. - Defaults to 'present' - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - # Enable a ppa repository - __apt_ppa ppa:sans-intern/missing-bits - # same as - __apt_ppa ppa:sans-intern/missing-bits --state present - - # Disable a ppa repository - __apt_ppa ppa:sans-intern/missing-bits --state absent - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011-2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_ppa/parameter/default/state b/cdist/conf/type/__apt_ppa/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__apt_ppa/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__apt_source/files/source.list.template b/cdist/conf/type/__apt_source/files/source.list.template deleted file mode 100755 index d4420e96..00000000 --- a/cdist/conf/type/__apt_source/files/source.list.template +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -set -u - -entry="$uri $distribution $component" -cat << DONE -# Created by cdist ${__type##*/} -# Do not change. Changes will be overwritten. -# - -# $name -deb ${forcedarch} $entry -DONE -if [ -f "$__object/parameter/include-src" ]; then - echo "deb-src $entry" -fi diff --git a/cdist/conf/type/__apt_source/gencode-remote b/cdist/conf/type/__apt_source/gencode-remote deleted file mode 100755 index 1e8592c6..00000000 --- a/cdist/conf/type/__apt_source/gencode-remote +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -e -# -# 2018 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -name="$__object_id" -destination="/etc/apt/sources.list.d/${name}.list" - -if grep -q "^__file${destination}" "$__messages_in"; then - printf 'apt-get update || apt-get update\n' -fi - diff --git a/cdist/conf/type/__apt_source/man.rst b/cdist/conf/type/__apt_source/man.rst deleted file mode 100644 index d1acb388..00000000 --- a/cdist/conf/type/__apt_source/man.rst +++ /dev/null @@ -1,70 +0,0 @@ -cdist-type__apt_source(7) -========================= - -NAME ----- -cdist-type__apt_source - Manage apt sources - - -DESCRIPTION ------------ -This cdist type allows you to manage apt sources. It invokes index update -internally when needed so call of index updating type is not needed. - - -REQUIRED PARAMETERS -------------------- -uri - the uri to the apt repository - - -OPTIONAL PARAMETERS -------------------- -arch - set this if you need to force and specific arch (ubuntu specific) - -state - 'present' or 'absent', defaults to 'present' - -distribution - the distribution codename to use. Defaults to DISTRIB_CODENAME from - the targets /etc/lsb-release - -component - space delimited list of components to enable. Defaults to an empty string. - - -BOOLEAN PARAMETERS ------------------- -include-src - include deb-src entries - - -EXAMPLES --------- - -.. code-block:: sh - - __apt_source rabbitmq \ - --uri http://www.rabbitmq.com/debian/ \ - --distribution testing \ - --component main \ - --include-src \ - --state present - - __apt_source canonical_partner \ - --uri http://archive.canonical.com/ \ - --component partner --state present - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011-2018 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__apt_source/manifest b/cdist/conf/type/__apt_source/manifest deleted file mode 100755 index 35f15909..00000000 --- a/cdist/conf/type/__apt_source/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2011-2018 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$__object_id" -state="$(cat "$__object/parameter/state")" -uri="$(cat "$__object/parameter/uri")" - -if [ -f "$__object/parameter/distribution" ]; then - distribution="$(cat "$__object/parameter/distribution")" -else - distribution="$(cat "$__global/explorer/lsb_codename")" -fi - -component="$(cat "$__object/parameter/component")" - -if [ -f "$__object/parameter/arch" ]; then - forcedarch="[arch=$(cat "$__object/parameter/arch")]" -else - forcedarch="" -fi - -# export variables for use in template -export name -export uri -export distribution -export component -export forcedarch - -# generate file from template -mkdir "$__object/files" -"$__type/files/source.list.template" > "$__object/files/source.list" -__file "/etc/apt/sources.list.d/${name}.list" \ - --source "$__object/files/source.list" \ - --owner root --group root --mode 0644 \ - --state "$state" diff --git a/cdist/conf/type/__apt_source/parameter/boolean b/cdist/conf/type/__apt_source/parameter/boolean deleted file mode 100644 index 8fa49177..00000000 --- a/cdist/conf/type/__apt_source/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -include-src diff --git a/cdist/conf/type/__apt_source/parameter/default/state b/cdist/conf/type/__apt_source/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__apt_source/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__apt_source/parameter/optional b/cdist/conf/type/__apt_source/parameter/optional deleted file mode 100644 index 87537335..00000000 --- a/cdist/conf/type/__apt_source/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -state -distribution -component -arch \ No newline at end of file diff --git a/cdist/conf/type/__apt_source/parameter/required b/cdist/conf/type/__apt_source/parameter/required deleted file mode 100644 index c7954952..00000000 --- a/cdist/conf/type/__apt_source/parameter/required +++ /dev/null @@ -1 +0,0 @@ -uri diff --git a/cdist/conf/type/__apt_update_index/gencode-remote b/cdist/conf/type/__apt_update_index/gencode-remote deleted file mode 100755 index 70b59710..00000000 --- a/cdist/conf/type/__apt_update_index/gencode-remote +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# run 'apt-get update' if anything in /etc/apt is newer then /var/lib/apt/lists -cat << DONE -if find /etc/apt -mindepth 1 -cnewer /var/lib/apt/lists | grep . > /dev/null; then - apt-get update || apt-get update -fi -DONE diff --git a/cdist/conf/type/__apt_update_index/man.rst b/cdist/conf/type/__apt_update_index/man.rst deleted file mode 100644 index 3031902f..00000000 --- a/cdist/conf/type/__apt_update_index/man.rst +++ /dev/null @@ -1,41 +0,0 @@ -cdist-type__apt_update_index(7) -=============================== - -NAME ----- -cdist-type__apt_update_index - Update apt's package index - - -DESCRIPTION ------------ -This cdist type runs apt-get update whenever any apt sources have changed. - - -REQUIRED PARAMETERS -------------------- -None. - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __apt_update_index - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__block/explorer/block b/cdist/conf/type/__block/explorer/block deleted file mode 100755 index e1ca3441..00000000 --- a/cdist/conf/type/__block/explorer/block +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -file="$(cat "$__object/parameter/file" 2>/dev/null || echo "/$__object_id")" - -# file does not exist, nothing we could do -[ -f "$file" ] || exit 0 - -prefix=$(cat "$__object/parameter/prefix" 2>/dev/null || echo "#cdist:__block/$__object_id") -suffix=$(cat "$__object/parameter/suffix" 2>/dev/null || echo "#/cdist:__block/$__object_id") -awk -v prefix="^$prefix\$" -v suffix="^$suffix\$" '{ - if (match($0,prefix)) { - triggered=1 - } - if (triggered) { - if (match($0,suffix)) { - triggered=0 - } - print - } -}' "$file" diff --git a/cdist/conf/type/__block/gencode-remote b/cdist/conf/type/__block/gencode-remote deleted file mode 100755 index 1f5cc033..00000000 --- a/cdist/conf/type/__block/gencode-remote +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -e -# -# 2013 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# quote function from http://www.etalabs.net/sh_tricks.html -quote() { - printf '%s\n' "$1" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/'/" -} - -file="$(cat "$__object/parameter/file" 2>/dev/null || echo "/$__object_id")" -state_should=$(cat "$__object/parameter/state") -prefix=$(cat "$__object/parameter/prefix" 2>/dev/null || echo "#cdist:__block/$__object_id") -suffix=$(cat "$__object/parameter/suffix" 2>/dev/null || echo "#/cdist:__block/$__object_id") - -block="$__object/files/block" -if [ ! -s "$__object/explorer/block" ]; then - state_is='absent' -else - state_is=$(diff -q "$block" "$__object/explorer/block" >/dev/null \ - && echo present \ - || echo changed - ) -fi - -state_should="$(cat "$__object/parameter/state")" -if [ "$state_should" = "$state_is" ]; then - # Nothing to do, move along - exit 0 -fi - -remove_block() { - cat << DONE -tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) -# preserve ownership and permissions of existing file -if [ -f "$file" ]; then - cp -p "$file" "\$tmpfile" -fi -awk -v prefix=^$(quote "$prefix")\$ -v suffix=^$(quote "$suffix")\$ ' -{ - if (match(\$0,prefix)) { - triggered=1 - } - if (triggered) { - if (match(\$0,suffix)) { - triggered=0 - } - } else { - print - } -}' "$file" > "\$tmpfile" -mv -f "\$tmpfile" "$file" -DONE -} - -case "$state_should" in - present) - if [ "$state_is" = "changed" ]; then - echo update >> "$__messages_out" - remove_block - else - echo add >> "$__messages_out" - fi - cat << DONE -cat >> "$file" << ${__type##*/}_DONE -$(cat "$block") -${__type##*/}_DONE -DONE - ;; - absent) - echo remove >> "$__messages_out" - remove_block - ;; -esac diff --git a/cdist/conf/type/__block/man.rst b/cdist/conf/type/__block/man.rst deleted file mode 100644 index 90e50381..00000000 --- a/cdist/conf/type/__block/man.rst +++ /dev/null @@ -1,82 +0,0 @@ -cdist-type__block(7) -==================== - -NAME ----- -cdist-type__block - Manage blocks of text in files - - -DESCRIPTION ------------ -Manage a block of text in an existing file. -The block is identified using the prefix and suffix parameters. -Everything between prefix and suffix is considered to be a managed block -of text. - - -REQUIRED PARAMETERS -------------------- -text - the text to manage. - If text is '-' (dash), take what was written to stdin as the text. - - -OPTIONAL PARAMETERS -------------------- -file - the file in which to manage the text block. - Defaults to object_id. - -prefix - the prefix to add before the text. - Defaults to #cdist:__block/$__object_id - -suffix - the suffix to add after the text. - Defaults to #/cdist:__block/$__object_id - -state - 'present' or 'absent', defaults to 'present' - - -MESSAGES --------- -add - block was added -update - block was updated/changed -remove - block was removed - - -EXAMPLES --------- - -.. code-block:: sh - - # text from argument - __block /path/to/file \ - --prefix '#start' \ - --suffix '#end' \ - --text 'some\nblock of\ntext' - - # text from stdin - __block some-id \ - --file /path/to/file \ - --text - << DONE - here some block - of text - DONE - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2013 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__block/manifest b/cdist/conf/type/__block/manifest deleted file mode 100755 index 726950d3..00000000 --- a/cdist/conf/type/__block/manifest +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -e -# -# 2013-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -prefix=$(cat "$__object/parameter/prefix" 2>/dev/null || echo "#cdist:__block/$__object_id") -suffix=$(cat "$__object/parameter/suffix" 2>/dev/null || echo "#/cdist:__block/$__object_id") -text=$(cat "$__object/parameter/text") - -mkdir "$__object/files" -# Generate text block for inclusion in file -block="$__object/files/block" -echo "$prefix" > "$block" -if [ "$text" = "-" ]; then - cat "$__object/stdin" >> "$block" -else - echo "$text" >> "$block" -fi -echo "$suffix" >> "$block" diff --git a/cdist/conf/type/__block/parameter/default/state b/cdist/conf/type/__block/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__block/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__block/parameter/optional b/cdist/conf/type/__block/parameter/optional deleted file mode 100644 index fa3abebf..00000000 --- a/cdist/conf/type/__block/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -file -prefix -state -suffix diff --git a/cdist/conf/type/__block/parameter/required b/cdist/conf/type/__block/parameter/required deleted file mode 100644 index 8e27be7d..00000000 --- a/cdist/conf/type/__block/parameter/required +++ /dev/null @@ -1 +0,0 @@ -text diff --git a/cdist/conf/type/__ccollect_source/explorer/stat b/cdist/conf/type/__ccollect_source/explorer/stat deleted file mode 100755 index 9b5ad75b..00000000 --- a/cdist/conf/type/__ccollect_source/explorer/stat +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -# nothing to work with, nothing we could do -[ -e "$destination" ] || exit 0 - -os=$("$__explorer/os") -case "$os" in - "freebsd"|"netbsd"|"openbsd") - # FIXME: should be something like this based on man page, but can not test - stat -f "type: %ST -owner: %Du %Su -group: %Dg %Sg -mode: %Op %Sp -size: %Dz -links: %Dl -" "$destination" - ;; - "macosx") - stat -f "type: %HT - owner: %Du %Su - group: %Dg %Sg - mode: %Lp %Sp - size: %Dz - links: %Dl - " "$destination" - ;; - *) - stat --printf="type: %F -owner: %u %U -group: %g %G -mode: %a %A -size: %s -links: %h -" "$destination" - ;; -esac diff --git a/cdist/conf/type/__ccollect_source/explorer/type b/cdist/conf/type/__ccollect_source/explorer/type deleted file mode 100755 index e723047c..00000000 --- a/cdist/conf/type/__ccollect_source/explorer/type +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -if [ ! -e "$destination" ]; then - echo none -elif [ -h "$destination" ]; then - echo symlink -elif [ -f "$destination" ]; then - echo file -elif [ -d "$destination" ]; then - echo directory -else - echo unknown -fi diff --git a/cdist/conf/type/__ccollect_source/gencode-remote b/cdist/conf/type/__ccollect_source/gencode-remote deleted file mode 100755 index 57353c24..00000000 --- a/cdist/conf/type/__ccollect_source/gencode-remote +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh -e -# -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" -state_should="$(cat "$__object/parameter/state")" -type="$(cat "$__object/explorer/type")" -stat_file="$__object/explorer/stat" - - -get_current_value() { - if [ -s "$stat_file" ]; then - _name="$1" - _value="$2" - case "$_value" in - [0-9]*) - _index=2 - ;; - *) - _index=3 - ;; - esac - awk '/'"$_name"':/ { print $'$_index' }' "$stat_file" - unset _name _value _index - fi -} - -set_group() { - echo "chgrp '$1' '$destination'" - echo "chgrp '$1'" >> "$__messages_out" -} - -set_owner() { - echo "chown '$1' '$destination'" - echo "chown '$1'" >> "$__messages_out" -} - -set_mode() { - echo "chmod '$1' '$destination'" - echo "chmod '$1'" >> "$__messages_out" -} - -case "$state_should" in - present|exists) - # Note: Mode - needs to happen last as a chown/chgrp can alter mode by - # clearing S_ISUID and S_ISGID bits (see chown(2)) - for attribute in group owner mode; do - if [ -f "$__object/parameter/$attribute" ]; then - value_should="$(cat "$__object/parameter/$attribute")" - - # change 0xxx format to xxx format => same as stat returns - if [ "$attribute" = mode ]; then - value_should="$(echo "$value_should" | sed 's/^0\(...\)/\1/')" - fi - - value_is="$(get_current_value "$attribute" "$value_should")" - if [ -f "$__object/files/set-attributes" ] || [ "$value_should" != "$value_is" ]; then - "set_$attribute" "$value_should" - fi - fi - done - - ;; - - absent) - if [ "$type" = "file" ]; then - echo "rm -f '$destination'" - echo remove >> "$__messages_out" - fi - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__ccollect_source/man.rst b/cdist/conf/type/__ccollect_source/man.rst deleted file mode 100644 index b0c23482..00000000 --- a/cdist/conf/type/__ccollect_source/man.rst +++ /dev/null @@ -1,78 +0,0 @@ -cdist-type__ccollect_source(7) -============================== - -NAME ----- -cdist-type__ccollect_source - Manage ccollect sources - - -DESCRIPTION ------------ -This cdist type allows you to create or delete ccollect sources. - - -REQUIRED PARAMETERS -------------------- -source - The source from which to backup -destination - The destination directory - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' -ccollectconf - The CCOLLECT_CONF directory. Defaults to /etc/ccollect. - - -OPTIONAL MULTIPLE PARAMETERS ----------------------------- -exclude - Paths to exclude of backup - - -BOOLEAN PARAMETERS ------------------- -verbose - Whether to report backup verbosely - -create-destination - Create the directory specified in the destination parameter on the remote host - -EXAMPLES --------- - -.. code-block:: sh - - __ccollect_source doc.ungleich.ch \ - --source doc.ungleich.ch:/ \ - --destination /backup/doc.ungleich.ch \ - --exclude '/proc/*' --exclude '/sys/*' \ - --verbose - - __ccollect_source doc.ungleich.ch \ - --source doc.ungleich.ch:/ \ - --destination /backup/doc.ungleich.ch \ - --exclude '/proc/*' --exclude '/sys/*' \ - --verbose \ - --create-destination - - -SEE ALSO --------- -:strong:`ccollect`\ (1) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2014 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ccollect_source/manifest b/cdist/conf/type/__ccollect_source/manifest deleted file mode 100755 index 727a4c97..00000000 --- a/cdist/conf/type/__ccollect_source/manifest +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -e -# -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$__object_id" -state="$(cat "$__object/parameter/state")" -source="$(cat "$__object/parameter/source")" -destination="$(cat "$__object/parameter/destination")" -ccollectconf="$(sed 's,/$,,' "$__object/parameter/ccollectconf")" - -sourcedir="$ccollectconf/sources" -basedir="$sourcedir/$name" - -destination_file="$basedir/destination" -source_file="$basedir/source" -exclude_file="$basedir/exclude" -verbose_file="$basedir/verbose" - -__directory "$basedir" --state "$state" - -export require="__directory$basedir" -echo "$destination" | __file "$destination_file" --source - --state "$state" -echo "$source" | __file "$source_file" --source - --state "$state" - -################################################################################ -# Booleans -if [ "${state}" = "absent" ]; then - verbosestate="absent" -elif [ -f "$__object/parameter/verbose" ]; then - verbosestate="present" -else - verbosestate="absent" -fi -__file "$verbose_file" --state "$verbosestate" - -if [ -f "$__object/parameter/exclude" ]; then - __file "$exclude_file" --source - --state "$state" \ - < "$__object/parameter/exclude" -fi - -if [ -f "$__object/parameter/create-destination" ]; then - __directory "${destination}" --parents --state "${state}" -fi diff --git a/cdist/conf/type/__ccollect_source/parameter/boolean b/cdist/conf/type/__ccollect_source/parameter/boolean deleted file mode 100644 index 434c644f..00000000 --- a/cdist/conf/type/__ccollect_source/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -verbose -create-destination diff --git a/cdist/conf/type/__ccollect_source/parameter/default/ccollectconf b/cdist/conf/type/__ccollect_source/parameter/default/ccollectconf deleted file mode 100644 index a9fda009..00000000 --- a/cdist/conf/type/__ccollect_source/parameter/default/ccollectconf +++ /dev/null @@ -1 +0,0 @@ -/etc/ccollect diff --git a/cdist/conf/type/__ccollect_source/parameter/default/state b/cdist/conf/type/__ccollect_source/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__ccollect_source/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__ccollect_source/parameter/optional b/cdist/conf/type/__ccollect_source/parameter/optional deleted file mode 100644 index 0249d11e..00000000 --- a/cdist/conf/type/__ccollect_source/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -ccollectconf -state diff --git a/cdist/conf/type/__ccollect_source/parameter/optional_multiple b/cdist/conf/type/__ccollect_source/parameter/optional_multiple deleted file mode 100644 index 9ba870ea..00000000 --- a/cdist/conf/type/__ccollect_source/parameter/optional_multiple +++ /dev/null @@ -1 +0,0 @@ -exclude diff --git a/cdist/conf/type/__ccollect_source/parameter/required b/cdist/conf/type/__ccollect_source/parameter/required deleted file mode 100644 index 9239646e..00000000 --- a/cdist/conf/type/__ccollect_source/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -source -destination diff --git a/cdist/conf/type/__cdist/man.rst b/cdist/conf/type/__cdist/man.rst deleted file mode 100644 index be082781..00000000 --- a/cdist/conf/type/__cdist/man.rst +++ /dev/null @@ -1,63 +0,0 @@ -cdist-type__cdist(7) -==================== - -NAME ----- -cdist-type__cdist - Manage cdist installations - - -DESCRIPTION ------------ -This cdist type allows you to easily setup cdist -on another box, to allow the other box to configure -systems. - -This type is *NOT* required by target hosts. -It is only helpful to build FROM which you configure -other hosts. - -This type will use git to clone - - -REQUIRED PARAMETERS -------------------- - -OPTIONAL PARAMETERS -------------------- -username - Select the user to create for the cdist installation. - Defaults to "cdist". - -source - Select the source from which to clone cdist from. - Defaults to "git@code.ungleich.ch:ungleich-public/cdist.git". - - -branch - Select the branch to checkout from. - Defaults to "master". - - -EXAMPLES --------- - -.. code-block:: sh - - # Install cdist for user cdist in her home as subfolder cdist - __cdist /home/cdist/cdist - - # Use alternative source - __cdist --source "git@code.ungleich.ch:ungleich-public/cdist.git" /home/cdist/cdist - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2013 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__cdist/manifest b/cdist/conf/type/__cdist/manifest deleted file mode 100755 index a97cf288..00000000 --- a/cdist/conf/type/__cdist/manifest +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -e -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -directory="$__object_id" - -if [ -f "$__object/parameter/shell" ]; then - shell="--shell $(cat "$__object/parameter/shell")" -else - shell="" -fi - -username="$(cat "$__object/parameter/username")" - -branch="$(cat "$__object/parameter/branch")" - -source="$(cat "$__object/parameter/source")" - -# Currently hardcoded - if anyone cares, make a parameter -# out of it -home=/home/$username - -__user "$username" --home "$home" $shell - -require="__user/$username" __directory "$home" \ - --owner "$username" - -require="__user/$username __directory/$home" __git "$directory" \ - --source "$source" \ - --owner "$username" --branch "$branch" diff --git a/cdist/conf/type/__cdist/parameter/default/branch b/cdist/conf/type/__cdist/parameter/default/branch deleted file mode 100644 index 1f7391f9..00000000 --- a/cdist/conf/type/__cdist/parameter/default/branch +++ /dev/null @@ -1 +0,0 @@ -master diff --git a/cdist/conf/type/__cdist/parameter/default/source b/cdist/conf/type/__cdist/parameter/default/source deleted file mode 100644 index 1ad3a250..00000000 --- a/cdist/conf/type/__cdist/parameter/default/source +++ /dev/null @@ -1 +0,0 @@ -git@code.ungleich.ch:ungleich-public/cdist.git diff --git a/cdist/conf/type/__cdist/parameter/default/username b/cdist/conf/type/__cdist/parameter/default/username deleted file mode 100644 index a585e141..00000000 --- a/cdist/conf/type/__cdist/parameter/default/username +++ /dev/null @@ -1 +0,0 @@ -cdist diff --git a/cdist/conf/type/__cdist/parameter/optional b/cdist/conf/type/__cdist/parameter/optional deleted file mode 100644 index a5f14343..00000000 --- a/cdist/conf/type/__cdist/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -branch -source -username -shell diff --git a/cdist/conf/type/__cdistmarker/gencode-remote b/cdist/conf/type/__cdistmarker/gencode-remote deleted file mode 100755 index e71955c4..00000000 --- a/cdist/conf/type/__cdistmarker/gencode-remote +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e -# -# Copyright (C) 2011 Daniel Maher (phrawzty+cdist at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# The marker file is established in the docs, but it isn't obligatory. -destination="$(cat "$__object/parameter/destination")" - -# The basic output of date is usually good enough, but variety is the -# spice of life... -format="$(cat "$__object/parameter/format")" - -# Dump the timestamp in UTC to the marker -echo "date $format > $destination" diff --git a/cdist/conf/type/__cdistmarker/man.rst b/cdist/conf/type/__cdistmarker/man.rst deleted file mode 100644 index f3a8bafe..00000000 --- a/cdist/conf/type/__cdistmarker/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__cdistmarker(7) -========================== - -NAME ----- -cdist-type__cdistmarker - Add a timestamped cdist marker. - - -DESCRIPTION ------------ -This type is used to add a common marker file which indicates that a given -machine is being managed by cdist. The contents of this file consist of a -timestamp, which can be used to determine the most recent time at which cdist -was run against the machine in question. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -destination - The path and filename of the marker. - Default: /etc/cdist-configured - -format - The format of the timestamp. This is passed directly to system 'date'. - Default: -u - - -EXAMPLES --------- - -.. code-block:: sh - - # Creates the marker as normal. - __cdistmarker - - # Creates the marker differently. - __cdistmarker --destination /tmp/cdist_marker --format '+%s' - - -AUTHORS -------- -Daniel Maher - - -COPYING -------- -Copyright \(C) 2011 Daniel Maher. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__cdistmarker/parameter/default/destination b/cdist/conf/type/__cdistmarker/parameter/default/destination deleted file mode 100644 index bd3a112f..00000000 --- a/cdist/conf/type/__cdistmarker/parameter/default/destination +++ /dev/null @@ -1 +0,0 @@ -/etc/cdist-configured diff --git a/cdist/conf/type/__cdistmarker/parameter/default/format b/cdist/conf/type/__cdistmarker/parameter/default/format deleted file mode 100644 index 5dc9e6ec..00000000 --- a/cdist/conf/type/__cdistmarker/parameter/default/format +++ /dev/null @@ -1 +0,0 @@ --u diff --git a/cdist/conf/type/__cdistmarker/parameter/optional b/cdist/conf/type/__cdistmarker/parameter/optional deleted file mode 100644 index c8e637c0..00000000 --- a/cdist/conf/type/__cdistmarker/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -destination -format diff --git a/cdist/conf/type/__check_messages/gencode-remote b/cdist/conf/type/__check_messages/gencode-remote deleted file mode 100755 index ec36cecc..00000000 --- a/cdist/conf/type/__check_messages/gencode-remote +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -# 2019 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if grep -Eq \ - "$( cat "$__object/parameter/pattern" )" \ - "$__messages_in" -then - tee "$__messages_out" < "$__object/parameter/execute" -fi diff --git a/cdist/conf/type/__check_messages/man.rst b/cdist/conf/type/__check_messages/man.rst deleted file mode 100644 index 5c80a0ae..00000000 --- a/cdist/conf/type/__check_messages/man.rst +++ /dev/null @@ -1,52 +0,0 @@ -cdist-type__check_messages(7) -============================= - -NAME ----- -cdist-type__check_messages - Check messages for pattern and execute command on match. - - -DESCRIPTION ------------ -Check messages for pattern and execute command on match. - -This type is useful if you chain together multiple related types using -dependencies and want to restart service if at least one type changes -something. - -For more information about messages see `cdist messaging `_. - -For more information about dependencies and execution order see -`cdist manifest `_ documentation. - - -REQUIRED PARAMETERS -------------------- -pattern - Extended regular expression pattern for search (passed to ``grep -E``). - -execute - Command to execute on pattern match. - - -EXAMPLES --------- - -.. code-block:: sh - - __check_messages munin \ - --pattern '^__(file|link|line)/etc/munin/' \ - --execute 'service munin-node restart' - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2019 Ander Punnar. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__check_messages/parameter/required b/cdist/conf/type/__check_messages/parameter/required deleted file mode 100644 index 374363cb..00000000 --- a/cdist/conf/type/__check_messages/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -pattern -execute diff --git a/cdist/conf/type/__chroot_mount/gencode-local b/cdist/conf/type/__chroot_mount/gencode-local deleted file mode 100755 index b131346c..00000000 --- a/cdist/conf/type/__chroot_mount/gencode-local +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -e -# -# 2016 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -chroot="/$__object_id" - -if [ -f "$__object/parameter/manage-resolv-conf" ]; then - suffix="$(cat "$__object/parameter/manage-resolv-conf")" - resolv_conf="${chroot}/etc/resolv.conf" - original_resolv_conf="${resolv_conf}.${suffix}" - cat << DONE -$__remote_exec $__target_host << EOSSH -if [ -f "${resolv_conf}" ]; then - mv "${resolv_conf}" "${original_resolv_conf}" -fi -# copy hosts resolv.conf into chroot -cp /etc/resolv.conf "${resolv_conf}" -EOSSH -DONE -fi diff --git a/cdist/conf/type/__chroot_mount/gencode-remote b/cdist/conf/type/__chroot_mount/gencode-remote deleted file mode 100755 index 4fbb3ffc..00000000 --- a/cdist/conf/type/__chroot_mount/gencode-remote +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -chroot="/$__object_id" - -cat << DONE -# Prepare chroot -[ -d "${chroot}/proc" ] || mkdir "${chroot}/proc" -mountpoint -q "${chroot}/proc" \ - || mount -t proc -o nosuid,noexec,nodev proc "${chroot}/proc" - -[ -d "${chroot}/sys" ] || mkdir "${chroot}/sys" -mountpoint -q "${chroot}/sys" \ - || mount -t sysfs -o nosuid,noexec,nodev sys "${chroot}/sys" - -[ -d "${chroot}/dev" ] || mkdir "${chroot}/dev" -mountpoint -q "${chroot}/dev" \ - || mount -t devtmpfs -o mode=0755,nosuid udev "${chroot}/dev" - -[ -d "${chroot}/dev/pts" ] || mkdir "${chroot}/dev/pts" -mountpoint -q "${chroot}/dev/pts" \ - || mount -t devpts -o mode=0620,gid=5,nosuid,noexec devpts "${chroot}/dev/pts" - -[ -d "${chroot}/tmp" ] || mkdir -m 1777 "${chroot}/tmp" -mountpoint -q "${chroot}/tmp" \ - || mount -t tmpfs -o mode=1777,strictatime,nodev,nosuid tmpfs "${chroot}/tmp" -DONE diff --git a/cdist/conf/type/__chroot_mount/man.rst b/cdist/conf/type/__chroot_mount/man.rst deleted file mode 100644 index 41fd496b..00000000 --- a/cdist/conf/type/__chroot_mount/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__chroot_mount(7) -=========================== - -NAME ----- -cdist-type__chroot_mount - mount a chroot - - -DESCRIPTION ------------ -Mount and prepare a chroot for running commands within it. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -manage-resolv-conf - manage /etc/resolv.conf inside the chroot. - Use the value of this parameter as the suffix to save a copy - of the current /etc/resolv.conf to /etc/resolv.conf.$suffix. - This is used by the __chroot_umount type to restore the initial - file content when unmounting the chroot. - - -BOOLEAN PARAMETERS ------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __chroot_mount /path/to/chroot - - __chroot_mount /path/to/chroot \ - --manage-resolv-conf "some-known-string" - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012-2017 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__chroot_mount/parameter/optional b/cdist/conf/type/__chroot_mount/parameter/optional deleted file mode 100644 index 27928f2c..00000000 --- a/cdist/conf/type/__chroot_mount/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -manage-resolv-conf diff --git a/cdist/conf/type/__chroot_umount/gencode-local b/cdist/conf/type/__chroot_umount/gencode-local deleted file mode 100755 index b3cb69c6..00000000 --- a/cdist/conf/type/__chroot_umount/gencode-local +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -e -# -# 2016 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -chroot="/$__object_id" - -if [ -f "$__object/parameter/manage-resolv-conf" ]; then - suffix="$(cat "$__object/parameter/manage-resolv-conf")" - resolv_conf="${chroot}/etc/resolv.conf" - original_resolv_conf="${resolv_conf}.${suffix}" -cat << DONE -$__remote_exec $__target_host << EOSSH -if [ -f "${original_resolv_conf}" ]; then - # restore original /etc/resolv.conf that we moved out of the way - # in __chroot_mount/gencode-local - mv -f "${original_resolv_conf}" "${resolv_conf}" -fi -EOSSH -DONE -fi diff --git a/cdist/conf/type/__chroot_umount/gencode-remote b/cdist/conf/type/__chroot_umount/gencode-remote deleted file mode 100755 index ff669e1b..00000000 --- a/cdist/conf/type/__chroot_umount/gencode-remote +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -chroot="/$__object_id" - -cat << DONE -umount -l "${chroot}/tmp" -umount -l "${chroot}/dev/pts" -umount -l "${chroot}/dev" -umount -l "${chroot}/sys" -umount -l "${chroot}/proc" -if [ -d "${chroot}/etc/resolvconf/resolv.conf.d" ]; then - # ensure /etc/resolvconf/resolv.conf.d/tail is not linked to \ - # e.g. /etc/resolvconf/resolv.conf.d/original - rm -f "${chroot}/etc/resolvconf/resolv.conf.d/tail" - touch "${chroot}/etc/resolvconf/resolv.conf.d/tail" -fi -DONE diff --git a/cdist/conf/type/__chroot_umount/man.rst b/cdist/conf/type/__chroot_umount/man.rst deleted file mode 100644 index 2a15f362..00000000 --- a/cdist/conf/type/__chroot_umount/man.rst +++ /dev/null @@ -1,60 +0,0 @@ -cdist-type__chroot_umount(7) -============================ - -NAME ----- -cdist-type__chroot_umount - unmount a chroot mounted by __chroot_mount - - -DESCRIPTION ------------ -Undo what __chroot_mount did. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -manage-resolv-conf - manage /etc/resolv.conf inside the chroot. - Use the value of this parameter as the suffix to find the backup file - that was saved by the __chroot_mount. - This is used by the to restore the initial file content when unmounting - the chroot. - - -BOOLEAN PARAMETERS ------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __chroot_umount /path/to/chroot - - __chroot_umount /path/to/chroot \ - --manage-resolv-conf "some-known-string" - - -SEE ALSO --------- -:strong:`cdist-type__chroot_mount`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012-2017 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__chroot_umount/manifest b/cdist/conf/type/__chroot_umount/manifest deleted file mode 100755 index b3cb69c6..00000000 --- a/cdist/conf/type/__chroot_umount/manifest +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -e -# -# 2016 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -chroot="/$__object_id" - -if [ -f "$__object/parameter/manage-resolv-conf" ]; then - suffix="$(cat "$__object/parameter/manage-resolv-conf")" - resolv_conf="${chroot}/etc/resolv.conf" - original_resolv_conf="${resolv_conf}.${suffix}" -cat << DONE -$__remote_exec $__target_host << EOSSH -if [ -f "${original_resolv_conf}" ]; then - # restore original /etc/resolv.conf that we moved out of the way - # in __chroot_mount/gencode-local - mv -f "${original_resolv_conf}" "${resolv_conf}" -fi -EOSSH -DONE -fi diff --git a/cdist/conf/type/__chroot_umount/parameter/optional b/cdist/conf/type/__chroot_umount/parameter/optional deleted file mode 100644 index 27928f2c..00000000 --- a/cdist/conf/type/__chroot_umount/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -manage-resolv-conf diff --git a/cdist/conf/type/__clean_path/explorer/list b/cdist/conf/type/__clean_path/explorer/list deleted file mode 100755 index 07d38127..00000000 --- a/cdist/conf/type/__clean_path/explorer/list +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -e -# -# 2019 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -path="/$__object_id" - -[ ! -d "$path" ] && exit 0 - -pattern="$( cat "$__object/parameter/pattern" )" - -if [ -f "$__object/parameter/exclude" ] -then - exclude="$( cat "$__object/parameter/exclude" )" - - find "$path" -mindepth 1 -maxdepth 1 -regex "$pattern" \ - -and -not -regex "$exclude" -else - find "$path" -mindepth 1 -maxdepth 1 -regex "$pattern" -fi diff --git a/cdist/conf/type/__clean_path/gencode-remote b/cdist/conf/type/__clean_path/gencode-remote deleted file mode 100755 index 998a70d8..00000000 --- a/cdist/conf/type/__clean_path/gencode-remote +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -e -# -# 2019 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -[ ! -s "$__object/explorer/list" ] && exit 0 - -path="/$__object_id" - -pattern="$( cat "$__object/parameter/pattern" )" - -if [ -f "$__object/parameter/exclude" ] -then - exclude="$( cat "$__object/parameter/exclude" )" - - echo "find '$path' -mindepth 1 -maxdepth 1 -regex '$pattern'" \ - "-and -not -regex '$exclude'" \ - '-exec rm -rf {} \;' -else - echo "find '$path' -mindepth 1 -maxdepth 1 -regex '$pattern'" \ - '-exec rm -rf {} \;' -fi - -while read -r f -do - echo "removed '$f'" >> "$__messages_out" -done \ -< "$__object/explorer/list" - -if [ -f "$__object/parameter/onchange" ] -then - cat "$__object/parameter/onchange" -fi diff --git a/cdist/conf/type/__clean_path/man.rst b/cdist/conf/type/__clean_path/man.rst deleted file mode 100644 index 826f4589..00000000 --- a/cdist/conf/type/__clean_path/man.rst +++ /dev/null @@ -1,60 +0,0 @@ -cdist-type__clean_path(7) -========================= - -NAME ----- -cdist-type__clean_path - Remove files and directories which match the pattern. - - -DESCRIPTION ------------ -Remove files and directories which match the pattern. - -Provided path (as __object_id) must be a directory. - -Patterns are passed to ``find``'s ``-regex`` - see ``find(1)`` for more details. - -Look up of files and directories is non-recursive (``-maxdepth 1``). - -Parent directory is excluded (``-mindepth 1``). - -This type is not POSIX compatible (sorry, Solaris users). - - -REQUIRED PARAMETERS -------------------- -pattern - Pattern of files which are removed from path. - - -OPTIONAL PARAMETERS -------------------- -exclude - Pattern of files which are excluded from removal. - -onchange - The code to run if files or directories were removed. - - -EXAMPLES --------- - -.. code-block:: sh - - __clean_path /etc/apache2/conf-enabled \ - --pattern '.+' \ - --exclude '.+\(charset\.conf\|security\.conf\)' \ - --onchange 'service apache2 restart' - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2019 Ander Punnar. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__clean_path/parameter/optional b/cdist/conf/type/__clean_path/parameter/optional deleted file mode 100644 index 6f313474..00000000 --- a/cdist/conf/type/__clean_path/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -exclude -onchange diff --git a/cdist/conf/type/__clean_path/parameter/required b/cdist/conf/type/__clean_path/parameter/required deleted file mode 100644 index 54774947..00000000 --- a/cdist/conf/type/__clean_path/parameter/required +++ /dev/null @@ -1 +0,0 @@ -pattern diff --git a/cdist/conf/type/__config_file/gencode-remote b/cdist/conf/type/__config_file/gencode-remote deleted file mode 100755 index 5f1626be..00000000 --- a/cdist/conf/type/__config_file/gencode-remote +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="$__object_id" - -if [ -f "$__object/parameter/onchange" ]; then - if grep -q "^__file/${destination}" "$__messages_in"; then - cat "$__object/parameter/onchange" - fi -fi diff --git a/cdist/conf/type/__config_file/man.rst b/cdist/conf/type/__config_file/man.rst deleted file mode 100644 index 5e0e58bd..00000000 --- a/cdist/conf/type/__config_file/man.rst +++ /dev/null @@ -1,64 +0,0 @@ -cdist-type__config_file(7) -========================== - -NAME ----- -cdist-type__config_file - _Manages config files - - -DESCRIPTION ------------ -Deploy config files using the file type. -Run the given code if the files changes. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -group - see cdist-type__file -mode - see cdist-type__file -onchange - the code to run if the file changes -owner - see cdist-type__file -source - Path to the config file. - If source is '-' (dash), take what was written to stdin as the config file content. -state - see cdist-type__file - - -EXAMPLES --------- - -.. code-block:: sh - - __config_file /etc/consul/conf.d/watch_foo.json \ - --owner root --group consul --mode 640 \ - --source "$__type/files/watch_foo.json" \ - --state present \ - --onchange 'service consul status >/dev/null && service consul reload || true' - - -SEE ALSO --------- -:strong:`cdist-type__file`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__config_file/manifest b/cdist/conf/type/__config_file/manifest deleted file mode 100755 index be8f9f67..00000000 --- a/cdist/conf/type/__config_file/manifest +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -set -- "/${__object_id}" -cd "$__object/parameter/" -for param in *; do - case "$param" in - source) - source="$(cat "$__object/parameter/source")" - if [ "$source" = "-" ]; then - source="$__object/stdin" - fi - set -- "$@" --source "$source" - ;; - owner|group|mode|state) - set -- "$@" "--${param}" "$(cat "$__object/parameter/$param")" - ;; - *) - # ignore unknown parameters - : - ;; - esac -done - -__file "$@" diff --git a/cdist/conf/type/__config_file/parameter/default/state b/cdist/conf/type/__config_file/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__config_file/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__config_file/parameter/optional b/cdist/conf/type/__config_file/parameter/optional deleted file mode 100644 index 085c7725..00000000 --- a/cdist/conf/type/__config_file/parameter/optional +++ /dev/null @@ -1,6 +0,0 @@ -group -mode -onchange -owner -source -state diff --git a/cdist/conf/type/__consul/files/versions/0.4.1/cksum b/cdist/conf/type/__consul/files/versions/0.4.1/cksum deleted file mode 100644 index edba1a68..00000000 --- a/cdist/conf/type/__consul/files/versions/0.4.1/cksum +++ /dev/null @@ -1 +0,0 @@ -428915666 15738724 consul diff --git a/cdist/conf/type/__consul/files/versions/0.4.1/source b/cdist/conf/type/__consul/files/versions/0.4.1/source deleted file mode 100644 index b1e9908d..00000000 --- a/cdist/conf/type/__consul/files/versions/0.4.1/source +++ /dev/null @@ -1 +0,0 @@ -https://dl.bintray.com/mitchellh/consul/0.4.1_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.5.0/cksum b/cdist/conf/type/__consul/files/versions/0.5.0/cksum deleted file mode 100644 index fe9888ae..00000000 --- a/cdist/conf/type/__consul/files/versions/0.5.0/cksum +++ /dev/null @@ -1 +0,0 @@ -131560372 17734417 consul diff --git a/cdist/conf/type/__consul/files/versions/0.5.0/source b/cdist/conf/type/__consul/files/versions/0.5.0/source deleted file mode 100644 index 00a209a5..00000000 --- a/cdist/conf/type/__consul/files/versions/0.5.0/source +++ /dev/null @@ -1 +0,0 @@ -https://dl.bintray.com/mitchellh/consul/0.5.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.5.1/cksum b/cdist/conf/type/__consul/files/versions/0.5.1/cksum deleted file mode 100644 index a176ed43..00000000 --- a/cdist/conf/type/__consul/files/versions/0.5.1/cksum +++ /dev/null @@ -1 +0,0 @@ -2564582176 18232733 consul diff --git a/cdist/conf/type/__consul/files/versions/0.5.1/source b/cdist/conf/type/__consul/files/versions/0.5.1/source deleted file mode 100644 index f02a1103..00000000 --- a/cdist/conf/type/__consul/files/versions/0.5.1/source +++ /dev/null @@ -1 +0,0 @@ -https://dl.bintray.com/mitchellh/consul/0.5.1_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.5.2/cksum b/cdist/conf/type/__consul/files/versions/0.5.2/cksum deleted file mode 100644 index 1c077266..00000000 --- a/cdist/conf/type/__consul/files/versions/0.5.2/cksum +++ /dev/null @@ -1 +0,0 @@ -2207534901 18245010 consul diff --git a/cdist/conf/type/__consul/files/versions/0.5.2/source b/cdist/conf/type/__consul/files/versions/0.5.2/source deleted file mode 100644 index 43b43d55..00000000 --- a/cdist/conf/type/__consul/files/versions/0.5.2/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.5.2/consul_0.5.2_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.6.0/cksum b/cdist/conf/type/__consul/files/versions/0.6.0/cksum deleted file mode 100644 index bf41a9b8..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.0/cksum +++ /dev/null @@ -1 +0,0 @@ -688442448 19798264 consul diff --git a/cdist/conf/type/__consul/files/versions/0.6.0/source b/cdist/conf/type/__consul/files/versions/0.6.0/source deleted file mode 100644 index 691f2a87..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.0/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.6.0/consul_0.6.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.6.1/cksum b/cdist/conf/type/__consul/files/versions/0.6.1/cksum deleted file mode 100644 index aa354351..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.1/cksum +++ /dev/null @@ -1 +0,0 @@ -3100584780 20416856 consul diff --git a/cdist/conf/type/__consul/files/versions/0.6.1/source b/cdist/conf/type/__consul/files/versions/0.6.1/source deleted file mode 100644 index 3b20388f..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.1/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.6.1/consul_0.6.1_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.6.2/cksum b/cdist/conf/type/__consul/files/versions/0.6.2/cksum deleted file mode 100644 index 9c0b35c5..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.2/cksum +++ /dev/null @@ -1 +0,0 @@ -2124180907 20416920 consul diff --git a/cdist/conf/type/__consul/files/versions/0.6.2/source b/cdist/conf/type/__consul/files/versions/0.6.2/source deleted file mode 100644 index b0c6eeed..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.2/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.6.2/consul_0.6.2_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.6.3/cksum b/cdist/conf/type/__consul/files/versions/0.6.3/cksum deleted file mode 100644 index 886d01bb..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.3/cksum +++ /dev/null @@ -1 +0,0 @@ -1832669072 20417720 consul diff --git a/cdist/conf/type/__consul/files/versions/0.6.3/source b/cdist/conf/type/__consul/files/versions/0.6.3/source deleted file mode 100644 index fef668be..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.3/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.6.3/consul_0.6.3_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.6.4/cksum b/cdist/conf/type/__consul/files/versions/0.6.4/cksum deleted file mode 100644 index 1124b7aa..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.4/cksum +++ /dev/null @@ -1 +0,0 @@ -3832641574 23002736 consul diff --git a/cdist/conf/type/__consul/files/versions/0.6.4/source b/cdist/conf/type/__consul/files/versions/0.6.4/source deleted file mode 100644 index 96879b8d..00000000 --- a/cdist/conf/type/__consul/files/versions/0.6.4/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.7.0/cksum b/cdist/conf/type/__consul/files/versions/0.7.0/cksum deleted file mode 100644 index 3bffeedb..00000000 --- a/cdist/conf/type/__consul/files/versions/0.7.0/cksum +++ /dev/null @@ -1 +0,0 @@ -695240564 24003648 consul diff --git a/cdist/conf/type/__consul/files/versions/0.7.0/source b/cdist/conf/type/__consul/files/versions/0.7.0/source deleted file mode 100644 index ad610fc7..00000000 --- a/cdist/conf/type/__consul/files/versions/0.7.0/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.7.1/cksum b/cdist/conf/type/__consul/files/versions/0.7.1/cksum deleted file mode 100644 index 476bd9f6..00000000 --- a/cdist/conf/type/__consul/files/versions/0.7.1/cksum +++ /dev/null @@ -1 +0,0 @@ -3128343188 28402769 consul diff --git a/cdist/conf/type/__consul/files/versions/0.7.1/source b/cdist/conf/type/__consul/files/versions/0.7.1/source deleted file mode 100644 index 6ba2e7bf..00000000 --- a/cdist/conf/type/__consul/files/versions/0.7.1/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.7.1/consul_0.7.1_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.8.1/cksum b/cdist/conf/type/__consul/files/versions/0.8.1/cksum deleted file mode 100644 index 9125cc8f..00000000 --- a/cdist/conf/type/__consul/files/versions/0.8.1/cksum +++ /dev/null @@ -1 +0,0 @@ -283033689 36101209 consul diff --git a/cdist/conf/type/__consul/files/versions/0.8.1/source b/cdist/conf/type/__consul/files/versions/0.8.1/source deleted file mode 100644 index 92386c7c..00000000 --- a/cdist/conf/type/__consul/files/versions/0.8.1/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/0.8.1/consul_0.8.1_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/1.0.6/cksum b/cdist/conf/type/__consul/files/versions/1.0.6/cksum deleted file mode 100644 index b70b55f4..00000000 --- a/cdist/conf/type/__consul/files/versions/1.0.6/cksum +++ /dev/null @@ -1 +0,0 @@ -4120550353 48801129 consul diff --git a/cdist/conf/type/__consul/files/versions/1.0.6/source b/cdist/conf/type/__consul/files/versions/1.0.6/source deleted file mode 100644 index 769d3134..00000000 --- a/cdist/conf/type/__consul/files/versions/1.0.6/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/1.0.6/consul_1.0.6_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/1.2.3/cksum b/cdist/conf/type/__consul/files/versions/1.2.3/cksum deleted file mode 100644 index 6352409e..00000000 --- a/cdist/conf/type/__consul/files/versions/1.2.3/cksum +++ /dev/null @@ -1 +0,0 @@ -191982 110369685 diff --git a/cdist/conf/type/__consul/files/versions/1.2.3/source b/cdist/conf/type/__consul/files/versions/1.2.3/source deleted file mode 100644 index 5e67bc37..00000000 --- a/cdist/conf/type/__consul/files/versions/1.2.3/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/1.2.3/consul_1.2.3_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/1.3.0/cksum b/cdist/conf/type/__consul/files/versions/1.3.0/cksum deleted file mode 100644 index 7a885378..00000000 --- a/cdist/conf/type/__consul/files/versions/1.3.0/cksum +++ /dev/null @@ -1 +0,0 @@ -1714523667 98363467 consul diff --git a/cdist/conf/type/__consul/files/versions/1.3.0/source b/cdist/conf/type/__consul/files/versions/1.3.0/source deleted file mode 100644 index 18a1ba8e..00000000 --- a/cdist/conf/type/__consul/files/versions/1.3.0/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/1.5.0/cksum b/cdist/conf/type/__consul/files/versions/1.5.0/cksum deleted file mode 100644 index efca9caa..00000000 --- a/cdist/conf/type/__consul/files/versions/1.5.0/cksum +++ /dev/null @@ -1 +0,0 @@ -886614099 103959898 consul diff --git a/cdist/conf/type/__consul/files/versions/1.5.0/source b/cdist/conf/type/__consul/files/versions/1.5.0/source deleted file mode 100644 index cafa9248..00000000 --- a/cdist/conf/type/__consul/files/versions/1.5.0/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul/gencode-remote b/cdist/conf/type/__consul/gencode-remote deleted file mode 100755 index 2a21054f..00000000 --- a/cdist/conf/type/__consul/gencode-remote +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -e -# -# 2018 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -#set -x - -if [ ! -f "$__object/parameter/direct" ]; then - # Nothing here, staged file is used. - exit 0 -fi - -state=$(cat "$__object/parameter/state") -destination="/usr/local/bin/consul" - -if [ "$state" = "absent" ]; then - printf 'rm -f "%s"' "$destination" - exit 0 -fi - -versions_dir="$__type/files/versions" -version="$(cat "$__object/parameter/version")" -version_dir="$versions_dir/$version" - -source=$(cat "$version_dir/source") -source_file_name="${source##*/}" -cksum_should=$(cut -d' ' -f1,2 "$version_dir/cksum") - -cat << eof - tmpdir=\$(mktemp -d -p /tmp "${__type##*/}.XXXXXXXXXX") - curl -s -L "$source" > "\$tmpdir/$source_file_name" - unzip -p "\$tmpdir/$source_file_name" > "${destination}.tmp" - rm -rf "\$tmpdir" - - cksum_is=\$(cksum "${destination}.tmp" | cut -d' ' -f1,2) - if [ "\$cksum_is" = "$cksum_should" ]; then - rm -f "${destination}" - mv "${destination}.tmp" "${destination}" - chown root:root "$destination" - chmod 755 "$destination" - else - rm -f "${destination}.tmp" - echo "Failed to verify checksum for $__object_name" >&2 - exit 1 - fi -eof - -echo "/usr/local/bin/consul created" >> "$__messages_out" diff --git a/cdist/conf/type/__consul/man.rst b/cdist/conf/type/__consul/man.rst deleted file mode 100644 index 5b2db50a..00000000 --- a/cdist/conf/type/__consul/man.rst +++ /dev/null @@ -1,75 +0,0 @@ -cdist-type__consul(7) -===================== - -NAME ----- -cdist-type__consul - Install consul - - -DESCRIPTION ------------ -Downloads and installs the consul binary from https://dl.bintray.com/mitchellh/consul. -Note that the consul binary is downloaded on the server (the machine running -cdist) and then deployed to the target host using the __file type unless --direct -parameter is used. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - either 'present' or 'absent'. Defaults to 'present' - -version - which version of consul to install. See ./files/versions for a list of - supported versions. Defaults to the latest known version. - - -BOOLEAN PARAMETERS ------------------- -direct - Download and deploy consul binary directly on the target machine. - - -MESSAGES --------- -If consul binary is created using __staged_file then underlaying __file type messages are emitted. - -If consul binary is created by direct method then the following messages are emitted: - -/usr/local/bin/consul created - consul binary was created - - -EXAMPLES --------- - -.. code-block:: sh - - # just install using defaults - __consul - - # install by downloading consul binary directly on the target machine - __consul --direct - - # specific version - __consul \ - --version 0.4.1 - - -AUTHORS -------- -| Steven Armstrong -| Darko Poljak - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul/manifest b/cdist/conf/type/__consul/manifest deleted file mode 100755 index 156eb667..00000000 --- a/cdist/conf/type/__consul/manifest +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2016 Nico Schottelius (nico-cdist at schottelius.org) -# 2018 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - alpine|scientific|centos|redhat|ubuntu|debian|devuan|archlinux|gentoo) - # any linux should work - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -versions_dir="$__type/files/versions" -version="$(cat "$__object/parameter/version")" -version_dir="$versions_dir/$version" - -if [ ! -d "$version_dir" ]; then - echo "Unknown consul version '$version'. Expected one of:" >&2 - ls "$versions_dir" >&2 - exit 1 -fi - -if [ -f "$__object/parameter/direct" ]; then - __package unzip - __package curl -else - __staged_file /usr/local/bin/consul \ - --source "$(cat "$version_dir/source")" \ - --cksum "$(cat "$version_dir/cksum")" \ - --fetch-command 'curl -s -L "%s"' \ - --prepare-command 'unzip -p "%s"' \ - --state "$(cat "$__object/parameter/state")" \ - --group root \ - --owner root \ - --mode 755 -fi diff --git a/cdist/conf/type/__consul/parameter/boolean b/cdist/conf/type/__consul/parameter/boolean deleted file mode 100644 index aa81b5e0..00000000 --- a/cdist/conf/type/__consul/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -direct diff --git a/cdist/conf/type/__consul/parameter/default/state b/cdist/conf/type/__consul/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul/parameter/default/version b/cdist/conf/type/__consul/parameter/default/version deleted file mode 100644 index af0b7ddb..00000000 --- a/cdist/conf/type/__consul/parameter/default/version +++ /dev/null @@ -1 +0,0 @@ -1.0.6 diff --git a/cdist/conf/type/__consul/parameter/optional b/cdist/conf/type/__consul/parameter/optional deleted file mode 100644 index 4d595ed7..00000000 --- a/cdist/conf/type/__consul/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -version diff --git a/cdist/conf/type/__consul_agent/files/consul-prepare.upstart b/cdist/conf/type/__consul_agent/files/consul-prepare.upstart deleted file mode 100644 index 569220d1..00000000 --- a/cdist/conf/type/__consul_agent/files/consul-prepare.upstart +++ /dev/null @@ -1,9 +0,0 @@ -start on starting consul - -task - -script - mkdir -p /var/run/consul - chown consul:consul /var/run/consul - chmod 2770 /var/run/consul -end script diff --git a/cdist/conf/type/__consul_agent/files/consul.sys-openrc b/cdist/conf/type/__consul_agent/files/consul.sys-openrc deleted file mode 100644 index 1dbe9375..00000000 --- a/cdist/conf/type/__consul_agent/files/consul.sys-openrc +++ /dev/null @@ -1,38 +0,0 @@ -#!/sbin/openrc-run -# 2019 Nico Schottelius (nico-cdist at schottelius.org) - -description="consul agent" - -pidfile="${CONSUL_PIDFILE:-"/var/run/$RC_SVCNAME/pidfile"}" -command="${CONSUL_BINARY:-"/usr/local/bin/consul"}" - - -checkconfig() { - if [ ! -d /var/run/consul ] ; then - mkdir -p /var/run/consul || return 1 - chown consul:consul /var/run/$NAME || return 1 - chmod 2770 /var/run/$NAME || return 1 - fi -} - -start() { - need net - - start-stop-daemon --start --quiet --oknodo \ - --pidfile "$pidfile" --background \ - --exec $command -- agent -pid-file="$pidfile" -config-dir /etc/consul/conf.d -} -start_pre() { - checkconfig -} - -stop() { - if [ "${RC_CMD}" = "restart" ] ; then - checkconfig || return 1 - fi - - ebegin "Stopping $RC_SVCNAME" - start-stop-daemon --stop --exec "$command" \ - --pidfile "$pidfile" --quiet - eend $? -} diff --git a/cdist/conf/type/__consul_agent/files/consul.systemd b/cdist/conf/type/__consul_agent/files/consul.systemd deleted file mode 100644 index 8d5fd323..00000000 --- a/cdist/conf/type/__consul_agent/files/consul.systemd +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Consul Agent -Wants=basic.target -After=basic.target network.target - -[Service] -User=consul -Group=consul -Environment="GOMAXPROCS=2" -# Run ExecStartPre with root-permissions -PermissionsStartOnly=true -ExecStartPre=/usr/bin/mkdir -p /var/run/consul -ExecStartPre=/usr/bin/chown consul:consul /var/run/consul -ExecStartPre=/usr/bin/chmod 2770 /var/run/consul -ExecStart=/usr/local/bin/consul agent -config-dir /etc/consul/conf.d -ExecReload=/bin/kill -HUP $MAINPID -KillMode=process -Restart=on-failure -RestartSec=42s - -[Install] -WantedBy=multi-user.target diff --git a/cdist/conf/type/__consul_agent/files/consul.sysv-debian b/cdist/conf/type/__consul_agent/files/consul.sysv-debian deleted file mode 100644 index 4f43c000..00000000 --- a/cdist/conf/type/__consul_agent/files/consul.sysv-debian +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -# -# 2015-2018 Nico Schottelius (nico-cdist at schottelius.org) -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -### BEGIN INIT INFO -# Provides: consul -# Required-Start: $network $local_fs $remote_fs -# Required-Stop: $local_fs -# Should-Start: -# Should-Stop: -# Short-Description: consul -# Description: consul agent -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -### END INIT INFO - -if [ -f "/etc/default/consul" ]; then - # shellcheck disable=SC1091 - . /etc/default/consul -fi - -# shellcheck disable=SC1091 -. /lib/lsb/init-functions - -NAME=consul -CONSUL=/usr/local/bin/consul -CONFIG=/etc/$NAME/conf.d -PID_FILE=/var/run/$NAME/pidfile - -mkdir -p /var/run/$NAME -chown consul:consul /var/run/$NAME -chmod 2770 /var/run/$NAME - -export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" - -case "$1" in - start) - log_daemon_msg "Starting consul agent" "consul" || true - if start-stop-daemon --start --quiet --oknodo \ - --pidfile "$PID_FILE" --background \ - --exec $CONSUL -- agent -pid-file="$PID_FILE" -config-dir "$CONFIG"; then - log_end_msg 0 || true - else - log_end_msg 1 || true - fi - ;; - - stop) - log_daemon_msg "Stopping consul agent" "consul" || true - if start-stop-daemon --stop --quiet --oknodo --pidfile $PID_FILE; then - log_end_msg 0 || true - else - log_end_msg 1 || true - fi - ;; - - reload) - log_daemon_msg "Reloading consul agent" "consul" || true - if start-stop-daemon --stop --signal HUP --quiet --oknodo --pidfile $PID_FILE --exec $CONSUL; then - log_end_msg 0 || true - else - log_end_msg 1 || true - fi - ;; - - restart) - $0 stop && $0 start - ;; - - status) - status_of_proc -p $PID_FILE $CONSUL consul && exit 0 || exit $? - ;; - - *) - log_action_msg "Usage: /etc/init.d/consul {start|stop|reload|restart|status}" - exit 1 - ;; -esac diff --git a/cdist/conf/type/__consul_agent/files/consul.sysv-redhat b/cdist/conf/type/__consul_agent/files/consul.sysv-redhat deleted file mode 100644 index 58fc9bd9..00000000 --- a/cdist/conf/type/__consul_agent/files/consul.sysv-redhat +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash -# -# /etc/rc.d/init.d/consul -# -# Daemonize the consul agent. -# -# chkconfig: 2345 95 95 -# description: Service discovery and configuration made easy. \ -# Distributed, highly available, and datacenter-aware. -# processname: consul -# pidfile: /var/run/consul/pidfile - -# Source function library. - -# shellcheck disable=SC1091 -. /etc/init.d/functions -NAME=consul -CONSUL=/usr/local/bin/consul -CONFIG="/etc/$NAME/conf.d" -PID_FILE="/var/run/$NAME/pidfile" -LOG_FILE="/var/log/$NAME" - -# shellcheck disable=SC1090 -[ -e "/etc/sysconfig/$NAME" ] && . "/etc/sysconfig/$NAME" -export GOMAXPROCS="${GOMAXPROCS:-2}" - -mkdir -p "/var/run/$NAME" -chown consul:consul "/var/run/$NAME" -chmod 2770 "/var/run/$NAME" - - -start() { - printf "Starting %s: " "$NAME" - daemon --user=consul \ - --pidfile="$PID_FILE" \ - "$CONSUL" agent -pid-file="$PID_FILE" -config-dir "$CONFIG" >> "$LOG_FILE" & - retcode=$? - touch "/var/lock/subsys/$NAME" - return "$retcode" -} - -stop() { - printf "Shutting down %s: " "$NAME" - killproc -p "$PID_FILE" "$NAME" - retcode=$? - rm -f "/var/lock/subsys/$NAME" - return "$retcode" -} - -case "$1" in - start) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - echo "$NAME already running" - else - start - fi - ;; - stop) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - stop - else - echo "$NAME not running" - fi - ;; - info) - "$CONSUL" info - ;; - status) - status -p "$PID_FILE" "$NAME" - exit $? - ;; - restart) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - stop - fi - start - ;; - reload) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - kill -HUP "$(cat "$PID_FILE")" - else - echo "$NAME not running" - fi - ;; - condrestart) - if [ -f "/var/lock/subsys/$NAME" ]; then - if status -p "$PID_FILE" "$NAME" >/dev/null; then - stop - fi - start - fi - ;; - *) - echo "Usage: $NAME {start|stop|status|reload|restart|condrestart|info}" - exit 1 - ;; -esac -exit $? diff --git a/cdist/conf/type/__consul_agent/files/consul.upstart b/cdist/conf/type/__consul_agent/files/consul.upstart deleted file mode 100644 index ed0c7b8e..00000000 --- a/cdist/conf/type/__consul_agent/files/consul.upstart +++ /dev/null @@ -1,13 +0,0 @@ -description "Consul Agent" -start on (local-filesystems and net-device-up IFACE!=lo) -stop on runlevel [06] - -setuid consul -setgid consul - -respawn -respawn limit 10 10 -kill timeout 10 - -exec /usr/local/bin/consul agent -config-dir /etc/consul/conf.d - diff --git a/cdist/conf/type/__consul_agent/gencode-remote b/cdist/conf/type/__consul_agent/gencode-remote deleted file mode 100755 index 997aa831..00000000 --- a/cdist/conf/type/__consul_agent/gencode-remote +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -service="consul" -state="$(cat "$__object/parameter/state")" - -case "$state" in - present) - : - ;; - absent) - echo "service $service stop || true" - ;; -esac diff --git a/cdist/conf/type/__consul_agent/man.rst b/cdist/conf/type/__consul_agent/man.rst deleted file mode 100644 index 966abc60..00000000 --- a/cdist/conf/type/__consul_agent/man.rst +++ /dev/null @@ -1,181 +0,0 @@ -cdist-type__consul_agent(7) -=========================== - -NAME ----- -cdist-type__consul_agent - Manage the consul agent - - -DESCRIPTION ------------ -Configure and manage the consul agent. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -acl-datacenter - only used by servers. This designates the datacenter which is authoritative - for ACL information. - -acl-default-policy - either "allow" or "deny"; defaults to "allow". The default policy controls the - behavior of a token when there is no matching rule. - -acl-down-policy - either "allow", "deny" or "extend-cache"; "extend-cache" is the default. - -acl-master-token - only used for servers in the acl_datacenter. This token will be created with - management-level permissions if it does not exist. It allows operators to - bootstrap the ACL system with a token ID that is well-known. - -acl-token - when provided, the agent will use this token when making requests to the - Consul servers. - -acl-ttl - used to control Time-To-Live caching of ACLs. - -bind-addr - sets the bind address for cluster communication - -bootstrap-expect - sets server to expect bootstrap mode - -ca-file-source - path to a PEM encoded certificate authority file which will be uploaded and - configure using the ca_file config option. - -cert-file-source - path to a PEM encoded certificate file which will be uploaded and - configure using the cert_file config option. - -client-addr - sets the address to bind for client access - -datacenter - datacenter of the agent - -encrypt - provides the gossip encryption key - -group - the primary group for the agent - -json-config - path to a partial json config file without leading { and trailing }. - If json-config is '-' (dash), take what was written to stdin as the file content. - -key-file-source - path to a PEM encoded private key file which will be uploaded and - configure using the key_file config option. - -node-name - name of this node. Must be unique in the cluster - -retry-join - address to attempt joining every retry_interval until at least one join works. - Can be specified multiple times. - -user - the user to run the agent as - -state - if the agent is 'present' or 'absent'. Defaults to 'present'. - Currently state=absent is not working due to some dependency issues. - - -BOOLEAN PARAMETERS ------------------- -disable-remote-exec - disables support for remote execution. When set to true, the agent will ignore any incoming remote exec requests. - -disable-update-check - disables automatic checking for security bulletins and new version releases - -leave-on-terminate - gracefully leave cluster on SIGTERM - -rejoin-after-leave - rejoin the cluster using the previous state after leaving - -server - used to control if an agent is in server or client mode - -enable-syslog - enables logging to syslog - -verify-incoming - enforce the use of TLS and verify a client's authenticity on incoming connections - -verify-outgoing - enforce the use of TLS and verify the peers authenticity on outgoing connections - - -EXAMPLES --------- - -.. code-block:: sh - - # configure as server, bootstrap and rejoin - hostname="$(cat "$__global/explorer/hostname")" - __consul_agent \ - --datacenter dc1 \ - --node-name "${hostname%%.*}" \ - --disable-update-check \ - --server \ - --rejoin-after-leave \ - --bootstrap-expect 3 \ - --retry-join consul-01 \ - --retry-join consul-02 \ - --retry-join consul-03 - - # configure as server, bootstrap and rejoin with ssl support - hostname="$(cat "$__global/explorer/hostname")" - __consul_agent \ - --datacenter dc1 \ - --node-name "${hostname%%.*}" \ - --disable-update-check \ - --server \ - --rejoin-after-leave \ - --bootstrap-expect 3 \ - --retry-join consul-01 \ - --retry-join consul-02 \ - --retry-join consul-03 \ - --ca-file-source /path/to/ca.pem \ - --cert-file-source /path/to/cert.pem \ - --key-file-source /path/to/key.pem \ - --verify-incoming \ - --verify-outgoing - - # configure as client and try joining existing cluster - __consul_agent \ - --datacenter dc1 \ - --node-name "${hostname%%.*}" \ - --disable-update-check \ - --retry-join consul-01 \ - --retry-join consul-02 \ - --retry-join consul-03 - - -SEE ALSO --------- -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_agent/manifest b/cdist/conf/type/__consul_agent/manifest deleted file mode 100755 index ee682d72..00000000 --- a/cdist/conf/type/__consul_agent/manifest +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2015-2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - alpine|scientific|centos|debian|devuan|redhat|ubuntu) - # whitelist safeguard - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -state="$(cat "$__object/parameter/state")" -user="$(cat "$__object/parameter/user")" -group="$(cat "$__object/parameter/group")" -data_dir="/var/lib/consul" -conf_dir="/etc/consul/conf.d" -conf_file="config.json" - -# FIXME: there has got to be a better way to handle the dependencies in this case -case "$state" in - present) - __group "$group" --system --state "$state" - require="__group/$group" \ - __user "$user" --system --gid "$group" \ - --home "$data_dir" --state "$state" - export require="__user/consul" - ;; - absent) - echo "Sorry, state=absent currently not supported :-(" >&2 - exit 1 - require="$__object_name" \ - __user "$user" --system --gid "$group" --state "$state" - require="__user/$user" \ - __group "$group" --system --state "$state" - ;; -esac - -__directory /etc/consul \ - --owner root --group "$group" --mode 750 --state "$state" -require="__directory/etc/consul" \ - __directory "$conf_dir" \ - --owner root --group "$group" --mode 750 --state "$state" - -if [ -f "$__object/parameter/ca-file-source" ] || [ -f "$__object/parameter/cert-file-source" ] || [ -f "$__object/parameter/key-file-source" ]; then - # create directory for ssl certs - require="__directory/etc/consul" \ - __directory /etc/consul/ssl \ - --owner root --group "$group" --mode 750 --state "$state" -fi - -__directory "$data_dir" \ - --owner "$user" --group "$group" --mode 770 --state "$state" - - -# Generate json config file -( -echo "{" - -# parameters we define ourself -printf ' "data_dir": "%s"\n' "$data_dir" - -cd "$__object/parameter/" -for param in *; do - case "$param" in - state|user|group|json-config) continue ;; - ca-file-source|cert-file-source|key-file-source) - source="$(cat "$__object/parameter/$param")" - destination="/etc/consul/ssl/${source##*/}" - require="__directory/etc/consul/ssl" \ - __file "$destination" \ - --owner root --group consul --mode 640 \ - --source "$source" \ - --state "$state" - key="$(echo "${param%-*}" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$destination" - ;; - disable-remote-exec|disable-update-check|leave-on-terminate|rejoin-after-leave|server|enable-syslog|verify-incoming|verify-outgoing) - # handle boolean parameters - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": true\n' "$key" - ;; - retry-join) - # join multiple parameters into json array - retry_join="$(awk '{printf "\""$1"\","}' "$__object/parameter/retry-join")" - # remove trailing , - printf ' ,"retry_join": [%s]\n' "${retry_join%*,}" - ;; - retry-join-wan) - # join multiple parameters into json array over wan - retry_join_wan="$(awk '{printf "\""$1"\","}' "$__object/parameter/retry-join-wan")" - # remove trailing , - printf ' ,"retry_join_wan": [%s]\n' "${retry_join_wan%*,}" - ;; - bootstrap-expect) - # integer key=value parameters - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": %s\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - *) - # string key=value parameters - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -if [ -f "$__object/parameter/json-config" ]; then - json_config="$(cat "$__object/parameter/json-config")" - if [ "$json_config" = "-" ]; then - json_config="$__object/stdin" - fi - # remove leading and trailing whitespace and commas from first and last line - # indent each line with 3 spaces for consistency - json=$(sed -e 's/^[ \t]*/ /' -e '1s/^[ \t,]*//' -e '$s/[ \t,]*$//' "$json_config") - printf ' ,%s\n' "$json" -fi -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group "$group" --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - - -init_sysvinit() -{ - __file /etc/init.d/consul \ - --owner root --group root --mode 0755 \ - --state "$state" \ - --source "$__type/files/consul.sysv-$1" - require="__file/etc/init.d/consul" __start_on_boot consul -} - -init_systemd() -{ - __file /lib/systemd/system/consul.service \ - --owner root --group root --mode 0644 \ - --state "$state" \ - --source "$__type/files/consul.systemd" - require="__file/lib/systemd/system/consul.service" __start_on_boot consul -} - -init_upstart() -{ - __file /etc/init/consul-prepare.conf \ - --owner root --group root --mode 0644 \ - --state "$state" \ - --source "$__type/files/consul-prepare.upstart" - require="__file/etc/init/consul-prepare.conf" \ - __file /etc/init/consul.conf \ - --owner root --group root --mode 0644 \ - --state "$state" \ - --source "$__type/files/consul.upstart" - require="__file/etc/init/consul.conf" __start_on_boot consul -} - -# Install init script to start on boot -case "$os" in - devuan) - init_sysvinit debian - ;; - centos|redhat) - os_version="$(sed 's/[^0-9.]//g' "$__global/explorer/os_version")" - major_version="${os_version%%.*}" - case "$major_version" in - [456]) - init_sysvinit redhat - ;; - 7) - init_systemd - ;; - *) - echo "Unsupported CentOS/Redhat version: $os_version" >&2 - exit 1 - ;; - esac - ;; - - debian) - os_version=$(cat "$__global/explorer/os_version") - major_version="${os_version%%.*}" - - case "$major_version" in - [567]) - init_sysvinit debian - ;; - [89]) - init_systemd - ;; - *) - echo "Unsupported Debian version $os_version" >&2 - exit 1 - ;; - esac - ;; - - ubuntu) - init_upstart - ;; -esac diff --git a/cdist/conf/type/__consul_agent/parameter/boolean b/cdist/conf/type/__consul_agent/parameter/boolean deleted file mode 100644 index 91f7f17e..00000000 --- a/cdist/conf/type/__consul_agent/parameter/boolean +++ /dev/null @@ -1,8 +0,0 @@ -disable-remote-exec -disable-update-check -leave-on-terminate -rejoin-after-leave -server -enable-syslog -verify-incoming -verify-outgoing diff --git a/cdist/conf/type/__consul_agent/parameter/default/group b/cdist/conf/type/__consul_agent/parameter/default/group deleted file mode 100644 index 7d22c92b..00000000 --- a/cdist/conf/type/__consul_agent/parameter/default/group +++ /dev/null @@ -1 +0,0 @@ -consul diff --git a/cdist/conf/type/__consul_agent/parameter/default/state b/cdist/conf/type/__consul_agent/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_agent/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_agent/parameter/default/user b/cdist/conf/type/__consul_agent/parameter/default/user deleted file mode 100644 index 7d22c92b..00000000 --- a/cdist/conf/type/__consul_agent/parameter/default/user +++ /dev/null @@ -1 +0,0 @@ -consul diff --git a/cdist/conf/type/__consul_agent/parameter/optional b/cdist/conf/type/__consul_agent/parameter/optional deleted file mode 100644 index 37aad8c1..00000000 --- a/cdist/conf/type/__consul_agent/parameter/optional +++ /dev/null @@ -1,20 +0,0 @@ -acl-datacenter -acl-default-policy -acl-down-policy -acl-master-token -acl-token -acl-ttl -bind-addr -bootstrap-expect -ca-file-source -cert-file-source -client-addr -datacenter -encrypt -group -json-config -key-file-source -node-name -user -state -advertise-wan diff --git a/cdist/conf/type/__consul_agent/parameter/optional_multiple b/cdist/conf/type/__consul_agent/parameter/optional_multiple deleted file mode 100644 index 740e4d7f..00000000 --- a/cdist/conf/type/__consul_agent/parameter/optional_multiple +++ /dev/null @@ -1,2 +0,0 @@ -retry-join -retry-join-wan diff --git a/cdist/conf/type/__consul_check/man.rst b/cdist/conf/type/__consul_check/man.rst deleted file mode 100644 index 9694c7af..00000000 --- a/cdist/conf/type/__consul_check/man.rst +++ /dev/null @@ -1,102 +0,0 @@ -cdist-type__consul_check(7) -============================= - -NAME ----- -cdist-type__consul_check - Manages consul checks - - -DESCRIPTION ------------ -Generate and deploy check definitions for a consul agent. -See http://www.consul.io/docs/agent/checks.html for parameter documentation. - -Use either script together with interval, or use ttl. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -docker-container-id - the id of the docker container to run - -http - the url to check - -id - The id of this check. - -interval - the interval in which the check should run - -name - The name of this check. Defaults to __object_id - -notes - human readable description - -script - the shell command to run - -service-id - the id of the service this check is bound to - -shell - the shell to run inside the docker container - -state - if this check is 'present' or 'absent'. Defaults to 'present'. - -status - specify the initial state of this health check - -tcp - the host and port to check - -timeout - after how long to timeout checks which take to long - -token - ACL token to use for interacting with the catalog - -ttl - how long a TTL check is considered healthy without being updated through the - HTTP interface - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_check redis \ - --script /usr/local/bin/check_redis.py \ - --interval 10s - - __consul_check some-object-id \ - --id web-app \ - --name "Web App Status" \ - --notes "Web app does a curl internally every 10 seconds" \ - --ttl 30s - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015-2016 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_check/manifest b/cdist/conf/type/__consul_check/manifest deleted file mode 100755 index c9f7add9..00000000 --- a/cdist/conf/type/__consul_check/manifest +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -e -# -# 2015-2016 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$(cat "$__object/parameter/name" 2>/dev/null || echo "$__object_id")" -conf_dir="/etc/consul/conf.d" -conf_file="check_${name}.json" -state="$(cat "$__object/parameter/state")" - -# Sanity checks -if [ -f "$__object/parameter/ttl" ]; then - for conflicts_ttl in 'docker-container-id' 'http' 'script' 'tcp' 'timeout'; do - if [ -f "$__object/parameter/${conflicts_ttl}" ]; then - echo "Can not use --ttl together with --${conflicts_ttl}." >&2 - exit 1 - fi - done -fi -if [ ! -f "$__object/parameter/interval" ]; then - for requires_interval in 'docker-id' 'http' 'script' 'tcp'; do - if [ -f "$__object/parameter/${requires_interval}" ]; then - echo "When using --${requires_interval} you must also define --interval." >&2 - exit 1 - fi - done -fi -if [ -f "$__object/parameter/docker-container-id" ] && [ ! -f "$__object/parameter/script" ]; then - echo "When using --docker-container-id you must also define --script." >&2 - exit 1 -fi - -# Generate json config file -( -echo "{" -printf ' "check": {\n' -printf ' "name": "%s"\n' "$name" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state|name) continue ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end check -echo " }" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_check/parameter/default/state b/cdist/conf/type/__consul_check/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_check/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_check/parameter/optional b/cdist/conf/type/__consul_check/parameter/optional deleted file mode 100644 index 0e392956..00000000 --- a/cdist/conf/type/__consul_check/parameter/optional +++ /dev/null @@ -1,15 +0,0 @@ -docker-container-id -http -id -interval -name -notes -script -service-id -shell -state -status -tcp -timeout -token -ttl diff --git a/cdist/conf/type/__consul_reload/gencode-remote b/cdist/conf/type/__consul_reload/gencode-remote deleted file mode 100755 index 839fd0c3..00000000 --- a/cdist/conf/type/__consul_reload/gencode-remote +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -service="consul" -if grep -q "^__file/etc/consul/conf.d/" "$__messages_in"; then - echo "service $service status && service $service reload || true" -fi diff --git a/cdist/conf/type/__consul_reload/man.rst b/cdist/conf/type/__consul_reload/man.rst deleted file mode 100644 index f48a041a..00000000 --- a/cdist/conf/type/__consul_reload/man.rst +++ /dev/null @@ -1,42 +0,0 @@ -cdist-type__consul_reload(7) -============================ - -NAME ----- -cdist-type__consul_reload - Reload consul - - -DESCRIPTION ------------ -Reload consul after configuration changes. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_reload - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_service/man.rst b/cdist/conf/type/__consul_service/man.rst deleted file mode 100644 index 510be3d5..00000000 --- a/cdist/conf/type/__consul_service/man.rst +++ /dev/null @@ -1,85 +0,0 @@ -cdist-type__consul_service(7) -============================= - -NAME ----- -cdist-type__consul_service - Manages consul services - - -DESCRIPTION ------------ -Generate and deploy service definitions for a consul agent. -See http://www.consul.io/docs/agent/services.html for parameter documentation. - -Use either script together with interval, or use ttl. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -check-interval - the interval in which the script given with --check-script should be run - -check-http - the URL to check for HTTP 200-ish status every --check-interval - -check-script - the shell command to run every --check-interval - -check-ttl - how long a service is considered healthy without being updated through the - HTTP interfave - -id - Defaults to --name - -name - The name of this service. Defaults to __object_id - -port - the port at which this service can be reached - -state - if this service is 'present' or 'absent'. Defaults to 'present'. - -tag - a tag to add to this service. Can be specified multiple times. - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_service redis \ - --tag master \ - --tag production \ - --port 8000 \ - --check-script /usr/local/bin/check_redis.py \ - --check-interval 10s - - __consul_service webapp \ - --port 80 \ - --check-ttl 10s - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_service/manifest b/cdist/conf/type/__consul_service/manifest deleted file mode 100755 index 60397db7..00000000 --- a/cdist/conf/type/__consul_service/manifest +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$(cat "$__object/parameter/name" 2>/dev/null || echo "$__object_id")" -conf_dir="/etc/consul/conf.d" -conf_file="service_${name}.json" -state="$(cat "$__object/parameter/state")" - -# Sanity checks -if [ -f "$__object/parameter/check-script" ] && [ -f "$__object/parameter/check-ttl" ]; then - echo "Use either --check-script together with --check-interval OR --check-ttl, but not both" >&2 - exit 1 -fi -if [ -f "$__object/parameter/check-script" ] && [ ! -f "$__object/parameter/check-interval" ]; then - echo "When using --check-script you must also define --check-interval" >&2 - exit 1 -fi -if [ -f "$__object/parameter/check-http" ] && [ ! -f "$__object/parameter/check-interval" ]; then - echo "When using --check-http you must also define --check-interval" >&2 - exit 1 -fi - -# Generate json config file -( -echo "{" -printf ' "service": {\n' -printf ' "name": "%s"\n' "$name" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state|name|check-interval) continue ;; - check-script) - printf ' ,"check": {\n' - printf ' "script": "%s"\n' "$(cat "$__object/parameter/check-script")" - printf ' ,"interval": "%s"\n' "$(cat "$__object/parameter/check-interval")" - printf ' }\n' - ;; - check-ttl) - printf ' ,"check": {\n' - printf ' "ttl": "%s"\n' "$(cat "$__object/parameter/check-ttl")" - printf ' }\n' - ;; - check-http) - printf ' ,"check": {\n' - printf ' "http": "%s"\n' "$(cat "$__object/parameter/check-http")" - printf ' ,"interval": "%s"\n' "$(cat "$__object/parameter/check-interval")" - printf ' }\n' - ;; - tag) - # create json array from newline delimited file - tags="$(awk '{printf "\""$1"\","}' "$__object/parameter/tag")" - # remove trailing , - printf ' ,"tags": [%s]\n' "${tags%*,}" - ;; - port) - # integer key=value parameters - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": %s\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - *) - # string key=value parameters - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end service -echo " }" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_service/parameter/default/state b/cdist/conf/type/__consul_service/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_service/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_service/parameter/optional b/cdist/conf/type/__consul_service/parameter/optional deleted file mode 100644 index 2e3e8b63..00000000 --- a/cdist/conf/type/__consul_service/parameter/optional +++ /dev/null @@ -1,8 +0,0 @@ -check-http -check-interval -check-script -check-ttl -id -name -port -state diff --git a/cdist/conf/type/__consul_service/parameter/optional_multiple b/cdist/conf/type/__consul_service/parameter/optional_multiple deleted file mode 100644 index 42c7c82c..00000000 --- a/cdist/conf/type/__consul_service/parameter/optional_multiple +++ /dev/null @@ -1 +0,0 @@ -tag diff --git a/cdist/conf/type/__consul_template/files/consul-template.systemd b/cdist/conf/type/__consul_template/files/consul-template.systemd deleted file mode 100644 index c67eaab5..00000000 --- a/cdist/conf/type/__consul_template/files/consul-template.systemd +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Consul-Template Daemon -Wants=basic.target -After=basic.target network.target - -[Service] -User=root -Group=root -Environment="CONSUL_TEMPLATE_LOG=info" -Environment="GOMAXPROCS=2" -ExecStart=/usr/local/bin/consul-template -config /etc/consul-template/conf.d -ExecReload=/bin/kill -HUP $MAINPID -KillMode=process -Restart=on-failure -RestartSec=10s -LimitNOFILE=4096 - -[Install] -WantedBy=multi-user.target diff --git a/cdist/conf/type/__consul_template/files/consul-template.sysv b/cdist/conf/type/__consul_template/files/consul-template.sysv deleted file mode 100644 index b263915a..00000000 --- a/cdist/conf/type/__consul_template/files/consul-template.sysv +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash -# -# /etc/rc.d/init.d/consul-template -# -# Daemonize the consul-template agent. -# -# chkconfig: 2345 95 95 -# description: Generic template rendering and notifications with Consul -# processname: consul-template -# pidfile: /var/run/consul-template/pidfile - -# Source function library. - -# shellcheck disable=SC1091 -. /etc/init.d/functions -NAME=consul-template -CONSUL_TEMPLATE=/usr/local/bin/consul-template -CONFIG="/etc/$NAME/conf.d" -PID_FILE="/var/run/$NAME/pidfile" -LOG_FILE="/var/log/$NAME" - -# shellcheck disable=SC1090 -[ -e "/etc/sysconfig/$NAME" ] && . "/etc/sysconfig/$NAME" -export CONSUL_TEMPLATE_LOG="${CONSUL_TEMPLATE_LOG:-info}" -export GOMAXPROCS="${GOMAXPROCS:-2}" - -mkdir -p "/var/run/$NAME" - -start() { - printf "Starting %s: " "$NAME" - daemon --pidfile="$PID_FILE" \ - "$CONSUL_TEMPLATE" -config "$CONFIG" >> "$LOG_FILE" 2>&1 & - echo "$!" > "$PID_FILE" - retcode=$? - touch "/var/lock/subsys/$NAME" - return "$retcode" -} - -stop() { - printf "Shutting down %s: " "$NAME" - killproc -p "$PID_FILE" "$CONSUL_TEMPLATE" - retcode=$? - rm -f "/var/lock/subsys/$NAME" - return "$retcode" -} - -case "$1" in - start) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - echo "$NAME already running" - else - start - fi - ;; - stop) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - stop - else - echo "$NAME not running" - fi - ;; - status) - status -p "$PID_FILE" "$NAME" - exit $? - ;; - restart) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - stop - fi - start - ;; - reload) - if status -p "$PID_FILE" "$NAME" >/dev/null; then - kill -HUP "$(cat "$PID_FILE")" - else - echo "$NAME not running" - fi - ;; - condrestart) - if [ -f "/var/lock/subsys/$NAME" ]; then - if status -p "$PID_FILE" "$NAME" >/dev/null; then - stop - fi - start - fi - ;; - *) - echo "Usage: $NAME {start|stop|status|reload|restart}" - exit 1 - ;; -esac -exit $? diff --git a/cdist/conf/type/__consul_template/files/consul-template.upstart b/cdist/conf/type/__consul_template/files/consul-template.upstart deleted file mode 100644 index b81a2818..00000000 --- a/cdist/conf/type/__consul_template/files/consul-template.upstart +++ /dev/null @@ -1,12 +0,0 @@ -description "Consul-Template Daemon" -start on (local-filesystems and net-device-up IFACE!=lo) -stop on runlevel [06] - -env CONSUL_TEMPLATE_LOG=info -env GOMAXPROCS=${GOMAXPROCS} - -exec /usr/local/bin/consul-template -config /etc/consul-template/conf.d >> /var/log/consul-template 2>&1 - -respawn -respawn limit 10 10 -kill timeout 10 diff --git a/cdist/conf/type/__consul_template/files/versions/0.10.0/cksum b/cdist/conf/type/__consul_template/files/versions/0.10.0/cksum deleted file mode 100644 index bbf394db..00000000 --- a/cdist/conf/type/__consul_template/files/versions/0.10.0/cksum +++ /dev/null @@ -1 +0,0 @@ -3401777891 9273880 consul-template diff --git a/cdist/conf/type/__consul_template/files/versions/0.10.0/source b/cdist/conf/type/__consul_template/files/versions/0.10.0/source deleted file mode 100644 index 031b1155..00000000 --- a/cdist/conf/type/__consul_template/files/versions/0.10.0/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul-template/0.10.0/consul-template_0.10.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul_template/files/versions/0.15.0/cksum b/cdist/conf/type/__consul_template/files/versions/0.15.0/cksum deleted file mode 100644 index 426338bd..00000000 --- a/cdist/conf/type/__consul_template/files/versions/0.15.0/cksum +++ /dev/null @@ -1 +0,0 @@ -2643547924 12487232 consul-template diff --git a/cdist/conf/type/__consul_template/files/versions/0.15.0/source b/cdist/conf/type/__consul_template/files/versions/0.15.0/source deleted file mode 100644 index fdf1fccf..00000000 --- a/cdist/conf/type/__consul_template/files/versions/0.15.0/source +++ /dev/null @@ -1 +0,0 @@ -https://releases.hashicorp.com/consul-template/0.15.0/consul-template_0.15.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul_template/man.rst b/cdist/conf/type/__consul_template/man.rst deleted file mode 100644 index f13c699d..00000000 --- a/cdist/conf/type/__consul_template/man.rst +++ /dev/null @@ -1,141 +0,0 @@ -cdist-type__consul_template(7) -============================== - -NAME ----- -cdist-type__consul_template - Manage the consul-template service - - -DESCRIPTION ------------ -Downloads and installs the consul-template binary from -https://github.com/hashicorp/consul-template/releases/download/. -Generates a global config file and creates directory for per template config files. -Note that the consul-template binary is downloaded on the server (the machine running -cdist) and then deployed to the target host using the __file type. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -auth-username - specify a username for basic authentication. - -auth-password - specify a password for basic authentication. - -batch-size - the size of the batch when polling multiple dependencies. - -consul - the location of the Consul instance to query (may be an IP address or FQDN) with port. - Defaults to 'localhost:8500'. - -log-level - The log level for output. This applies to the stdout/stderr logging as well - as syslog logging (if enabled). Valid values are "debug", "info", "warn", - and "err". The default value is "warn". - -max-stale - the maximum staleness of a query. If specified, Consul will distribute work among all - servers instead of just the leader. - -retry - the amount of time to wait if Consul returns an error when communicating - with the API. - -state - either 'present' or 'absent'. Defaults to 'present' - -ssl-cert - Path to an SSL client certificate to use to authenticate to the consul server. - Useful if the consul server "verify_incoming" option is set. - -ssl-ca-cert - Path to a CA certificate file, containing one or more CA certificates to - use to validate the certificate sent by the consul server to us. This is a - handy alternative to setting --ssl-no-verify if you are using your own CA. - -syslog-facility - The facility to use when sending to syslog. This requires the use of --syslog. - The default value is LOCAL0. - -token - the Consul API token. - -vault-address - the location of the Vault instance to query (may be an IP address or FQDN) with port. - -vault-token - the Vault API token. - -vault-ssl-cert - Path to an SSL client certificate to use to authenticate to the vault server. - -vault-ssl-ca-cert - Path to a CA certificate file, containing one or more CA certificates to - use to validate the certificate sent by the vault server to us. - -version - which version of consul-template to install. See ./files/versions for a list of - supported versions. Defaults to the latest known version. - -wait - the minimum(:maximum) to wait before rendering a new template to disk and - triggering a command, separated by a colon (:). If the optional maximum - value is omitted, it is assumed to be 4x the required minimum value. - - -BOOLEAN PARAMETERS ------------------- -ssl - use HTTPS while talking to Consul. Requires the Consul server to be configured to serve secure connections. - -ssl-no-verify - ignore certificate warnings. Only used if ssl is enabled. - -syslog - Send log output to syslog (in addition to stdout and stderr). - -vault-ssl - use HTTPS while talking to Vault. Requires the Vault server to be configured to serve secure connections. - -vault-ssl-no-verify - ignore certificate warnings. Only used if vault is enabled. - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_template \ - --consul consul.service.consul:8500 \ - --retry 30s - - # specific version - __consul_template \ - --version 0.6.5 \ - --retry 30s - - -SEE ALSO --------- -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_template/manifest b/cdist/conf/type/__consul_template/manifest deleted file mode 100755 index b02fc332..00000000 --- a/cdist/conf/type/__consul_template/manifest +++ /dev/null @@ -1,191 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - scientific|centos|redhat) - # whitelist safeguard - service_onchange='service consul-template status >/dev/null && service consul-template reload || true' \ - ;; - archlinux) - service_onchange="systemctl status consul-template >/dev/null && systemctl reload consul-template || true" - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -versions_dir="$__type/files/versions" -version="$(cat "$__object/parameter/version")" -version_dir="$versions_dir/$version" - -if [ ! -d "$version_dir" ]; then - echo "Unknown consul-template version '$version'. Expected one of:" >&2 - ls "$versions_dir" >&2 - exit 1 -fi - -state="$(cat "$__object/parameter/state")" - -__staged_file /usr/local/bin/consul-template \ - --source "$(cat "$version_dir/source")" \ - --cksum "$(cat "$version_dir/cksum")" \ - --fetch-command 'curl -s -L "%s"' \ - --prepare-command 'unzip -p "%s"' \ - --state "$state" \ - --group root \ - --owner root \ - --mode 755 - - -conf_dir="/etc/consul-template/conf.d" -conf_file="config.hcl" -template_dir="/etc/consul-template/template" - -__directory /etc/consul-template \ - --owner root --group root --mode 750 -require="__directory/etc/consul-template" \ - __directory "$conf_dir" \ - --owner root --group root --mode 750 -require="__directory/etc/consul-template" \ - __directory "$template_dir" \ - --owner root --group root --mode 750 - - -# Generate hcl config file -( -cd "$__object/parameter/" -for param in *; do - case "$param" in - auth-password|state|ssl-*|syslog-*|version|vault-token|vault-ssl*) continue ;; - auth-username) - printf 'auth {\n' - printf ' enabled = true\n' - printf ' username = "%s"\n' "$(cat "$__object/parameter/auth-username")" - if [ -f "$__object/parameter/auth-password" ]; then - printf ' password = %s\n' "$(cat "$__object/parameter/auth-password")" - fi - printf '}\n' - ;; - ssl) - printf 'ssl {\n' - printf ' enabled = true\n' - if [ -f "$__object/parameter/ssl-no-verify" ]; then - printf ' verify = false\n' - fi - if [ -f "$__object/parameter/ssl-cert" ]; then - printf ' cert = "%s"\n' "$(cat "$__object/parameter/ssl-cert")" - fi - if [ -f "$__object/parameter/ssl-ca-cert" ]; then - printf ' ca_cert = "%s"\n' "$(cat "$__object/parameter/ssl-ca-cert")" - fi - printf '}\n' - ;; - syslog) - printf 'syslog {\n' - printf ' enabled = true\n' - if [ -f "$__object/parameter/syslog-facility" ]; then - printf ' facility = "%s"\n' "$(cat "$__object/parameter/syslog-facility")" - fi - printf '}\n' - ;; - vault-address) - printf 'vault {\n' - printf ' address = "%s"\n' "$(cat "$__object/parameter/vault-address")" - if [ -f "$__object/parameter/vault-token" ]; then - printf ' token = "%s"\n' "$(cat "$__object/parameter/vault-token")" - fi - if [ -f "$__object/parameter/vault-ssl" ]; then - printf ' ssl {\n' - printf ' enabled = true\n' - if [ -f "$__object/parameter/vault-ssl-no-verify" ]; then - printf ' verify = false\n' - fi - if [ -f "$__object/parameter/vault-ssl-cert" ]; then - printf ' cert = "%s"\n' "$(cat "$__object/parameter/vault-ssl-cert")" - fi - if [ -f "$__object/parameter/vault-ssl-ca-cert" ]; then - printf ' ca_cert = "%s"\n' "$(cat "$__object/parameter/vault-ssl-ca-cert")" - fi - printf ' }\n' - fi - printf '}\n' - ;; - *) - # string key=value parameters - key="$(echo "$param" | tr '-' '_')" - printf '%s = "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group root --mode 640 \ - --state "$state" \ - --onchange "$service_onchange" \ - --source - - - -# Install init script to start on boot -service="consul-template" -case "$os" in - centos|redhat) - os_version="$(sed 's/[^0-9.]//g' "$__global/explorer/os_version")" - major_version="${os_version%%.*}" - case "$major_version" in - 7) - __file "/lib/systemd/system/${service}.service" \ - --owner root --group root --mode 0555 \ - --state "$state" \ - --source "$__type/files/${service}.systemd" - export require="__file/lib/systemd/system/${service}.service" - ;; - *) - __file "/etc/init.d/${service}" \ - --owner root --group root --mode 0555 \ - --state "$state" \ - --source "$__type/files/${service}.sysv" - export require="__file/etc/init.d/${service}" - ;; - esac - __start_on_boot "$service" --state "$state" - ;; - ubuntu) - __file "/etc/init/${service}.conf" \ - --owner root --group root --mode 0644 \ - --state "$state" \ - --source "$__type/files/${service}.upstart" - export require="__file/etc/init/${service}.conf" - __start_on_boot "$service" --state "$state" - ;; - archlinux) - __file "/lib/systemd/system/${service}.service" \ - --owner root --group root --mode 0555 \ - --state "$state" \ - --source "$__type/files/${service}.systemd" - export require="__file/lib/systemd/system/${service}.service" - __start_on_boot "$service" --state "$state" - ;; -esac diff --git a/cdist/conf/type/__consul_template/notes b/cdist/conf/type/__consul_template/notes deleted file mode 100644 index fc7cca11..00000000 --- a/cdist/conf/type/__consul_template/notes +++ /dev/null @@ -1,93 +0,0 @@ -# < 0.7.0 -ssl = true -ssl_no_verify = true - -# >= 0.7.0 -ssl { - enabled = true - verify = false -} - -# >= 0.9.0 -ssl-cert -ssl-ca-cert - - - --------------------------------------------------------------------------------- -### from docs - - -ssl { - enabled = true - verify = false - cert = "/path/to/client/cert.pem" - ca_cert = "/path/to/ca/cert.pem" -} - - -ssl - Use HTTPS while talking to Consul. Requires the Consul server to be configured to serve secure connections. The default value is false. - -ssl-verify - Verify certificates when connecting via SSL. This requires the use of -ssl. The default value is true. - -ssl-cert - Path to an SSL client certificate to use to authenticate to the consul server. Useful if the consul server "verify_incoming" option is set. - -ssl-ca-cert - Path to a CA certificate file, containing one or more CA certificates to use to validate the certificate sent by the consul server to us. This is a handy alternative to setting --ssl-verify=false if you are using your own CA. - --------------------------------------------------------------------------------- - -### example config file from docs - -consul = "127.0.0.1:8500" -token = "abcd1234" // May also be specified via the envvar CONSUL_TOKEN -retry = "10s" -max_stale = "10m" -log_level = "warn" -pid_file = "/path/to/pid" - -vault { - address = "https://vault.service.consul:8200" - token = "abcd1234" // May also be specified via the envvar VAULT_TOKEN - ssl { - enabled = true - verify = true - cert = "/path/to/client/cert.pem" - ca_cert = "/path/to/ca/cert.pem" - } -} - - ---auth-username ---auth-password -# if any are given enabled = true -auth { - enabled = true - username = "test" - password = "test" -} - -ssl { - enabled = true - verify = false - cert = "/path/to/client/cert.pem" - ca_cert = "/path/to/ca/cert.pem" -} - -syslog { - enabled = true - facility = "LOCAL5" -} - -template { - source = "/path/on/disk/to/template" - destination = "/path/on/disk/where/template/will/render" - command = "optional command to run when the template is updated" -} - -template { - // Multiple template definitions are supported -} diff --git a/cdist/conf/type/__consul_template/parameter/boolean b/cdist/conf/type/__consul_template/parameter/boolean deleted file mode 100644 index 10057e46..00000000 --- a/cdist/conf/type/__consul_template/parameter/boolean +++ /dev/null @@ -1,5 +0,0 @@ -ssl -ssl-no-verify -syslog -vault-ssl -vault-ssl-no-verify diff --git a/cdist/conf/type/__consul_template/parameter/default/consul b/cdist/conf/type/__consul_template/parameter/default/consul deleted file mode 100644 index 42dfa616..00000000 --- a/cdist/conf/type/__consul_template/parameter/default/consul +++ /dev/null @@ -1 +0,0 @@ -localhost:8500 diff --git a/cdist/conf/type/__consul_template/parameter/default/log-level b/cdist/conf/type/__consul_template/parameter/default/log-level deleted file mode 100644 index 1ef71804..00000000 --- a/cdist/conf/type/__consul_template/parameter/default/log-level +++ /dev/null @@ -1 +0,0 @@ -warn diff --git a/cdist/conf/type/__consul_template/parameter/default/state b/cdist/conf/type/__consul_template/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_template/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_template/parameter/default/syslog-facility b/cdist/conf/type/__consul_template/parameter/default/syslog-facility deleted file mode 100644 index f32df182..00000000 --- a/cdist/conf/type/__consul_template/parameter/default/syslog-facility +++ /dev/null @@ -1 +0,0 @@ -LOCAL0 diff --git a/cdist/conf/type/__consul_template/parameter/default/version b/cdist/conf/type/__consul_template/parameter/default/version deleted file mode 100644 index a5510516..00000000 --- a/cdist/conf/type/__consul_template/parameter/default/version +++ /dev/null @@ -1 +0,0 @@ -0.15.0 diff --git a/cdist/conf/type/__consul_template/parameter/optional b/cdist/conf/type/__consul_template/parameter/optional deleted file mode 100644 index 8bc528ac..00000000 --- a/cdist/conf/type/__consul_template/parameter/optional +++ /dev/null @@ -1,18 +0,0 @@ -auth-username -auth-password -batch-size -consul -log-level -max-stale -retry -state -ssl-cert -ssl-ca-cert -syslog-facility -token -vault-address -vault-token -vault-ssl-cert -vault-ssl-ca-cert -version -wait diff --git a/cdist/conf/type/__consul_template_template/man.rst b/cdist/conf/type/__consul_template_template/man.rst deleted file mode 100644 index b2e3820b..00000000 --- a/cdist/conf/type/__consul_template_template/man.rst +++ /dev/null @@ -1,84 +0,0 @@ -cdist-type__consul_template_template(7) -======================================= - -NAME ----- -cdist-type__consul_template_template - Manage consul-template templates - - -DESCRIPTION ------------ -Generate and deploy template definitions for a consul-template. -See https://github.com/hashicorp/consul-template#examples for documentation. -Templates are written in the Go template format. -Either the --source or the --source-file parameter must be given. - - -REQUIRED PARAMETERS -------------------- -destination - the destination where the generated file should go. - - -OPTIONAL PARAMETERS -------------------- -command - an optional command to run after rendering the template to its destination. - -source - path to the template source. Conflicts --source-file. - -source-file - path to a local file which is uploaded using the __file type and configured - as the source. - If source is '-' (dash), take what was written to stdin as the file content. - Conflicts --source. - -state - if this template is 'present' or 'absent'. Defaults to 'present'. - -wait - The `minimum(:maximum)` time to wait before rendering a new template to - disk and triggering a command, separated by a colon (`:`). If the optional - maximum value is omitted, it is assumed to be 4x the required minimum value. - This is a numeric time with a unit suffix ("5s"). There is no default value. - The wait value for a template takes precedence over any globally-configured - wait. - - -EXAMPLES --------- - -.. code-block:: sh - - # configure template on the target - __consul_template_template nginx \ - --source /etc/my-consul-templates/nginx.ctmpl \ - --destination /etc/nginx/nginx.conf \ - --command 'service nginx restart' - - - # upload a local file to the target and configure it - __consul_template_template nginx \ - --wait '2s:6s' \ - --source-file "$__manifest/files/nginx.ctmpl" \ - --destination /etc/nginx/nginx.conf \ - --command 'service nginx restart' - - -SEE ALSO --------- -:strong:`cdist-type__consul_template`\ (7), :strong:`cdist-type__consul_template_config`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015-2016 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_template_template/manifest b/cdist/conf/type/__consul_template_template/manifest deleted file mode 100755 index 1eae1fad..00000000 --- a/cdist/conf/type/__consul_template_template/manifest +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$(cat "$__object/parameter/name" 2>/dev/null || echo "$__object_id")" -state="$(cat "$__object/parameter/state")" -conf_dir="/etc/consul-template/conf.d" -conf_file="template_${name}.hcl" -template_dir="/etc/consul-template/template" -require="" - -# Sanity checks -if [ -f "$__object/parameter/source" ] && [ -f "$__object/parameter/source-file" ]; then - echo "Use either --source OR --source-file, but not both." >&2 - exit 1 -fi -if [ ! -f "$__object/parameter/source" ] && [ ! -f "$__object/parameter/source-file" ]; then - echo "Either --source OR --source-file must be given." >&2 - exit 1 -fi - -if [ -f "$__object/parameter/source-file" ]; then - destination="${template_dir}/${name}" - require="__file${destination}" -fi - -# Generate hcl config file -{ -printf 'template {\n' -cd "$__object/parameter/" -for param in *; do - case "$param" in - source-file) - source="$(cat "$__object/parameter/$param")" - if [ "$source" = "-" ]; then - source="$__object/stdin" - fi - require="__directory${template_dir}" \ - __file "$destination" \ - --owner root --group root --mode 640 \ - --source "$source" \ - --state "$state" - printf ' source = "%s"\n' "$destination" - - ;; - source|destination|command|wait) - printf ' %s = "%s"\n' "$param" "$(cat "$__object/parameter/$param")" - ;; - *) - # ignore unknown parameters - : - ;; - esac -done -printf '}\n' -} | \ -require="$require __directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group root --mode 640 \ - --state "$state" \ - --onchange 'service consul-template status >/dev/null && service consul-template reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_template_template/parameter/default/state b/cdist/conf/type/__consul_template_template/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_template_template/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_template_template/parameter/optional b/cdist/conf/type/__consul_template_template/parameter/optional deleted file mode 100644 index 3e55fbb7..00000000 --- a/cdist/conf/type/__consul_template_template/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -command -source -source-file -state -wait diff --git a/cdist/conf/type/__consul_template_template/parameter/required b/cdist/conf/type/__consul_template_template/parameter/required deleted file mode 100644 index ac459b09..00000000 --- a/cdist/conf/type/__consul_template_template/parameter/required +++ /dev/null @@ -1 +0,0 @@ -destination diff --git a/cdist/conf/type/__consul_watch_checks/man.rst b/cdist/conf/type/__consul_watch_checks/man.rst deleted file mode 100644 index a9a9f58d..00000000 --- a/cdist/conf/type/__consul_watch_checks/man.rst +++ /dev/null @@ -1,73 +0,0 @@ -cdist-type__consul_watch_checks(7) -================================== - -NAME ----- -cdist-type__consul_watch_checks - Manages consul checks watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'checks' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -filter-service - filter to a specific service. Conflicts with --filter-state. - -filter-state - filter to a specific state. Conflicts with --filter-service. - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_checks some-id \ - --handler /usr/bin/my-handler.sh - - __consul_watch_checks some-id \ - --filter-service consul \ - --handler /usr/bin/my-handler.sh - - __consul_watch_checks some-id \ - --filter-state passing \ - --handler /usr/bin/my-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_checks/manifest b/cdist/conf/type/__consul_watch_checks/manifest deleted file mode 100755 index 5fdd7a74..00000000 --- a/cdist/conf/type/__consul_watch_checks/manifest +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Sanity checks -if [ -f "$__object/parameter/filter-service" ] && [ -f "$__object/parameter/filter-state" ]; then - echo "Use either --filter-service or --filter-state but not both." >&2 - exit 1 -fi - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - filter-*) - key="${param##*-}" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_checks/parameter/default/state b/cdist/conf/type/__consul_watch_checks/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_checks/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_checks/parameter/optional b/cdist/conf/type/__consul_watch_checks/parameter/optional deleted file mode 100644 index d37fd557..00000000 --- a/cdist/conf/type/__consul_watch_checks/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -datacenter -filter-service -filter-state -state -token diff --git a/cdist/conf/type/__consul_watch_checks/parameter/required b/cdist/conf/type/__consul_watch_checks/parameter/required deleted file mode 100644 index 64b916c1..00000000 --- a/cdist/conf/type/__consul_watch_checks/parameter/required +++ /dev/null @@ -1 +0,0 @@ -handler diff --git a/cdist/conf/type/__consul_watch_event/man.rst b/cdist/conf/type/__consul_watch_event/man.rst deleted file mode 100644 index 6fe60d40..00000000 --- a/cdist/conf/type/__consul_watch_event/man.rst +++ /dev/null @@ -1,66 +0,0 @@ -cdist-type__consul_watch_event(7) -================================= - -NAME ----- -cdist-type__consul_watch_event - Manages consul event watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'event' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -name - restrict the watch to only events with the given name - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_event some-id \ - --handler /usr/bin/my-handler.sh - - __consul_watch_event some-id \ - --name web-deploy \ - --handler /usr/bin/my-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_event/manifest b/cdist/conf/type/__consul_watch_event/manifest deleted file mode 100755 index 61934656..00000000 --- a/cdist/conf/type/__consul_watch_event/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_event/parameter/default/state b/cdist/conf/type/__consul_watch_event/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_event/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_event/parameter/optional b/cdist/conf/type/__consul_watch_event/parameter/optional deleted file mode 100644 index ac808c47..00000000 --- a/cdist/conf/type/__consul_watch_event/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -datacenter -name -state -token diff --git a/cdist/conf/type/__consul_watch_event/parameter/required b/cdist/conf/type/__consul_watch_event/parameter/required deleted file mode 100644 index 64b916c1..00000000 --- a/cdist/conf/type/__consul_watch_event/parameter/required +++ /dev/null @@ -1 +0,0 @@ -handler diff --git a/cdist/conf/type/__consul_watch_key/man.rst b/cdist/conf/type/__consul_watch_key/man.rst deleted file mode 100644 index a12f8425..00000000 --- a/cdist/conf/type/__consul_watch_key/man.rst +++ /dev/null @@ -1,63 +0,0 @@ -cdist-type__consul_watch_key(7) -=============================== - -NAME ----- -cdist-type__consul_watch_key - Manages consul key watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'key' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - -key - the key to watch for changes - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_key some-id \ - --key foo/bar/baz \ - --handler /usr/bin/my-key-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_key/manifest b/cdist/conf/type/__consul_watch_key/manifest deleted file mode 100755 index 61934656..00000000 --- a/cdist/conf/type/__consul_watch_key/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_key/parameter/default/state b/cdist/conf/type/__consul_watch_key/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_key/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_key/parameter/optional b/cdist/conf/type/__consul_watch_key/parameter/optional deleted file mode 100644 index bfce8305..00000000 --- a/cdist/conf/type/__consul_watch_key/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -datacenter -state -token diff --git a/cdist/conf/type/__consul_watch_key/parameter/required b/cdist/conf/type/__consul_watch_key/parameter/required deleted file mode 100644 index a7ae5b65..00000000 --- a/cdist/conf/type/__consul_watch_key/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -handler -key diff --git a/cdist/conf/type/__consul_watch_keyprefix/man.rst b/cdist/conf/type/__consul_watch_keyprefix/man.rst deleted file mode 100644 index c600323c..00000000 --- a/cdist/conf/type/__consul_watch_keyprefix/man.rst +++ /dev/null @@ -1,63 +0,0 @@ -cdist-type__consul_watch_keyprefix(7) -===================================== - -NAME ----- -cdist-type__consul_watch_keyprefix - Manages consul keyprefix watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'keyprefix' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - -prefix - the prefix of keys to watch for changes - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_keyprefix some-id \ - --prefix foo/ \ - --handler /usr/bin/my-prefix-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_keyprefix/manifest b/cdist/conf/type/__consul_watch_keyprefix/manifest deleted file mode 100755 index 61934656..00000000 --- a/cdist/conf/type/__consul_watch_keyprefix/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_keyprefix/parameter/default/state b/cdist/conf/type/__consul_watch_keyprefix/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_keyprefix/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_keyprefix/parameter/optional b/cdist/conf/type/__consul_watch_keyprefix/parameter/optional deleted file mode 100644 index bfce8305..00000000 --- a/cdist/conf/type/__consul_watch_keyprefix/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -datacenter -state -token diff --git a/cdist/conf/type/__consul_watch_keyprefix/parameter/required b/cdist/conf/type/__consul_watch_keyprefix/parameter/required deleted file mode 100644 index 6223b4de..00000000 --- a/cdist/conf/type/__consul_watch_keyprefix/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -handler -keyprefix diff --git a/cdist/conf/type/__consul_watch_nodes/man.rst b/cdist/conf/type/__consul_watch_nodes/man.rst deleted file mode 100644 index d886a586..00000000 --- a/cdist/conf/type/__consul_watch_nodes/man.rst +++ /dev/null @@ -1,59 +0,0 @@ -cdist-type__consul_watch_nodes(7) -================================= - -NAME ----- -cdist-type__consul_watch_nodes - Manages consul nodes watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'nodes' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_nodes some-id \ - --handler /usr/bin/my-key-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_nodes/manifest b/cdist/conf/type/__consul_watch_nodes/manifest deleted file mode 100755 index 61934656..00000000 --- a/cdist/conf/type/__consul_watch_nodes/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_nodes/parameter/default/state b/cdist/conf/type/__consul_watch_nodes/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_nodes/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_nodes/parameter/optional b/cdist/conf/type/__consul_watch_nodes/parameter/optional deleted file mode 100644 index bfce8305..00000000 --- a/cdist/conf/type/__consul_watch_nodes/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -datacenter -state -token diff --git a/cdist/conf/type/__consul_watch_nodes/parameter/required b/cdist/conf/type/__consul_watch_nodes/parameter/required deleted file mode 100644 index 64b916c1..00000000 --- a/cdist/conf/type/__consul_watch_nodes/parameter/required +++ /dev/null @@ -1 +0,0 @@ -handler diff --git a/cdist/conf/type/__consul_watch_service/man.rst b/cdist/conf/type/__consul_watch_service/man.rst deleted file mode 100644 index 37cabcc9..00000000 --- a/cdist/conf/type/__consul_watch_service/man.rst +++ /dev/null @@ -1,83 +0,0 @@ -cdist-type__consul_watch_service(7) -=================================== - -NAME ----- -cdist-type__consul_watch_service - Manages consul service watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'service' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - -service - the service to watch for changes - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - -tag - filter by tag - - -BOOLEAN PARAMETERS ------------------- -passingonly - specifies if only hosts passing all checks are displayed - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_service some-id \ - --service consul \ - --handler /usr/bin/my-handler.sh - - __consul_watch_service some-id \ - --service redis \ - --tag production \ - --handler /usr/bin/my-handler.sh - - __consul_watch_service some-id \ - --service redis \ - --tag production \ - --passingonly \ - --handler /usr/bin/my-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_service/manifest b/cdist/conf/type/__consul_watch_service/manifest deleted file mode 100755 index db38eb18..00000000 --- a/cdist/conf/type/__consul_watch_service/manifest +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - passingonly) - printf ' ,"passingonly": true\n' - ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_service/parameter/boolean b/cdist/conf/type/__consul_watch_service/parameter/boolean deleted file mode 100644 index 4c1e4b3f..00000000 --- a/cdist/conf/type/__consul_watch_service/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -passingonly diff --git a/cdist/conf/type/__consul_watch_service/parameter/default/state b/cdist/conf/type/__consul_watch_service/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_service/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_service/parameter/optional b/cdist/conf/type/__consul_watch_service/parameter/optional deleted file mode 100644 index a81860ac..00000000 --- a/cdist/conf/type/__consul_watch_service/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -datacenter -state -tag -token diff --git a/cdist/conf/type/__consul_watch_service/parameter/required b/cdist/conf/type/__consul_watch_service/parameter/required deleted file mode 100644 index e1ffa4d6..00000000 --- a/cdist/conf/type/__consul_watch_service/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -handler -service diff --git a/cdist/conf/type/__consul_watch_services/man.rst b/cdist/conf/type/__consul_watch_services/man.rst deleted file mode 100644 index cea5f901..00000000 --- a/cdist/conf/type/__consul_watch_services/man.rst +++ /dev/null @@ -1,59 +0,0 @@ -cdist-type__consul_watch_services(7) -==================================== - -NAME ----- -cdist-type__consul_watch_services - Manages consul services watches - - -DESCRIPTION ------------ -Generate and deploy watch definitions of type 'services' for a consul agent. -See http://www.consul.io/docs/agent/watches.html for parameter documentation. - - -REQUIRED PARAMETERS -------------------- -handler - the handler to invoke when the data view updates - - -OPTIONAL PARAMETERS -------------------- -datacenter - can be provided to override the agent's default datacenter - -state - if this watch is 'present' or 'absent'. Defaults to 'present'. - -token - can be provided to override the agent's default ACL token - - -EXAMPLES --------- - -.. code-block:: sh - - __consul_watch_services some-id \ - --handler /usr/bin/my-key-handler.sh - - -SEE ALSO --------- -:strong:`cdist-type__consul_agent`\ (7) - -consul documentation at: . - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__consul_watch_services/manifest b/cdist/conf/type/__consul_watch_services/manifest deleted file mode 100755 index 61934656..00000000 --- a/cdist/conf/type/__consul_watch_services/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -cdist_type="${__type##*/}" -watch_type="${cdist_type##*_}" -conf_dir="/etc/consul/conf.d" -conf_file="watch_${watch_type}_${__object_id}.json" -state="$(cat "$__object/parameter/state")" - -# Generate json config file -( -echo "{" -printf ' "watches": [{\n' -printf ' "type": "%s"\n' "$watch_type" -cd "$__object/parameter/" -for param in *; do - case "$param" in - state) continue ;; - *) - key="$(echo "$param" | tr '-' '_')" - printf ' ,"%s": "%s"\n' "$key" "$(cat "$__object/parameter/$param")" - ;; - esac -done -# end watches -echo " }]" -# end json file -echo "}" -) | \ -require="__directory${conf_dir}" \ - __config_file "${conf_dir}/${conf_file}" \ - --owner root --group consul --mode 640 \ - --state "$state" \ - --onchange 'service consul status >/dev/null && service consul reload || true' \ - --source - diff --git a/cdist/conf/type/__consul_watch_services/parameter/default/state b/cdist/conf/type/__consul_watch_services/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__consul_watch_services/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__consul_watch_services/parameter/optional b/cdist/conf/type/__consul_watch_services/parameter/optional deleted file mode 100644 index bfce8305..00000000 --- a/cdist/conf/type/__consul_watch_services/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -datacenter -state -token diff --git a/cdist/conf/type/__consul_watch_services/parameter/required b/cdist/conf/type/__consul_watch_services/parameter/required deleted file mode 100644 index 64b916c1..00000000 --- a/cdist/conf/type/__consul_watch_services/parameter/required +++ /dev/null @@ -1 +0,0 @@ -handler diff --git a/cdist/conf/type/__cron/explorer/entry b/cdist/conf/type/__cron/explorer/entry deleted file mode 100644 index 801861a3..00000000 --- a/cdist/conf/type/__cron/explorer/entry +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$__object_name" -user="$(cat "$__object/parameter/user")" - -if [ -f "$__object/parameter/raw_command" ]; then - command="$(cat "$__object/parameter/command")" - crontab -u "$user" -l 2>/dev/null | grep "^$command\$" || true -else - crontab -u "$user" -l 2>/dev/null | grep "# $name\$" || true -fi diff --git a/cdist/conf/type/__cron/gencode-remote b/cdist/conf/type/__cron/gencode-remote deleted file mode 100755 index 59398058..00000000 --- a/cdist/conf/type/__cron/gencode-remote +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Thomas Oettli (otho at sfs.biz) -# 2017 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$__object_name" -user="$(cat "$__object/parameter/user")" -command="$(cat "$__object/parameter/command")" - -if [ -f "$__object/parameter/raw" ]; then - raw="$(cat "$__object/parameter/raw")" - entry="$raw $command # $name" -elif [ -f "$__object/parameter/raw_command" ]; then - entry="$command" -else - minute="$(cat "$__object/parameter/minute" 2>/dev/null || echo "*")" - hour="$(cat "$__object/parameter/hour" 2>/dev/null || echo "*")" - day_of_month="$(cat "$__object/parameter/day_of_month" 2>/dev/null || echo "*")" - month="$(cat "$__object/parameter/month" 2>/dev/null || echo "*")" - day_of_week="$(cat "$__object/parameter/day_of_week" 2>/dev/null || echo "*")" - entry="$minute $hour $day_of_month $month $day_of_week $command # $name" -fi - -mkdir "$__object/files" -echo "$entry" > "$__object/files/entry" - -if diff -q "$__object/files/entry" "$__object/explorer/entry" >/dev/null; then - state_is=present -else - state_is=absent -fi - -state_should="$(cat "$__object/parameter/state" 2>/dev/null || echo "present")" - -[ "$state_is" = "$state_should" ] && exit 0 - -# If anything is going to change, ensure the old entries are -# not present anymore - -# These are the old markers -prefix="#cdist:__cron/$__object_id" -suffix="#/cdist:__cron/$__object_id" -filter='^# DO NOT EDIT THIS FILE|^# \(.* installed on |^# \(Cron version V|^# \(Cronie version .\..\)$' -cat << DONE -crontab -u $user -l 2>/dev/null | grep -v -E "$filter" | awk -v prefix="$prefix" -v suffix="$suffix" ' -{ - if (index(\$0,prefix)) { - triggered=1 - } - if (triggered) { - if (index(\$0,suffix)) { - triggered=0 - } - } else { - print - } -} -' | crontab -u $user - -DONE - -case "$state_should" in - present) - # if we insert new entry, filter also all entrys out with the same id - echo "(" - echo "crontab -u $user -l 2>/dev/null | grep -v -E \"$filter\" | grep -v \"# $name\\$\" 2>/dev/null || true" - echo "echo '$entry'" - echo ") | crontab -u $user -" - ;; - absent) - if [ -f "$__object/parameter/raw_command" ]; then - echo "( crontab -u $user -l 2>/dev/null | grep -v -E \"$filter\" 2>/dev/null || true ) | \\" - echo "grep -v \"^$entry\\$\" | crontab -u $user -" - else - echo "( crontab -u $user -l 2>/dev/null | grep -v -E \"$filter\" 2>/dev/null || true ) | \\" - echo "grep -v \"# $name\\$\" | crontab -u $user -" - fi - ;; -esac diff --git a/cdist/conf/type/__cron/man.rst b/cdist/conf/type/__cron/man.rst deleted file mode 100644 index d0694738..00000000 --- a/cdist/conf/type/__cron/man.rst +++ /dev/null @@ -1,84 +0,0 @@ -cdist-type__cron(7) -=================== - -NAME ----- -cdist-type__cron - Installs and manages cron jobs - - -DESCRIPTION ------------ -This cdist type allows you to manage entries in a users crontab. - - -REQUIRED PARAMETERS -------------------- -user - The user who's crontab is edited -command - The command to run. - - -OPTIONAL PARAMETERS -------------------- -state - Either present or absent. Defaults to present. -minute - See crontab(5). Defaults to * -hour - See crontab(5). Defaults to * -day_of_month - See crontab(5). Defaults to * -month - See crontab(5). Defaults to * -day_of_week - See crontab(5). Defaults to * -raw - Take whatever the user has given instead of time and date fields. - If given, all other time and date fields are ignored. - Can for example be used to specify cron EXTENSIONS like reboot, yearly etc. - See crontab(5) for the extensions if any that your cron implementation - implements. -raw_command - Take whatever the user has given in the command and ignore everything else. - If given, the command will be added to crontab. - Can for example be used to define variables like SHELL or MAILTO. - - -EXAMPLES --------- - -.. code-block:: sh - - # run Monday to Saturday at 23:15 - __cron some-id --user root --command "/path/to/script" \ - --hour 23 --minute 15 --day_of_week 1-6 - - # run on reboot - __cron some-id --user root --command "/path/to/script" \ - --raw @reboot - - # remove cronjob - __cron some-id --user root --command "/path/to/script" --state absent - - # define default shell - __cron some-id --user root --raw_command --command "SHELL=/bin/bash" \ - --state present - - -SEE ALSO --------- -:strong:`crontab`\ (5) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011-2013 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__cron/manifest b/cdist/conf/type/__cron/manifest deleted file mode 100755 index 53973e07..00000000 --- a/cdist/conf/type/__cron/manifest +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -e -# -# 2013 Thomas Oettli (otho at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/raw" ] && [ -f "$__object/parameter/raw_command" ]; then - echo "ERROR: both raw and raw_command specified" >&2 - exit 1 -fi diff --git a/cdist/conf/type/__cron/parameter/boolean b/cdist/conf/type/__cron/parameter/boolean deleted file mode 100644 index 54cfb0b3..00000000 --- a/cdist/conf/type/__cron/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -raw_command diff --git a/cdist/conf/type/__cron/parameter/optional b/cdist/conf/type/__cron/parameter/optional deleted file mode 100644 index 517d821e..00000000 --- a/cdist/conf/type/__cron/parameter/optional +++ /dev/null @@ -1,7 +0,0 @@ -state -minute -hour -day_of_month -month -day_of_week -raw diff --git a/cdist/conf/type/__cron/parameter/required b/cdist/conf/type/__cron/parameter/required deleted file mode 100644 index 711a59ab..00000000 --- a/cdist/conf/type/__cron/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -user -command diff --git a/cdist/conf/type/__daemontools/files/init.d-svscan b/cdist/conf/type/__daemontools/files/init.d-svscan deleted file mode 100644 index 996eb4e8..00000000 --- a/cdist/conf/type/__daemontools/files/init.d-svscan +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash -### BEGIN INIT INFO -# Provides: svscan -# Required-Start: -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: svscan -# Description: djb svscan -### END INIT INFO -# from https://gist.githubusercontent.com/pacojp/5766990/raw/2ed009ab19515afc9e58291b636d673c5ca864b3/init.d.svscan -# written by Adam McKenna -# edited by Kamila Součková - -export PATH=$PATH:/usr/local/bin - -l=/var/log/svscan - -if [ ! -d $l ]; then - mkdir $l - chown daemon $l -fi - -case "$1" in - start) - printf "Starting daemontools: " - if ! pidof svscan > /dev/null 2>&1; then - printf "svscan " - env - PATH="$PATH" svscan /service 2>&1 | setuidgid daemon multilog t /var/log/svscan & - echo "." - else - echo "already running." - fi - ;; - stop) - printf "Stopping daemontools: " - pids="$(pidof svscan)" - if [ -n "${pids}" ] - then - printf "svscan" - while [ -n "${pids}" ] - do - # shellcheck disable=SC2086 - kill ${pids} - printf "." - pids="$(pidof svscan)" - done - fi - printf " services" - for i in /service/*; do - svc -dx "$i" - printf "." - done - printf " logging " - for i in /service/*/log; do - svc -dx "$i" - printf "." - done - echo "" - ;; - restart|force-reload) - $0 stop - $0 start - ;; - *) - echo 'Usage: /etc/init.d/svscan {start|stop|restart|force-reload}' - exit 1 -esac diff --git a/cdist/conf/type/__daemontools/man.rst b/cdist/conf/type/__daemontools/man.rst deleted file mode 100644 index bc1b4d33..00000000 --- a/cdist/conf/type/__daemontools/man.rst +++ /dev/null @@ -1,54 +0,0 @@ -cdist-type__daemontools(7) -========================== - -NAME ----- -cdist-type__daemontools - Install daemontools - - -DESCRIPTION ------------ -Install djb daemontools and (optionally) an init script. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -from-package - Package to install. Must be compatible with the original daemontools. Example: daemontools-encore. Default: daemontools. - -servicedir - Directory to scan for services. Default: `/service` - - -BOOLEAN PARAMETERS ------------------- -install-init-script - Add an init script and set it to start on boot. - - -EXAMPLES --------- - -.. code-block:: sh - - __daemontools --from-package daemontools-encore # if you prefer - -SEE ALSO --------- -:strong:`cdist-type__daemontools_service`\ (7) - -AUTHORS -------- -Kamila Součková - -COPYING -------- -Copyright \(C) 2017 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__daemontools/manifest b/cdist/conf/type/__daemontools/manifest deleted file mode 100755 index b04c7e07..00000000 --- a/cdist/conf/type/__daemontools/manifest +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -e - -pkg=$(cat "$__object/parameter/from-package") -servicedir=$(cat "$__object/parameter/servicedir") - -__package "$pkg" -__directory "$servicedir" --mode 700 - -os=$(cat "$__global/explorer/os") -init=$(cat "$__global/explorer/init") - -require="" -case $os in - freebsd) - # TODO change to __start_on_boot once it supports freebsd - __config_file /etc/rc.conf.d/svscan --source - <<-EOT - svscan_enable="YES" - svscan_servicedir="$servicedir" - EOT - require="$require __package/$pkg __directory/$servicedir __config_file/etc/rc.conf.d/svscan" \ - __process svscan --name ".*/svscan $servicedir" --start 'service svscan start' - ;; - *) - case $init in - init) - if [ -f "$__object/parameter/install-init-script" ]; then - __config_file /etc/init.d/svscan --mode 755 --source "$__type/files/init.d-svscan" - REQUIREEXTRA="__config_file/etc/init.d/svscan" - fi - require="$require $REQUIREEXTRA" __start_on_boot svscan - require="$require __package/$pkg __directory/$servicedir __start_on_boot/svscan" \ - __process svscan --name ".*/svscan $servicedir" --start 'service svscan start' - ;; - *) - echo "Your init system ($init) is not supported by this type. Submit a patch at github.com/ungleich/cdist!" - exit 1 - ;; - esac - ;; -esac diff --git a/cdist/conf/type/__daemontools/parameter/boolean b/cdist/conf/type/__daemontools/parameter/boolean deleted file mode 100644 index 99a1cefd..00000000 --- a/cdist/conf/type/__daemontools/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -install-init-script diff --git a/cdist/conf/type/__daemontools/parameter/default/from-package b/cdist/conf/type/__daemontools/parameter/default/from-package deleted file mode 100644 index 598dd40a..00000000 --- a/cdist/conf/type/__daemontools/parameter/default/from-package +++ /dev/null @@ -1 +0,0 @@ -daemontools diff --git a/cdist/conf/type/__daemontools/parameter/default/servicedir b/cdist/conf/type/__daemontools/parameter/default/servicedir deleted file mode 100644 index b74e27f6..00000000 --- a/cdist/conf/type/__daemontools/parameter/default/servicedir +++ /dev/null @@ -1 +0,0 @@ -/service diff --git a/cdist/conf/type/__daemontools/parameter/optional b/cdist/conf/type/__daemontools/parameter/optional deleted file mode 100644 index 22c0805d..00000000 --- a/cdist/conf/type/__daemontools/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -from-package -servicedir diff --git a/cdist/conf/type/__daemontools_service/explorer/svc b/cdist/conf/type/__daemontools_service/explorer/svc deleted file mode 100755 index 9ba462f2..00000000 --- a/cdist/conf/type/__daemontools_service/explorer/svc +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -command -v svc || true diff --git a/cdist/conf/type/__daemontools_service/man.rst b/cdist/conf/type/__daemontools_service/man.rst deleted file mode 100644 index ec1d20ff..00000000 --- a/cdist/conf/type/__daemontools_service/man.rst +++ /dev/null @@ -1,72 +0,0 @@ -cdist-type__daemontools_service(7) -================================== - -NAME ----- -cdist-type__daemontools_service - Create a daemontools-compatible service dir. - - -DESCRIPTION ------------ -Create a directory structure compatible with daemontools-like service management. - -Note that svc must be present on the target system. - -The object ID will be used as the service name. - -REQUIRED PARAMETERS -------------------- -None. - -OPTIONAL PARAMETERS -------------------- -run - Command to run. exec-ing and stderr redirection will be added. One of run, run-file must be specified. - - Example: `my-program` - -run-file - File to save as /run. One of run, run-file must be specified. - - Example: - -.. code-block:: sh - - #!/bin/sh - exec 2>&1 - exec my_program - - -log-run - Command to run for log consumption. Default: `multilog t ./main` - -servicedir - Directory to install into. Default: `/service` - -BOOLEAN PARAMETERS ------------------- -None. - -EXAMPLES --------- - -.. code-block:: sh - - require="__daemontools" __daemontools_service prometheus --run "setuidgid prometheus $GOBIN/prometheus $FLAGS" - - -SEE ALSO --------- -:strong:`cdist-type__daemontools`\ (7) - - -AUTHORS -------- -Kamila Součková - -COPYING -------- -Copyright \(C) 2017 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__daemontools_service/manifest b/cdist/conf/type/__daemontools_service/manifest deleted file mode 100755 index 78bae285..00000000 --- a/cdist/conf/type/__daemontools_service/manifest +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -e - -RUN_PREFIX="#!/bin/sh -exec 2>&1 -exec " # mind the space :D - -name=$__object_id -servicedir=$(cat "$__object/parameter/servicedir") -run=$(cat "$__object/parameter/run") -runfile=$(cat "$__object/parameter/run-file") -logrun=$(cat "$__object/parameter/log-run") - -svc=$(cat "$__type/explorer/svc") - -if [ -z "$svc" ]; then - echo "svc not found! Install daemontools first: see __daemontools" - exit 1 -fi - -badusage() { - echo "__daemontools_service/$__object_id: exactly one of --run, --run-file must be set" >&2 - exit 1 -} - -[ -z "$run$runfile" ] && badusage -[ -n "$run" ] && [ -n "$runfile" ] && badusage - -__directory "$servicedir/$name/log/main" --parents - -echo "$RUN_PREFIX$run" | require="__directory/$servicedir/$name/log/main" __config_file "$servicedir/$name/run" \ - --onchange "svc -t '$servicedir/$name' 2>/dev/null" \ - --mode 755 \ - --source "${runfile:--}" - -echo "$RUN_PREFIX$logrun" | require="__directory/$servicedir/$name/log/main" __config_file "$servicedir/$name/log/run" \ - --onchange "svc -t '$servicedir/$name/log' 2>/dev/null" \ - --mode 755 \ - --source "-" diff --git a/cdist/conf/type/__daemontools_service/parameter/default/log-run b/cdist/conf/type/__daemontools_service/parameter/default/log-run deleted file mode 100644 index 80d57a74..00000000 --- a/cdist/conf/type/__daemontools_service/parameter/default/log-run +++ /dev/null @@ -1 +0,0 @@ -multilog t ./main diff --git a/cdist/conf/type/__daemontools_service/parameter/default/run-file b/cdist/conf/type/__daemontools_service/parameter/default/run-file deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__daemontools_service/parameter/default/servicedir b/cdist/conf/type/__daemontools_service/parameter/default/servicedir deleted file mode 100644 index b74e27f6..00000000 --- a/cdist/conf/type/__daemontools_service/parameter/default/servicedir +++ /dev/null @@ -1 +0,0 @@ -/service diff --git a/cdist/conf/type/__daemontools_service/parameter/optional b/cdist/conf/type/__daemontools_service/parameter/optional deleted file mode 100644 index 7e54985f..00000000 --- a/cdist/conf/type/__daemontools_service/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -log-run -run -run-file -servicedir diff --git a/cdist/conf/type/__debconf_set_selections/gencode-remote b/cdist/conf/type/__debconf_set_selections/gencode-remote deleted file mode 100755 index e99aef40..00000000 --- a/cdist/conf/type/__debconf_set_selections/gencode-remote +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -e -# -# 2011-2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Setup selections -# - -filename="$(cat "$__object/parameter/file")" - -if [ "$filename" = "-" ]; then - filename="$__object/stdin" -fi - -echo "debconf-set-selections << __file-eof" -cat "$filename" -echo "__file-eof" diff --git a/cdist/conf/type/__debconf_set_selections/man.rst b/cdist/conf/type/__debconf_set_selections/man.rst deleted file mode 100644 index 58c25b81..00000000 --- a/cdist/conf/type/__debconf_set_selections/man.rst +++ /dev/null @@ -1,53 +0,0 @@ -cdist-type__debconf_set_selections(7) -===================================== - -NAME ----- -cdist-type__debconf_set_selections - Setup debconf selections - - -DESCRIPTION ------------ -On Debian and alike systems debconf-set-selections(1) can be used -to setup configuration parameters. - - -REQUIRED PARAMETERS -------------------- -file - Use the given filename as input for debconf-set-selections(1) - If filename is "-", read from stdin. - - -EXAMPLES --------- - -.. code-block:: sh - - # Setup configuration for nslcd - __debconf_set_selections nslcd --file /path/to/file - - # Setup configuration for nslcd from another type - __debconf_set_selections nslcd --file "$__type/files/preseed/nslcd" - - __debconf_set_selections nslcd --file - << eof - gitolite gitolite/gituser string git - eof - - -SEE ALSO --------- -:strong:`debconf-set-selections`\ (1), :strong:`cdist-type__update_alternatives`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2014 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__directory/explorer/stat b/cdist/conf/type/__directory/explorer/stat deleted file mode 100755 index 03d466ba..00000000 --- a/cdist/conf/type/__directory/explorer/stat +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -# nothing to work with, nothing we could do -[ -e "$destination" ] || exit 0 - -os=$("$__explorer/os") -case "$os" in - "freebsd"|"netbsd"|"openbsd"|"macosx") - stat -f "type: %HT -owner: %Du %Su -group: %Dg %Sg -mode: %Lp %Sp -" "$destination" | awk '/^type/ { print tolower($0); next; } { print; }' - ;; - alpine) - stat -c "type: %F -owner: %u %U -group: %g %G -mode: %a %A -" "$destination" - ;; - solaris) - ls1="$( ls -ld "$destination" )" - ls2="$( ls -ldn "$destination" )" - - if [ -f "$__object/parameter/mode" ] - then mode_should="$( cat "$__object/parameter/mode" )" - fi - - # yes, it is ugly hack, but if you know better way... - if [ -z "$( find "$destination" -perm "$mode_should" )" ] - then octets=888 - else octets="$( echo "$mode_should" | sed 's/^0//' )" - fi - - case "$( echo "$ls1" | cut -c1-1 )" in - -) echo 'type: regular file' ;; - d) echo 'type: directory' ;; - esac - - echo "owner: $( echo "$ls2" \ - | awk '{print $3}' ) $( echo "$ls1" \ - | awk '{print $3}' )" - - echo "group: $( echo "$ls2" \ - | awk '{print $4}' ) $( echo "$ls1" \ - | awk '{print $4}' )" - - echo "mode: $octets $( echo "$ls1" | awk '{print $1}' )" - ;; - *) - stat --printf="type: %F -owner: %u %U -group: %g %G -mode: %a %A -" "$destination" - ;; -esac diff --git a/cdist/conf/type/__directory/explorer/type b/cdist/conf/type/__directory/explorer/type deleted file mode 100755 index e723047c..00000000 --- a/cdist/conf/type/__directory/explorer/type +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -if [ ! -e "$destination" ]; then - echo none -elif [ -h "$destination" ]; then - echo symlink -elif [ -f "$destination" ]; then - echo file -elif [ -d "$destination" ]; then - echo directory -else - echo unknown -fi diff --git a/cdist/conf/type/__directory/gencode-remote b/cdist/conf/type/__directory/gencode-remote deleted file mode 100755 index 374db47a..00000000 --- a/cdist/conf/type/__directory/gencode-remote +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# 2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" -state_should="$(cat "$__object/parameter/state")" -type="$(cat "$__object/explorer/type")" -stat_file="$__object/explorer/stat" - -# variable to keep track if we have to set directory attributes -set_attributes= - -mkdiropt="" -[ -f "$__object/parameter/parents" ] && mkdiropt="-p" - -recursive="" -if [ -f "$__object/parameter/recursive" ]; then - recursive="-R" - # need to allways set attributes when recursive is given - # as we don't want to check all subfolders/files - set_attributes=1 -fi - -get_current_value() { - if [ -s "$stat_file" ]; then - _name="$1" - _value="$2" - case "$_value" in - [0-9]*) - _index=2 - ;; - *) - _index=3 - ;; - esac - awk '/'"$_name"':/ { print $'$_index' }' "$stat_file" - unset _name _value _index - fi -} - -set_group() { - echo "chgrp $recursive '$1' '$destination'" - echo "chgrp $recursive '$1'" >> "$__messages_out" -} - -set_owner() { - echo "chown $recursive '$1' '$destination'" - echo "chown $recursive '$1'" >> "$__messages_out" -} - -set_mode() { - echo "chmod $recursive '$1' '$destination'" - echo "chmod $recursive '$1'" >> "$__messages_out" -} - -case "$state_should" in - present) - if [ "$type" != "directory" ]; then - set_attributes=1 - if [ "$type" != "none" ]; then - # our destination is not a directory, remove whatever is there - # and then create our directory and set all attributes - echo "rm -f '$destination'" - echo "remove non directory" >> "$__messages_out" - fi - echo "mkdir $mkdiropt '$destination'" - echo "create" >> "$__messages_out" - fi - - # Note: Mode - needs to happen last as a chown/chgrp can alter mode by - # clearing S_ISUID and S_ISGID bits (see chown(2)) - for attribute in group owner mode; do - if [ -f "$__object/parameter/$attribute" ]; then - value_should="$(cat "$__object/parameter/$attribute")" - value_is="$(get_current_value "$attribute" "$value_should")" - - # change 0xxx format to xxx format => same as stat returns - if [ "$attribute" = mode ]; then - value_should="$(echo "$value_should" | sed 's/^0\(...\)/\1/')" - fi - - if [ "$set_attributes" = 1 ] || [ "$value_should" != "$value_is" ]; then - "set_$attribute" "$value_should" - fi - fi - done - ;; - absent) - if [ "$type" = "directory" ]; then - echo "rm -rf '$destination'" - echo remove >> "$__messages_out" - fi - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__directory/man.rst b/cdist/conf/type/__directory/man.rst deleted file mode 100644 index 74b00afe..00000000 --- a/cdist/conf/type/__directory/man.rst +++ /dev/null @@ -1,101 +0,0 @@ -cdist-type__directory(7) -======================== - -NAME ----- -cdist-type__directory - Manage a directory - - -DESCRIPTION ------------ -This cdist type allows you to create or remove directories on the target. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - -group - Group to chgrp to. - -mode - Unix permissions, suitable for chmod. - -owner - User to chown to. - - -BOOLEAN PARAMETERS ------------------- -parents - Whether to create parents as well (mkdir -p behaviour). - Warning: all intermediate directory permissions default - to whatever mkdir -p does. - - Usually this means root:root, 0700. - -recursive - If supplied the chgrp and chown call will run recursively. - This does *not* influence the behaviour of chmod. - -MESSAGES --------- -chgrp - Changed group membership -chown - Changed owner -chmod - Changed mode -create - Empty directory was created -remove - Directory exists, but state is absent, directory will be removed by generated code. -remove non directory - Something other than a directory with the same name exists and was removed prior to create. - - -EXAMPLES --------- - -.. code-block:: sh - - # A silly example - __directory /tmp/foobar - - # Remove a directory - __directory /tmp/foobar --state absent - - # Ensure /etc exists correctly - __directory /etc --owner root --group root --mode 0755 - - # Create nfs service directory, including parents - __directory /home/services/nfs --parents - - # Change permissions recursively - __directory /home/services --recursive --owner root --group root - - # Setup a temp directory - __directory /local --mode 1777 - - # Take it all - __directory /home/services/kvm --recursive --parents \ - --owner root --group root --mode 0755 --state present - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__directory/parameter/default/state b/cdist/conf/type/__directory/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__directory/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__docker/man.rst b/cdist/conf/type/__docker/man.rst deleted file mode 100644 index 718543a8..00000000 --- a/cdist/conf/type/__docker/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__docker(7) -===================== - -NAME ----- -cdist-type__docker - install Docker CE - - -DESCRIPTION ------------ -Installs latest Docker Community Edition package. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' -version - The specific version to install. Defaults to the special value 'latest', - meaning the version the package manager will install by default. - - -BOOLEAN PARAMETERS ------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - # Install docker - __docker - - # Remove docker - __docker --state absent - - # Install specific version - __docker --state present --version 18.03.0.ce - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2016 Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__docker/manifest b/cdist/conf/type/__docker/manifest deleted file mode 100755 index 6a57d85a..00000000 --- a/cdist/conf/type/__docker/manifest +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/sh -e -# -# 2016 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") -state=$(cat "$__object/parameter/state") -version=$(cat "$__object/parameter/version") - -case "$os" in - centos) - # shellcheck source=/dev/null - if (. "$__global/explorer/os_release" && [ "${VERSION_ID}" = "7" ]); then - __yum_repo docker-ce-stable \ - --name 'Docker CE Stable' \ - --baseurl "https://download.docker.com/linux/centos/7/\$basearch/stable" \ - --enabled \ - --gpgcheck 1 \ - --gpgkey 'https://download.docker.com/linux/centos/gpg' \ - --state "${state}" - if [ "$version" != "latest" ]; then - require="__yum_repo/docker-ce-stable" __package docker-ce --version "${version}" --state "${state}" - else - require="__yum_repo/docker-ce-stable" __package docker-ce --state "${state}" - fi - else - echo "CentOS version 7 is required!" >&2 - exit 1 - fi - ;; - ubuntu|debian) - if [ "${state}" = "present" ]; then - __package apt-transport-https - __package ca-certificates - __package gnupg2 - fi - __apt_key_uri docker --name "Docker Release (CE deb) " \ - --uri "https://download.docker.com/linux/${os}/gpg" --state "${state}" - - require="__apt_key_uri/docker" __apt_source docker \ - --uri "https://download.docker.com/linux/${os}" \ - --distribution "$(cat "$__global/explorer/lsb_codename")" \ - --state "${state}" \ - --component "stable" - if [ "$version" != "latest" ]; then - require="__apt_source/docker" __package docker-ce --version "${version}" --state "${state}" - else - require="__apt_source/docker" __package docker-ce --state "${state}" - fi - ;; - devuan) - os_version="$(cat "$__global/explorer/os_version")" - - case "$os_version" in - ascii) - distribution="stretch" - ;; - jessie) - distribution="jessie" - ;; - *) - echo "Your devuan release ($os_version) is currently not supported by this type (${__type##*/}).">&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; - esac - - if [ "${state}" = "present" ]; then - __package apt-transport-https - __package ca-certificates - __package gnupg2 - fi - __apt_key_uri docker --name "Docker Release (CE deb) " \ - --uri "https://download.docker.com/linux/${os}/gpg" --state "${state}" - - require="__apt_key_uri/docker" __apt_source docker \ - --uri "https://download.docker.com/linux/${os}" \ - --distribution "${distribution}" \ - --state "${state}" \ - --component "stable" - if [ "$version" != "latest" ]; then - require="__apt_source/docker" __package docker-ce --version "${version}" --state "${state}" - else - require="__apt_source/docker" __package docker-ce --state "${state}" - fi - - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__docker/parameter/default/state b/cdist/conf/type/__docker/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__docker/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__docker/parameter/default/version b/cdist/conf/type/__docker/parameter/default/version deleted file mode 100644 index a0f9a4b4..00000000 --- a/cdist/conf/type/__docker/parameter/default/version +++ /dev/null @@ -1 +0,0 @@ -latest diff --git a/cdist/conf/type/__docker/parameter/optional b/cdist/conf/type/__docker/parameter/optional deleted file mode 100644 index 4d595ed7..00000000 --- a/cdist/conf/type/__docker/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -version diff --git a/cdist/conf/type/__docker_compose/gencode-remote b/cdist/conf/type/__docker_compose/gencode-remote deleted file mode 100755 index 77fc2fdf..00000000 --- a/cdist/conf/type/__docker_compose/gencode-remote +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -e -# -# 2016 Dominique Roux (dominique.roux at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# Variables -version="$(cat "$__object/parameter/version")" -state="$(cat "$__object/parameter/state")" - -if [ "${state}" = "present" ]; then - # Download docker-compose file - #shellcheck disable=SC2016 - echo 'curl -L "https://github.com/docker/compose/releases/download/'"${version}"'/docker-compose-$(uname -s)-$(uname -m)" -o /tmp/docker-compose' - echo 'mv /tmp/docker-compose /usr/local/bin/docker-compose' - # Change permissions - echo 'chmod +x /usr/local/bin/docker-compose' -fi diff --git a/cdist/conf/type/__docker_compose/man.rst b/cdist/conf/type/__docker_compose/man.rst deleted file mode 100644 index 7386e737..00000000 --- a/cdist/conf/type/__docker_compose/man.rst +++ /dev/null @@ -1,58 +0,0 @@ -cdist-type__docker_compose(7) -============================= - -NAME ----- -cdist-type__docker_compose - install docker-compose - - -DESCRIPTION ------------ -Installs docker-compose package. -State 'absent' will not remove docker binary itself, -only docker-compose binary will be removed - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -version - Define docker_compose version, defaults to "1.9.0" - -state - 'present' or 'absent', defaults to 'present' - - -BOOLEAN PARAMETERS ------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - # Install docker-compose - __docker_compose - - # Install version 1.9.0-rc4 - __docker_compose --version 1.9.0-rc4 - - # Remove docker-compose - __docker_compose --state absent - - -AUTHORS -------- -Dominique Roux - - -COPYING -------- -Copyright \(C) 2016 Dominique Roux. Free use of this software is -granted under the terms of the GNU General Public License version 3 or later (GPLv3+). diff --git a/cdist/conf/type/__docker_compose/manifest b/cdist/conf/type/__docker_compose/manifest deleted file mode 100755 index f7de3a76..00000000 --- a/cdist/conf/type/__docker_compose/manifest +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -e -# -# 2016 Dominique Roux (dominique.roux at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -state="$(cat "$__object/parameter/state")" - -# Needed packages -if [ "${state}" = "present" ]; then - __docker - __package curl -elif [ "${state}" = "absent" ]; then - __file /usr/local/bin/docker-compose --state absent -else - echo "Unknown state: ${state}" >&2 - exit 1 -fi diff --git a/cdist/conf/type/__docker_compose/parameter/default/state b/cdist/conf/type/__docker_compose/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__docker_compose/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__docker_compose/parameter/default/version b/cdist/conf/type/__docker_compose/parameter/default/version deleted file mode 100644 index 850e7424..00000000 --- a/cdist/conf/type/__docker_compose/parameter/default/version +++ /dev/null @@ -1 +0,0 @@ -1.14.0 diff --git a/cdist/conf/type/__docker_compose/parameter/optional b/cdist/conf/type/__docker_compose/parameter/optional deleted file mode 100644 index 4d595ed7..00000000 --- a/cdist/conf/type/__docker_compose/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -version diff --git a/cdist/conf/type/__docker_config/explorer/config-data b/cdist/conf/type/__docker_config/explorer/config-data deleted file mode 100755 index b4bb0e11..00000000 --- a/cdist/conf/type/__docker_config/explorer/config-data +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -docker config inspect "${__object_id:?}" --format '{{json .Spec.Data}}' \ - 2>/dev/null | tr -d '"' | base64 -d diff --git a/cdist/conf/type/__docker_config/explorer/config-exists b/cdist/conf/type/__docker_config/explorer/config-exists deleted file mode 100755 index 58c207d4..00000000 --- a/cdist/conf/type/__docker_config/explorer/config-exists +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if docker config ls | grep -q " ${__object_id:?} "; then - echo yes -else - echo no -fi diff --git a/cdist/conf/type/__docker_config/gencode-remote b/cdist/conf/type/__docker_config/gencode-remote deleted file mode 100755 index 65497b7e..00000000 --- a/cdist/conf/type/__docker_config/gencode-remote +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -config="${__object_id:?}" -config_exists=$(cat "${__object:?}/explorer/config-exists") -state=$(cat "${__object:?}/parameter/state") - -case "${state}" in - absent) - if [ "${config_exists}" != "yes" ]; then - exit 0 - fi - - echo "docker config rm \"${config}\"" - ;; - present) - source=$(cat "${__object}/parameter/source") - - if [ -z "${source}" ]; then - exit 0 - fi - - if [ "${source}" = "-" ]; then - source="${__object}/stdin" - fi - - if [ "${config_exists}" = "yes" ]; then - if cmp -s "${source}" "${__object}/explorer/config-data"; then - exit 0 - else - echo "docker config rm \"${config}\"" - fi - fi - - cat <<-EOF - source_file="\$(mktemp cdist.XXXXXXXXXX)" - - base64 -d > "\${source_file}" << eof - $(base64 "${source}") - eof - - docker config create "${config}" "\${source_file}" - - rm "\${source_file}" - EOF - ;; - *) - echo "Unsupported state: ${state}" >&2 - - exit 1 - ;; -esac diff --git a/cdist/conf/type/__docker_config/man.rst b/cdist/conf/type/__docker_config/man.rst deleted file mode 100644 index 7c74c8af..00000000 --- a/cdist/conf/type/__docker_config/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__docker_config(7) -============================ - -NAME ----- - -cdist-type__docker_config - Manage Docker configs - -DESCRIPTION ------------ - -This type manages Docker configs. - -OPTIONAL PARAMETERS -------------------- - -source - Path to the source file. If it is '-' (dash), read standard input. - -state - 'present' or 'absent', defaults to 'present' where: - - present - if the config does not exist, it is created - absent - the config is removed - -CAVEATS -------- - -Since Docker configs cannot be updated once created, this type tries removing -and recreating the config if it changes. If the config is used by a service at -the time of removing, then this type will fail. - -EXAMPLES --------- - -.. code-block:: sh - - # Creates "foo" config from "bar" source file - __docker_config foo --source bar - - -AUTHORS -------- - -Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2018 Ľubomír Kučera. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__docker_config/parameter/default/source b/cdist/conf/type/__docker_config/parameter/default/source deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__docker_config/parameter/default/state b/cdist/conf/type/__docker_config/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__docker_config/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__docker_config/parameter/optional b/cdist/conf/type/__docker_config/parameter/optional deleted file mode 100644 index d77f3048..00000000 --- a/cdist/conf/type/__docker_config/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -source -state diff --git a/cdist/conf/type/__docker_secret/explorer/secret-exists b/cdist/conf/type/__docker_secret/explorer/secret-exists deleted file mode 100755 index 1405f8bc..00000000 --- a/cdist/conf/type/__docker_secret/explorer/secret-exists +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if docker secret ls | grep -q " ${__object_id:?} "; then - echo yes -else - echo no -fi diff --git a/cdist/conf/type/__docker_secret/gencode-remote b/cdist/conf/type/__docker_secret/gencode-remote deleted file mode 100755 index c75e91d9..00000000 --- a/cdist/conf/type/__docker_secret/gencode-remote +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -secret="${__object_id:?}" -secret_exists=$(cat "${__object:?}/explorer/secret-exists") -state=$(cat "${__object:?}/parameter/state") - -case "${state}" in - absent) - if [ "${secret_exists}" != "yes" ]; then - exit 0 - fi - - echo "docker secret rm ${secret}" - ;; - present) - if [ "${secret_exists}" = "yes" ]; then - exit 0 - fi - - source=$(cat "${__object}/parameter/source") - - if [ -z "${source}" ]; then - exit 0 - fi - - if [ "${source}" = "-" ]; then - source="${__object}/stdin" - fi - - cat <<-EOF - source_file="\$(mktemp cdist.XXXXXXXXXX)" - - base64 -d > "\${source_file}" << eof - $(base64 "${source}") - eof - - docker secret create "${secret}" "\${source_file}" - - rm "\${source_file}" - EOF - ;; - *) - echo "Unsupported state: ${state}" >&2 - - exit 1 - ;; -esac diff --git a/cdist/conf/type/__docker_secret/man.rst b/cdist/conf/type/__docker_secret/man.rst deleted file mode 100644 index 7fe69623..00000000 --- a/cdist/conf/type/__docker_secret/man.rst +++ /dev/null @@ -1,54 +0,0 @@ -cdist-type__docker_secret(7) -============================ - -NAME ----- - -cdist-type__docker_secret - Manage Docker secrets - -DESCRIPTION ------------ - -This type manages Docker secrets. - -OPTIONAL PARAMETERS -------------------- - -source - Path to the source file. If it is '-' (dash), read standard input. - -state - 'present' or 'absent', defaults to 'present' where: - - present - if the secret does not exist, it is created - absent - the secret is removed - -CAVEATS -------- - -Since Docker secrets cannot be updated once created, this type takes no action -if the specified secret already exists. - -EXAMPLES --------- - -.. code-block:: sh - - # Creates "foo" secret from "bar" source file - __docker_secret foo --source bar - - -AUTHORS -------- - -Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2018 Ľubomír Kučera. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__docker_secret/parameter/default/source b/cdist/conf/type/__docker_secret/parameter/default/source deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__docker_secret/parameter/default/state b/cdist/conf/type/__docker_secret/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__docker_secret/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__docker_secret/parameter/optional b/cdist/conf/type/__docker_secret/parameter/optional deleted file mode 100644 index d77f3048..00000000 --- a/cdist/conf/type/__docker_secret/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -source -state diff --git a/cdist/conf/type/__docker_stack/explorer/stack-exists b/cdist/conf/type/__docker_stack/explorer/stack-exists deleted file mode 100755 index 4f511821..00000000 --- a/cdist/conf/type/__docker_stack/explorer/stack-exists +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if docker stack ls | grep -q "^${__object_id:?} "; then - echo 1 -else - echo 0 -fi diff --git a/cdist/conf/type/__docker_stack/gencode-remote b/cdist/conf/type/__docker_stack/gencode-remote deleted file mode 100755 index 586271d0..00000000 --- a/cdist/conf/type/__docker_stack/gencode-remote +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -stack="${__object_id:?}" -state=$(cat "${__object:?}/parameter/state") - -case "${state}" in - absent) - stack_exists=$(cat "${__object:?}/explorer/stack-exists") - - if [ "${stack_exists}" -ne 1 ]; then - exit 0 - fi - - echo "docker stack rm ${stack}" - ;; - present) - compose_file=$(cat "${__object}/parameter/compose-file") - - if [ -z "${compose_file}" ]; then - exit 0 - fi - - if [ "${compose_file}" = "-" ]; then - compose_file="${__object}/stdin" - fi - - cat <<-EOF - compose_file="\$(mktemp cdist.XXXXXXXXXX)" - - base64 -d > "\${compose_file}" << eof - $(base64 "${compose_file}") - eof - - docker stack deploy --compose-file "\${compose_file}" \ - --prune --with-registry-auth ${stack} - - rm "\${compose_file}" - EOF - ;; - *) - echo "Unsupported state: ${state}" >&2 - - exit 1 - ;; -esac diff --git a/cdist/conf/type/__docker_stack/man.rst b/cdist/conf/type/__docker_stack/man.rst deleted file mode 100644 index d0597c25..00000000 --- a/cdist/conf/type/__docker_stack/man.rst +++ /dev/null @@ -1,54 +0,0 @@ -cdist-type__docker_stack(7) -=========================== - -NAME ----- - -cdist-type__docker_stack - Manage Docker stacks - -DESCRIPTION ------------ - -This type manages service stacks. - -.. note:: - Since there is no easy way to tell whether a stack needs to be updated, - `docker stack deploy` is being run every time this type is invoked. - However, it does not mean this type is not idempotent. If Docker does not - detect changes, the existing stack will not be updated. - -OPTIONAL PARAMETERS -------------------- - -compose-file - Path to the compose file. If it is '-' (dash), read standard input. - -state - 'present' or 'absent', defaults to 'present' where: - - present - the stack is deployed - absent - the stack is removed - -EXAMPLES --------- - -.. code-block:: sh - - # Deploys 'foo' stack defined in 'docker-compose.yml' compose file - __docker_stack foo --compose-file docker-compose.yml - - -AUTHORS -------- - -Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2018 Ľubomír Kučera. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__docker_stack/parameter/default/compose-file b/cdist/conf/type/__docker_stack/parameter/default/compose-file deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__docker_stack/parameter/default/state b/cdist/conf/type/__docker_stack/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__docker_stack/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__docker_stack/parameter/optional b/cdist/conf/type/__docker_stack/parameter/optional deleted file mode 100644 index b3457bd3..00000000 --- a/cdist/conf/type/__docker_stack/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -compose-file -state diff --git a/cdist/conf/type/__docker_swarm/explorer/swarm-state b/cdist/conf/type/__docker_swarm/explorer/swarm-state deleted file mode 100755 index 2c9fd598..00000000 --- a/cdist/conf/type/__docker_swarm/explorer/swarm-state +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -docker info 2>/dev/null | grep '^ *Swarm: ' | awk '{print $2}' diff --git a/cdist/conf/type/__docker_swarm/gencode-remote b/cdist/conf/type/__docker_swarm/gencode-remote deleted file mode 100755 index 4b199a02..00000000 --- a/cdist/conf/type/__docker_swarm/gencode-remote +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -e -# -# 2018 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state=$(cat "${__object:?}/parameter/state") -swarm_state="$(cat "${__object}/explorer/swarm-state")" - -if [ -z "${swarm_state}" ]; then - echo "Unable to determine Swarm state. Is compatible version of Docker installed?" >&2 - - exit 1 -fi - -case "${state}" in - absent) - if [ "${swarm_state}" = "active" ]; then - echo "docker swarm leave --force" - fi - ;; - present) - if [ "${swarm_state}" = "inactive" ]; then - echo "docker swarm init" - fi - ;; - *) - echo "Unsupported state: ${state}" >&2 - - exit 1 - ;; -esac diff --git a/cdist/conf/type/__docker_swarm/man.rst b/cdist/conf/type/__docker_swarm/man.rst deleted file mode 100644 index 4dc408f0..00000000 --- a/cdist/conf/type/__docker_swarm/man.rst +++ /dev/null @@ -1,49 +0,0 @@ -cdist-type__docker_swarm(7) -=========================== - -NAME ----- - -cdist-type__docker_swarm - Manage Swarm - -DESCRIPTION ------------ - -This type can initialize Docker swarm mode. For more information about swarm -mode, see `Swarm mode overview `_. - -OPTIONAL PARAMETERS -------------------- - -state - 'present' or 'absent', defaults to 'present' where: - - present - Swarm is initialized - absent - Swarm is left - -EXAMPLES --------- - -.. code-block:: sh - - # Initializes a swarm - __docker_swarm - - # Leaves a swarm - __docker_swarm --state absent - - -AUTHORS -------- - -Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2018 Ľubomír Kučera. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__docker_swarm/parameter/default/state b/cdist/conf/type/__docker_swarm/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__docker_swarm/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__dog_vdi/explorer/list b/cdist/conf/type/__dog_vdi/explorer/list deleted file mode 100755 index 856c86fc..00000000 --- a/cdist/conf/type/__dog_vdi/explorer/list +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="$__object_id" - -dog vdi list -r "$name" diff --git a/cdist/conf/type/__dog_vdi/gencode-remote b/cdist/conf/type/__dog_vdi/gencode-remote deleted file mode 100755 index 9d49506c..00000000 --- a/cdist/conf/type/__dog_vdi/gencode-remote +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -e -# -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state_should="$(cat "$__object/parameter/state")" -num_vdi_lines=$(wc -l < "$__object/explorer/list") -name="$__object_id" - - -if [ "$num_vdi_lines" = 1 ]; then - state_is=present -else - state_is=absent -fi - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - size="$(cat "$__object/parameter/size")" - echo "dog vdi create '$name' '$size'" - ;; - absent) - echo "dog vdi delete '$name'" - ;; -esac diff --git a/cdist/conf/type/__dog_vdi/man.rst b/cdist/conf/type/__dog_vdi/man.rst deleted file mode 100644 index 4be1920d..00000000 --- a/cdist/conf/type/__dog_vdi/man.rst +++ /dev/null @@ -1,59 +0,0 @@ -cdist-type__dog_vdi(7) -====================== - -NAME ----- -cdist-type__dog_vdi - Manage Sheepdog VM images - - -DESCRIPTION ------------ -The dog program is used to create images for sheepdog -to be used in qemu. - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" -size - Size of the image in "dog vdi" compatible units. - - Required if state is "present". - - - -EXAMPLES --------- - -.. code-block:: sh - - # Create a 50G size image - __dog_vdi nico-privat.sky.ungleich.ch --size 50G - - # Create a 50G size image (more explicit) - __dog_vdi nico-privat.sky.ungleich.ch --size 50G --state present - - # Remove image - __dog_vdi nico-privat.sky.ungleich.ch --state absent - - # Remove image - keeping --size is ok - __dog_vdi nico-privat.sky.ungleich.ch --size 50G --state absent - - -SEE ALSO --------- -:strong:`qemu`\ (1), :strong:`dog`\ (8) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2014 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__dog_vdi/manifest b/cdist/conf/type/__dog_vdi/manifest deleted file mode 100755 index 869bdede..00000000 --- a/cdist/conf/type/__dog_vdi/manifest +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -e -# -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state_should="$(cat "$__object/parameter/state")" - -case "$state_should" in - present) - if [ ! -f "$__object/parameter/size" ]; then - echo "Size is required when state is present" >&2 - exit 1 - fi - ;; - absent) - : - ;; - *) - echo "Unsupported state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__dog_vdi/parameter/default/state b/cdist/conf/type/__dog_vdi/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__dog_vdi/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__dog_vdi/parameter/optional b/cdist/conf/type/__dog_vdi/parameter/optional deleted file mode 100644 index c3ac4490..00000000 --- a/cdist/conf/type/__dog_vdi/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -size diff --git a/cdist/conf/type/__dot_file/explorer/home b/cdist/conf/type/__dot_file/explorer/home deleted file mode 100755 index 08d941bf..00000000 --- a/cdist/conf/type/__dot_file/explorer/home +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# Copyright (C) 2016 Dmitry Bogatov - -# Author: Dmitry Bogatov - -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 3 -# of the License, or (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -set -eu - -user="$(cat "${__object}/parameter/user")" - -if command -v getent >/dev/null 2>&1; then - line=$(getent passwd "${user}") -else - line=$(grep "^${user}:" /etc/passwd) -fi -printf '%s' "$line" | cut -d: -f6 diff --git a/cdist/conf/type/__dot_file/explorer/primary_group b/cdist/conf/type/__dot_file/explorer/primary_group deleted file mode 100755 index 30b303ac..00000000 --- a/cdist/conf/type/__dot_file/explorer/primary_group +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# Copyright (C) 2016 Dmitry Bogatov - -# Author: Dmitry Bogatov - -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 3 -# of the License, or (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -set -eu - -user="$(cat "${__object}/parameter/user")" -id -gn "${user}" diff --git a/cdist/conf/type/__dot_file/man.rst b/cdist/conf/type/__dot_file/man.rst deleted file mode 100644 index ae65eb95..00000000 --- a/cdist/conf/type/__dot_file/man.rst +++ /dev/null @@ -1,71 +0,0 @@ -cdist-type__dot_file(7) -======================== - -NAME ----- - -cdist-type__dot_file - install file under user's home directory - -DESCRIPTION ------------ - -This type installs a file (=\ *__object_id*) under user's home directory, -providing a way to install per-user configuration files. File owner -and group is deduced from user, for who file is installed. - -Unlike regular __file type, you do not need make any assumptions, -where user's home directory is. - -REQUIRED PARAMETERS -------------------- - -user - User, for who file is installed - -OPTIONAL PARAMETERS -------------------- - -mode - forwarded to :strong:`__file` type - -state - forwarded to :strong:`__file` type - -source - forwarded to :strong:`__file` type - -MESSAGES --------- - -This type inherits all messages from :strong:`file` type, and do not add -any new. - -EXAMPLES --------- - -.. code-block:: sh - - # Install .forward file for user 'alice'. Since state is 'present', - # user is not meant to edit this file, all changes will be overridden. - # It is good idea to put warning about it in file itself. - __dot_file .forward --user alice --source "$__files/forward" - - # Install .muttrc for user 'bob', if not already present. User can safely - # edit it, his changes will not be overwritten. - __dot_file .muttrc --user bob --source "$__files/recommended_mutt_config" --state exists - - - # Install default xmonad config for user 'eve'. Parent directory is created automatically. - __dot_file .xmonad/xmonad.hs --user eve --state exists --source "$__files/xmonad.hs" - -SEE ALSO --------- - -**cdist-type__file**\ (7) - -COPYING -------- - -Copyright (C) 2015 Dmitry Bogatov. Free use of this software is granted -under the terms of the GNU General Public License version 3 or later -(GPLv3+). diff --git a/cdist/conf/type/__dot_file/manifest b/cdist/conf/type/__dot_file/manifest deleted file mode 100755 index 5e4957e5..00000000 --- a/cdist/conf/type/__dot_file/manifest +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -e -# -# Copyright (C) 2016 Bogatov Dmitry -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -set -eu - -user="$(cat "${__object}/parameter/user")" -home="$(cat "${__object}/explorer/home")" -primary_group="$(cat "${__object}/explorer/primary_group")" - -# Create parent directory. Type __directory has flag 'parents', but it -# will leave us with root-owned directory in user home, which is not -# acceptable. So we create parent directories one-by-one. XXX: maybe -# it should be fixed in '__directory'? -set -- -subpath=${__object_id} -while subpath="$(dirname "${subpath}")" ; do - [ "${subpath}" = . ] && break - set -- "${subpath}" "$@" -done -unset subpath - -export CDIST_ORDER_DEPENDENCY -for dir ; do - __directory "${home}/${dir}" \ - --group "${primary_group}" \ - --owner "${user}" -done - -# These parameters are forwarded to __file type. 'mode' is always -# present, since it have been given default. - -set -- -for p in state mode source ; do - if [ -f "${__object}/parameter/${p}" ] ; then - value="$(cat "${__object}/parameter/${p}")" - set -- "$@" "--${p}" "${value}" - unset value - fi -done - -# If source is `-' we can't just forward it, since stdin is already -# captured by __dot_file. So, we replace '-' with "$__object/stdin". -# -# It means that it is possible for __file to receive --source -# parameter twice, but, since latest wins, it is okay. -source="$(cat "${__object}/parameter/source")" -if [ "${source}" = "-" ] ; then - set -- "$@" --source "${__object}/stdin" -fi -unset source - -__file "${home}/${__object_id}" --owner "$user" --group "$primary_group" "$@" diff --git a/cdist/conf/type/__dot_file/parameter/default/mode b/cdist/conf/type/__dot_file/parameter/default/mode deleted file mode 100644 index e9f960cf..00000000 --- a/cdist/conf/type/__dot_file/parameter/default/mode +++ /dev/null @@ -1 +0,0 @@ -600 diff --git a/cdist/conf/type/__dot_file/parameter/optional b/cdist/conf/type/__dot_file/parameter/optional deleted file mode 100644 index ccab9fa6..00000000 --- a/cdist/conf/type/__dot_file/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -state -mode -source diff --git a/cdist/conf/type/__dot_file/parameter/required b/cdist/conf/type/__dot_file/parameter/required deleted file mode 100644 index 4eb8387f..00000000 --- a/cdist/conf/type/__dot_file/parameter/required +++ /dev/null @@ -1 +0,0 @@ -user diff --git a/cdist/conf/type/__file/explorer/stat b/cdist/conf/type/__file/explorer/stat deleted file mode 100755 index 13c1c208..00000000 --- a/cdist/conf/type/__file/explorer/stat +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -# nothing to work with, nothing we could do -[ -e "$destination" ] || exit 0 - -os=$("$__explorer/os") -case "$os" in - "freebsd"|"netbsd"|"openbsd"|"macosx") - stat -f "type: %HT -owner: %Du %Su -group: %Dg %Sg -mode: %Lp %Sp -size: %Dz -links: %Dl -" "$destination" | awk '/^type/ { print tolower($0); next; } { print; }' - ;; - alpine) - # busybox stat - stat -c "type: %F -owner: %u %U -group: %g %G -mode: %a %A -size: %s -links: %h -" "$destination" - ;; - solaris) - ls1="$( ls -ld "$destination" )" - ls2="$( ls -ldn "$destination" )" - - if [ -f "$__object/parameter/mode" ] - then mode_should="$( cat "$__object/parameter/mode" )" - fi - - # yes, it is ugly hack, but if you know better way... - if [ -z "$( find "$destination" -perm "$mode_should" )" ] - then octets=888 - else octets="$( echo "$mode_should" | sed 's/^0//' )" - fi - - case "$( echo "$ls1" | cut -c1-1 )" in - -) echo 'type: regular file' ;; - d) echo 'type: directory' ;; - esac - - echo "owner: $( echo "$ls2" \ - | awk '{print $3}' ) $( echo "$ls1" \ - | awk '{print $3}' )" - - echo "group: $( echo "$ls2" \ - | awk '{print $4}' ) $( echo "$ls1" \ - | awk '{print $4}' )" - - echo "mode: $octets $( echo "$ls1" | awk '{print $1}' )" - echo "size: $( echo "$ls1" | awk '{print $5}' )" - echo "links: $( echo "$ls1" | awk '{print $2}' )" - ;; - *) - stat --printf="type: %F -owner: %u %U -group: %g %G -mode: %a %A -size: %s -links: %h -" "$destination" - ;; -esac diff --git a/cdist/conf/type/__file/explorer/type b/cdist/conf/type/__file/explorer/type deleted file mode 100755 index e723047c..00000000 --- a/cdist/conf/type/__file/explorer/type +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -if [ ! -e "$destination" ]; then - echo none -elif [ -h "$destination" ]; then - echo symlink -elif [ -f "$destination" ]; then - echo file -elif [ -d "$destination" ]; then - echo directory -else - echo unknown -fi diff --git a/cdist/conf/type/__file/gencode-local b/cdist/conf/type/__file/gencode-local deleted file mode 100755 index fb9f9a92..00000000 --- a/cdist/conf/type/__file/gencode-local +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -e -# -# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" -state_should="$(cat "$__object/parameter/state")" -type="$(cat "$__object/explorer/type")" - -[ "$state_should" = "exists" ] && [ "$type" = "file" ] && exit 0 # nothing to do - -if [ "$state_should" = "pre-exists" ]; then - if [ -f "$__object/parameter/source" ]; then - echo "--source cannot be used with --state pre-exists" - exit 1 - fi - - if [ "$type" = "file" ]; then - exit 0 # nothing to do - else - echo "File \"$destination\" does not exist" - exit 1 - fi -fi - -upload_file= -create_file= -if [ "$state_should" = "present" ] || [ "$state_should" = "exists" ]; then - if [ ! -f "$__object/parameter/source" ]; then - remote_stat="$(cat "$__object/explorer/stat")" - if [ -z "$remote_stat" ]; then - create_file=1 - echo create >> "$__messages_out" - fi - else - source="$(cat "$__object/parameter/source")" - if [ "$source" = "-" ]; then - source="$__object/stdin" - fi - if [ ! -f "$source" ]; then - echo "Source \"$source\" does not exist." >&2 - exit 1 - else - if [ "$type" != "file" ]; then - # destination is not a regular file, upload source to replace it - upload_file=1 - else - local_cksum="$(cksum < "$source")" - remote_cksum="$(cat "$__object/explorer/cksum")" - if [ "$local_cksum" != "$remote_cksum" ]; then - # destination is a regular file, but not the right one - upload_file=1 - fi - fi - fi - fi - if [ "$create_file" ] || [ "$upload_file" ]; then - # tell gencode-remote that we created or uploaded a file and that it must - # set all attributes no matter what the explorer retreived - mkdir "$__object/files" - touch "$__object/files/set-attributes" - - # upload file to temp location - tempfile_template="${destination}.cdist.XXXXXXXXXX" - cat << DONE -destination_upload="\$($__remote_exec $__target_host "mktemp $tempfile_template")" -DONE - if [ "$upload_file" ]; then - echo upload >> "$__messages_out" - # IPv6 fix - if echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$' - then - my_target_host="[${__target_host}]" - else - my_target_host="${__target_host}" - fi - cat << DONE -$__remote_copy "$source" "${my_target_host}:\$destination_upload" -DONE - fi -# move uploaded file into place -cat << DONE -$__remote_exec $__target_host "rm -rf \"$destination\"; mv \"\$destination_upload\" \"$destination\"" -DONE - fi -fi diff --git a/cdist/conf/type/__file/gencode-remote b/cdist/conf/type/__file/gencode-remote deleted file mode 100755 index b04c471e..00000000 --- a/cdist/conf/type/__file/gencode-remote +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" -state_should="$(cat "$__object/parameter/state")" -type="$(cat "$__object/explorer/type")" -stat_file="$__object/explorer/stat" -fire_onchange='' - -get_current_value() { - if [ -s "$stat_file" ]; then - _name="$1" - _value="$2" - case "$_value" in - [0-9]*) - _index=2 - ;; - *) - _index=3 - ;; - esac - awk '/'"$_name"':/ { print $'$_index' }' "$stat_file" - unset _name _value _index - fi -} - -set_group() { - echo "chgrp '$1' '$destination'" - echo "chgrp '$1'" >> "$__messages_out" - fire_onchange=1 -} - -set_owner() { - echo "chown '$1' '$destination'" - echo "chown '$1'" >> "$__messages_out" - fire_onchange=1 -} - -set_mode() { - echo "chmod '$1' '$destination'" - echo "chmod '$1'" >> "$__messages_out" - fire_onchange=1 -} - -case "$state_should" in - present|exists|pre-exists) - # Note: Mode - needs to happen last as a chown/chgrp can alter mode by - # clearing S_ISUID and S_ISGID bits (see chown(2)) - for attribute in group owner mode; do - if [ -f "$__object/parameter/$attribute" ]; then - value_should="$(cat "$__object/parameter/$attribute")" - - # change 0xxx format to xxx format => same as stat returns - if [ "$attribute" = mode ]; then - value_should="$(echo "$value_should" | sed 's/^0\(...\)/\1/')" - fi - - value_is="$(get_current_value "$attribute" "$value_should")" - if [ -f "$__object/files/set-attributes" ] || [ "$value_should" != "$value_is" ]; then - "set_$attribute" "$value_should" - fi - fi - done - if [ -f "$__object/files/set-attributes" ]; then - # set-attributes is created if file is created or uploaded in gencode-local - fire_onchange=1 - fi - - ;; - - absent) - if [ "$type" = "file" ]; then - echo "rm -f '$destination'" - echo remove >> "$__messages_out" - fire_onchange=1 - fi - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac - -if [ -f "$__object/parameter/onchange" ]; then - if [ -n "$fire_onchange" ]; then - cat "$__object/parameter/onchange" - fi -fi diff --git a/cdist/conf/type/__file/man.rst b/cdist/conf/type/__file/man.rst deleted file mode 100644 index 7a0603bb..00000000 --- a/cdist/conf/type/__file/man.rst +++ /dev/null @@ -1,124 +0,0 @@ -cdist-type__file(7) -=================== - -NAME ----- -cdist-type__file - Manage files. - - -DESCRIPTION ------------ -This cdist type allows you to create files, remove files and set file -attributes on the target. - -If the file already exists on the target, then if it is a: - -regular file, and state is: - present - replace it with the source file if they are not equal - exists - do nothing -symlink - replace it with the source file -directory - replace it with the source file - -One exception is that when state is pre-exists, an error is raised if -the file would have been created otherwise (e.g. it is not present or -not a regular file). - -In any case, make sure that the file attributes are as specified. - - -REQUIRED PARAMETERS -------------------- -None. - -OPTIONAL PARAMETERS -------------------- -state - 'present', 'absent', 'exists' or 'pre-exists', defaults to 'present' where: - - present - the file is exactly the one from source - absent - the file does not exist - exists - the file from source but only if it doesn't already exist - pre-exists - check that the file exists and is a regular file, but do not - create or modify it - -group - Group to chgrp to. - -mode - Unix permissions, suitable for chmod. - -owner - User to chown to. - -source - If supplied, copy this file from the host running cdist to the target. - If not supplied, an empty file or directory will be created. - If source is '-' (dash), take what was written to stdin as the file content. - -onchange - The code to run if file is modified. - -MESSAGES --------- -chgrp - Changed group membership -chown - Changed owner -chmod - Changed mode -create - Empty file was created (no --source specified) -remove - File exists, but state is absent, file will be removed by generated code. -upload - File was uploaded - - -EXAMPLES --------- - -.. code-block:: sh - - # Create /etc/cdist-configured as an empty file - __file /etc/cdist-configured - # The same thing - __file /etc/cdist-configured --state present - # Use __file from another type - __file /etc/issue --source "$__type/files/archlinux" --state present - # Delete existing file - __file /etc/cdist-configured --state absent - # Supply some more settings - __file /etc/shadow --source "$__type/files/shadow" \ - --owner root --group shadow --mode 0640 \ - --state present - # Provide a default file, but let the user change it - __file /home/frodo/.bashrc --source "/etc/skel/.bashrc" \ - --state exists \ - --owner frodo --mode 0600 - # Check that the file is present, show an error when it is not - __file /etc/somefile --state pre-exists - # Take file content from stdin - __file /tmp/whatever --owner root --group root --mode 644 --source - << DONE - Here goes the content for /tmp/whatever - DONE - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2013 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__file/parameter/default/state b/cdist/conf/type/__file/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__file/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__file/parameter/optional b/cdist/conf/type/__file/parameter/optional deleted file mode 100644 index 9b98352c..00000000 --- a/cdist/conf/type/__file/parameter/optional +++ /dev/null @@ -1,6 +0,0 @@ -state -group -mode -owner -source -onchange diff --git a/cdist/conf/type/__filesystem/explorer/lsblk b/cdist/conf/type/__filesystem/explorer/lsblk deleted file mode 100644 index 9ae544ac..00000000 --- a/cdist/conf/type/__filesystem/explorer/lsblk +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# 2016 - 2016 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -os=$("$__explorer/os") - -if [ -f "$__object/parameter/device" ]; then - blkdev="$(cat "$__object/parameter/device")" -else - blkdev="$__object_id" -fi - -case "$os" in - centos|fedora|redhat|suse|gentoo) - if [ ! -x "$(command -v lsblk)" ]; then - echo "lsblk is required for __filesystem type" >&2 - exit 1 - else - #echo -n $(lsblk -nd -P -o NAME,FSTYPE,LABEL,MOUNTPOINT "$blkdev" 2>/dev/null) - lsblk -nd -P -o NAME,FSTYPE,LABEL,MOUNTPOINT "$blkdev" 2>/dev/null - fi - ;; - *) - echo "__filesystem type lacks implementation for os: $os" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__filesystem/gencode-remote b/cdist/conf/type/__filesystem/gencode-remote deleted file mode 100755 index 0bcdc13c..00000000 --- a/cdist/conf/type/__filesystem/gencode-remote +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -e -# -# 2016 - 2016 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -fstype="$(cat "$__object/parameter/fstype")" - -if [ -f "$__object/parameter/device" ]; then - mydev="$(cat "$__object/parameter/device")" -else - mydev="$__object_id" -fi - -label="$(cat "$__object/parameter/label")" -mkfsoptions="$(cat "$__object/parameter/mkfsoptions")" - - -if [ -f "$__object/parameter/force" ]; then - # create filesystem even an other filesystem is on disk or the label is not correct, use with caution ! - forcefs="true" -else - forcefs="false" -fi - - - -blkdev_devname="$(grep -P -o 'NAME="\K[^"]*' "$__object/explorer/lsblk")" -blkdev_fstype="$(grep -P -o 'FSTYPE="\K[^"]*' "$__object/explorer/lsblk")" -blkdev_label="$(grep -P -o 'LABEL="\K[^"]*' "$__object/explorer/lsblk")" -blkdev_mountpoint="$(grep -P -o 'MOUNTPOINT="\K[^"]*' "$__object/explorer/lsblk")" - -if [ -z "$blkdev_devname" ]; then - echo "Specified device $mydev not found on target system" >&2 - exit 1 -fi - -[ "$blkdev_label" = "$label" ] && [ "$blkdev_fstype" = "$fstype" ] && exit 0 - -if [ -n "$blkdev_mountpoint" ]; then - echo "Specified device $mydev is mounted on $blkdev_mountpoint, __filesystem does NOTHING with mountd devices" >&2 - exit 0 -fi - -if [ -n "$blkdev_fstype" ] && [ "$forcefs" != "true" ]; then - if [ "$blkdev_label" != "$label" ]; then - echo "Specified device $mydev has not the spezified label: $blkdev_label, but __filesystem does NOTHING in this case without the --force option" >&2 - exit 0 - fi - if [ "$blkdev_fstype" != "$fstype" ]; then - echo "Specified device $mydev has not the spezified filesystem: $blkdev_fstype, but __filesystem does NOTHING in this case without the --force option" >&2 - exit 0 - fi -fi - - -# ok, all conditions checked, we need to format the device, lets go -opts="$mkfsoptions" -if [ -n "$label" ]; then - opts="$opts -L '$label'" -fi - -case "$fstype" in - ext2|ext3|ext4) - if [ "$forcefs" = "true" ]; then - opts="$opts -F" - fi - echo "mkfs.$fstype $opts /dev/$blkdev_devname" - ;; - btrfs) - if [ "$forcefs" = "true" ]; then - opts="$opts --force" - fi - echo "mkfs.btrfs $opts /dev/$blkdev_devname" - ;; - xfs) - if [ "$forcefs" = "true" ]; then - opts="$opts -f" - fi - echo "mkfs.xfs $opts /dev/$blkdev_devname" - ;; - *) - echo "__filesystem type lacks implementation for filesystem: $fstype" >&2 - exit 1 - ;; -esac -echo "filesystem $fstype on $mydev : /dev/$blkdev_devname created" >> "$__messages_out" diff --git a/cdist/conf/type/__filesystem/man.rst b/cdist/conf/type/__filesystem/man.rst deleted file mode 100644 index 1c103ac9..00000000 --- a/cdist/conf/type/__filesystem/man.rst +++ /dev/null @@ -1,81 +0,0 @@ -cdist-type__filesystem(7) -========================= - -NAME ----- -cdist-type__filesystem - Create Filesystems. - - -DESCRIPTION ------------ -This cdist type allows you to create filesystems on devices. - -If the device is mounted on target, it refuses to do anything. - -If the device has a filesystem other then the specified and/or -the label is not correct, it only makes a new filesystem -if you have specified --force option. - - -REQUIRED PARAMETERS -------------------- -fstype - Filesystem type, for example 'ext3', 'btrfs' or 'xfs'. - - - -OPTIONAL PARAMETERS -------------------- -device - Blockdevice for filesystem, Defaults to object_id. - On linux, it can be any lsblk accepted device notation. - - | - | For example: - | /dev/sdx - | or /dev/disk/by-xxxx/xxx - | or /dev/mapper/xxxx - -label - Label which should be applied on the filesystem. - -mkfsoptions - Additional options which are inserted to the mkfs.xxx call. - - -BOOLEAN PARAMETERS ------------------- -force - Normally, this type does nothing if a filesystem is found - on the target device. If you specify force, it's formatted - if the filesystem type or label differs from parameters. - Warning: This option can easily lead into data loss! - -MESSAGES --------- -filesystem on \: created - Filesystem was created on - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensures that device /dev/sdb is formatted with xfs - __filesystem /dev/sdb --fstype xfs --label Testdisk1 - # The same thing with btrfs and disk spezified by pci path to disk 1:0 on vmware - __filesystem dev_sdb --fstype btrfs --device /dev/disk/by-path/pci-0000:0b:00.0-scsi-0:0:0:0 --label Testdisk2 - # Make sure that a multipath san device has a filesystem ... - __filesystem dev_sdb --fstype xfs --device /dev/mapper/360060e80432f560050202f22000023ff --label Testdisk3 - - -AUTHORS -------- -Daniel Heule - - -COPYING -------- -Copyright \(C) 2016 Daniel Heule. Free use of this software is -granted under the terms of the GNU General Public License version 3 or any later version (GPLv3+). diff --git a/cdist/conf/type/__filesystem/parameter/boolean b/cdist/conf/type/__filesystem/parameter/boolean deleted file mode 100644 index 14b33226..00000000 --- a/cdist/conf/type/__filesystem/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -force diff --git a/cdist/conf/type/__filesystem/parameter/default/label b/cdist/conf/type/__filesystem/parameter/default/label deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__filesystem/parameter/default/mkfsoptions b/cdist/conf/type/__filesystem/parameter/default/mkfsoptions deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__filesystem/parameter/optional b/cdist/conf/type/__filesystem/parameter/optional deleted file mode 100644 index 79dddc21..00000000 --- a/cdist/conf/type/__filesystem/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -device -label -mkfsoptions diff --git a/cdist/conf/type/__filesystem/parameter/required b/cdist/conf/type/__filesystem/parameter/required deleted file mode 100644 index 98f8b69f..00000000 --- a/cdist/conf/type/__filesystem/parameter/required +++ /dev/null @@ -1 +0,0 @@ -fstype diff --git a/cdist/conf/type/__firewalld_rule/explorer/rule b/cdist/conf/type/__firewalld_rule/explorer/rule deleted file mode 100644 index 0234e5b6..00000000 --- a/cdist/conf/type/__firewalld_rule/explorer/rule +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# -# 2015 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -protocol="$(cat "$__object/parameter/protocol")" -table="$(cat "$__object/parameter/table")" -chain="$(cat "$__object/parameter/chain")" -priority="$(cat "$__object/parameter/priority")" -rule="$(cat "$__object/parameter/rule")" - -if firewall-cmd --permanent --direct --query-rule "$protocol" "$table" "$chain" "$priority" "$rule" >/dev/null; then - echo present -else - echo absent -fi diff --git a/cdist/conf/type/__firewalld_rule/gencode-remote b/cdist/conf/type/__firewalld_rule/gencode-remote deleted file mode 100755 index bd6d13e5..00000000 --- a/cdist/conf/type/__firewalld_rule/gencode-remote +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -e -# -# 2015 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -state_should="$(cat "$__object/parameter/state")" -state_is="$(cat "$__object/explorer/rule")" - -[ "$state_is" = "$state_should" ] && exit 0 - -protocol="$(cat "$__object/parameter/protocol")" -table="$(cat "$__object/parameter/table")" -chain="$(cat "$__object/parameter/chain")" -priority="$(cat "$__object/parameter/priority")" -rule="$(cat "$__object/parameter/rule")" - -case "$state_should" in - present) - echo "firewall-cmd --quiet --permanent --direct --add-rule '$protocol' '$table' '$chain' '$priority' $rule" - echo "firewall-cmd --quiet --direct --add-rule '$protocol' '$table' '$chain' '$priority' $rule" - ;; - - absent) - echo "firewall-cmd --quiet --permanent --direct --remove-rule '$protocol' '$table' '$chain' '$priority' $rule" - echo "firewall-cmd --quiet --direct --remove-rule '$protocol' '$table' '$chain' '$priority' $rule" - ;; - *) - echo "Unknown state $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__firewalld_rule/man.rst b/cdist/conf/type/__firewalld_rule/man.rst deleted file mode 100644 index 5de5d15c..00000000 --- a/cdist/conf/type/__firewalld_rule/man.rst +++ /dev/null @@ -1,81 +0,0 @@ -cdist-type__firewalld_rule(7) -============================= - -NAME ----- -cdist-type__firewalld_rule - Configure firewalld rules - - -DESCRIPTION ------------ -This cdist type allows you to manage rules in firewalld -using the *direct* way (i.e. no zone support). - - -REQUIRED PARAMETERS -------------------- -rule - The rule to apply. Essentially an firewalld command - line without firewalld in front of it. -protocol - Either ipv4, ipv4 or eb. See firewall-cmd(1) -table - The table to use (like filter or nat). See firewall-cmd(1). -chain - The chain to use (like INPUT_direct or FORWARD_direct). See firewall-cmd(1). -priority - The priority to use (0 is topmost). See firewall-cmd(1). - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - - -EXAMPLES --------- - -.. code-block:: sh - - # Allow access from entrance.place4.ungleich.ch - __firewalld_rule entrance \ - --protocol ipv4 \ - --table filter \ - --chain INPUT_direct \ - --priority 0 \ - --rule '-s entrance.place4.ungleich.ch -j ACCEPT' - - # Allow forwarding of traffic from br0 - __firewalld_rule vm-forward --protocol ipv4 \ - --table filter \ - --chain FORWARD_direct \ - --priority 0 \ - --rule '-i br0 -j ACCEPT' - - # Ensure old rule is absent - warning, the rule part must stay the same! - __firewalld_rule vm-forward - --protocol ipv4 \ - --table filter \ - --chain FORWARD_direct \ - --priority 0 \ - --rule '-i br0 -j ACCEPT' \ - --state absent - - -SEE ALSO --------- -:strong:`cdist-type__iptables_rule`\ (7), :strong:`firewalld`\ (8) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2015 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__firewalld_rule/parameter/default/state b/cdist/conf/type/__firewalld_rule/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__firewalld_rule/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__firewalld_rule/parameter/required b/cdist/conf/type/__firewalld_rule/parameter/required deleted file mode 100644 index 58def7e4..00000000 --- a/cdist/conf/type/__firewalld_rule/parameter/required +++ /dev/null @@ -1,5 +0,0 @@ -chain -priority -protocol -rule -table diff --git a/cdist/conf/type/__firewalld_start/gencode-remote b/cdist/conf/type/__firewalld_start/gencode-remote deleted file mode 100755 index 3e767f68..00000000 --- a/cdist/conf/type/__firewalld_start/gencode-remote +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -e -# -# 2016 Darko Poljak(darko.poljak at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -startstate="$(cat "$__object/parameter/startstate")" -init=$(cat "$__global/explorer/init") - -os=$(cat "$__global/explorer/os") -os_version=$(cat "$__global/explorer/os_version") -name="firewalld" - -case "${startstate}" in - present) - cmd="start" - ;; - absent) - cmd="stop" - ;; - *) - echo "Unknown startstate: ${startstate}" >&2 - exit 1 - ;; -esac - -if [ "$init" = 'systemd' ]; then - # this handles ALL linux distros with systemd - # e.g. archlinux, gentoo in some cases, new RHEL and SLES versions - echo "systemctl \"$cmd\" \"$name\"" -else - case "$os" in - debian) - case "$os_version" in - [1-7]*) - echo "service \"$name\" \"$cmd\"" - ;; - 8*) - echo "systemctl \"$cmd\" \"$name\"" - ;; - *) - echo "Unsupported version $os_version of $os" >&2 - exit 1 - ;; - esac - ;; - - gentoo) - echo service \"$name\" \"$cmd\" - ;; - - amazon|scientific|centos|fedora|owl|redhat|suse) - echo service \"$name\" \"$cmd\" - ;; - - openwrt) - echo "/etc/init.d/\"$name\" \"$cmd\"" - ;; - - ubuntu) - echo "service \"$name\" \"$cmd\"" - ;; - - *) - echo "Unsupported os: $os" >&2 - exit 1 - ;; - esac -fi diff --git a/cdist/conf/type/__firewalld_start/man.rst b/cdist/conf/type/__firewalld_start/man.rst deleted file mode 100644 index 74199cd6..00000000 --- a/cdist/conf/type/__firewalld_start/man.rst +++ /dev/null @@ -1,53 +0,0 @@ -cdist-type__firewalld_start(7) -============================== - -NAME ----- -cdist-type__firewalld_start - start and enable firewalld - - -DESCRIPTION ------------ -This cdist type allows you to start and enable firewalld. - - -REQUIRED PARAMETERS -------------------- -None - -OPTIONAL PARAMETERS -------------------- -startstate - 'present' or 'absent', start/stop firewalld. Default is 'present'. -bootstate - 'present' or 'absent', enable/disable firewalld on boot. Default is 'present'. - - -EXAMPLES --------- - -.. code-block:: sh - - # start and enable firewalld - __firewalld_start - - # only enable firewalld to start on boot - __firewalld_start --startstate present --bootstate absent - - -SEE ALSO --------- -:strong:`firewalld`\ (8) - - -AUTHORS -------- -Darko Poljak - - -COPYING -------- -Copyright \(C) 2016 Darko Poljak. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__firewalld_start/manifest b/cdist/conf/type/__firewalld_start/manifest deleted file mode 100755 index 98caaad9..00000000 --- a/cdist/conf/type/__firewalld_start/manifest +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -e -# -# 2016 Darko Poljak (darko.poljak at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -bootstate="$(cat "$__object/parameter/bootstate")" - -__package firewalld -require="__package/firewalld" __start_on_boot firewalld --state "${bootstate}" diff --git a/cdist/conf/type/__firewalld_start/parameter/default/bootstate b/cdist/conf/type/__firewalld_start/parameter/default/bootstate deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__firewalld_start/parameter/default/bootstate +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__firewalld_start/parameter/default/startstate b/cdist/conf/type/__firewalld_start/parameter/default/startstate deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__firewalld_start/parameter/default/startstate +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__firewalld_start/parameter/optional b/cdist/conf/type/__firewalld_start/parameter/optional deleted file mode 100644 index 934c7d0d..00000000 --- a/cdist/conf/type/__firewalld_start/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -bootstate -startstate diff --git a/cdist/conf/type/__firewalld_start/singleton b/cdist/conf/type/__firewalld_start/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__git/explorer/group b/cdist/conf/type/__git/explorer/group deleted file mode 100644 index 3ddf9656..00000000 --- a/cdist/conf/type/__git/explorer/group +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -destination="/$__object_id/.git" - -stat --print "%G" "${destination}" 2>/dev/null || exit 0 diff --git a/cdist/conf/type/__git/explorer/owner b/cdist/conf/type/__git/explorer/owner deleted file mode 100644 index 4c3cd431..00000000 --- a/cdist/conf/type/__git/explorer/owner +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -destination="/$__object_id/.git" - -stat --print "%U" "${destination}" 2>/dev/null || exit 0 diff --git a/cdist/conf/type/__git/gencode-remote b/cdist/conf/type/__git/gencode-remote deleted file mode 100755 index ab22655f..00000000 --- a/cdist/conf/type/__git/gencode-remote +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -e -# -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -state_is=$(cat "$__object/explorer/state") -owner_is=$(cat "$__object/explorer/owner") -group_is=$(cat "$__object/explorer/group") - -state_should=$(cat "$__object/parameter/state") - -branch=$(cat "$__object/parameter/branch") - -source=$(cat "$__object/parameter/source") - -destination="/$__object_id" - -owner=$(cat "$__object/parameter/owner") -group=$(cat "$__object/parameter/group") -mode=$(cat "$__object/parameter/mode") - -[ -f "$__object/parameter/recursive" ] && recursive='--recurse-submodules' || recursive='' -[ -f "$__object/parameter/shallow" ] && shallow='--depth 1 --shallow-submodules' || shallow='' - -[ "$state_should" = "$state_is" ] \ - && [ "$owner" = "$owner_is" ] \ - && [ "$group" = "$group_is" ] \ - && [ -n "$mode" ] && exit 0 - -case $state_should in - present) - if [ "$state_should" != "$state_is" ]; then - echo git clone --quiet "$recursive" "$shallow" --branch "$branch" "$source" "$destination" - fi - if { [ -n "$owner" ] && [ "$owner_is" != "$owner" ]; } || \ - { [ -n "$group" ] && [ "$group_is" != "$group" ]; }; then - echo chown -R "${owner}:${group}" "$destination" - fi - if [ -n "$mode" ]; then - echo chmod -R "$mode" "$destination" - fi - ;; - - absent) - # Handled in manifest - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__git/man.rst b/cdist/conf/type/__git/man.rst deleted file mode 100644 index d3e15f25..00000000 --- a/cdist/conf/type/__git/man.rst +++ /dev/null @@ -1,66 +0,0 @@ -cdist-type__git(7) -================== - -NAME ----- -cdist-type__git - Get and or keep git repositories up-to-date - - -DESCRIPTION ------------ -This cdist type allows you to clone git repositories - - -REQUIRED PARAMETERS -------------------- -source - Specifies the git remote to clone from - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" - -branch - Create this branch by checking out the remote branch of this name - Default branch is "master" - -group - Group to chgrp to. - -mode - Unix permissions, suitable for chmod. - -owner - User to chown to. - -recursive - Passes the --recurse-submodules flag to git when cloning the repository. - -shallow - Sets --depth=1 and --shallow-submodules for cloning repositories with big history. - - -EXAMPLES --------- - -.. code-block:: sh - - __git /home/services/dokuwiki --source git://github.com/splitbrain/dokuwiki.git - - # Checkout cdist, stay on branch 2.1 - __git /home/nico/cdist --source git@code.ungleich.ch:ungleich-public/cdist.git --branch 2.1 - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__git/manifest b/cdist/conf/type/__git/manifest deleted file mode 100755 index 6fb870f4..00000000 --- a/cdist/conf/type/__git/manifest +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -e -# -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Ensure git is present -# - -__package git --state present - -state_should="$(cat "$__object/parameter/state")" -owner="$(cat "$__object/parameter/owner")" -group="$(cat "$__object/parameter/group")" -mode="$(cat "$__object/parameter/mode")" - -# Let __directory handle removal of git repos - -case "$state_should" in - present) - : - ;; - - absent) - __directory "$__object_id" --state absent \ - --owner "$owner" \ - --group "$group" \ - --mode "$mode" - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__git/parameter/boolean b/cdist/conf/type/__git/parameter/boolean deleted file mode 100644 index d600d4ca..00000000 --- a/cdist/conf/type/__git/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -recursive -shallow diff --git a/cdist/conf/type/__git/parameter/default/branch b/cdist/conf/type/__git/parameter/default/branch deleted file mode 100644 index 1f7391f9..00000000 --- a/cdist/conf/type/__git/parameter/default/branch +++ /dev/null @@ -1 +0,0 @@ -master diff --git a/cdist/conf/type/__git/parameter/default/group b/cdist/conf/type/__git/parameter/default/group deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__git/parameter/default/group +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__git/parameter/default/mode b/cdist/conf/type/__git/parameter/default/mode deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__git/parameter/default/mode +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__git/parameter/default/owner b/cdist/conf/type/__git/parameter/default/owner deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__git/parameter/default/owner +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__git/parameter/default/state b/cdist/conf/type/__git/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__git/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__git/parameter/optional b/cdist/conf/type/__git/parameter/optional deleted file mode 100644 index 3c409162..00000000 --- a/cdist/conf/type/__git/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -state -branch -group -owner -mode diff --git a/cdist/conf/type/__git/parameter/required b/cdist/conf/type/__git/parameter/required deleted file mode 100644 index 5a18cd2f..00000000 --- a/cdist/conf/type/__git/parameter/required +++ /dev/null @@ -1 +0,0 @@ -source diff --git a/cdist/conf/type/__go_get/explorer/go-executable b/cdist/conf/type/__go_get/explorer/go-executable deleted file mode 100755 index 87182282..00000000 --- a/cdist/conf/type/__go_get/explorer/go-executable +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 -[ -f /etc/environment ] && . /etc/environment -# shellcheck disable=SC1091 -[ -f /etc/profile ] && . /etc/profile -go version 2>/dev/null || true diff --git a/cdist/conf/type/__go_get/gencode-remote b/cdist/conf/type/__go_get/gencode-remote deleted file mode 100755 index 4c47a70e..00000000 --- a/cdist/conf/type/__go_get/gencode-remote +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -e - -package=$__object_id - -cat< - - -COPYING -------- -Copyright \(C) 2017 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__go_get/manifest b/cdist/conf/type/__go_get/manifest deleted file mode 100755 index a5cc4c80..00000000 --- a/cdist/conf/type/__go_get/manifest +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -e - -go_executable=$(cat "$__object/explorer/go-executable") -[ -z "$go_executable" ] && echo "__go_get: Cannot find go executable; make sure it is installed and in PATH" >&2 && exit 1 - -os=$(cat "$__global/explorer/os") -case $os in - debian|devuan|ubuntu) - __package build-essential - ;; - *) - echo "__go_get: Don't know how to install g++ on $os" >&2 - echo "__go_get: Send a pull request or contact to add support for $os." >&2 - exit 1 - ;; -esac - -__package git diff --git a/cdist/conf/type/__golang_from_vendor/gencode-remote b/cdist/conf/type/__golang_from_vendor/gencode-remote deleted file mode 100755 index 5200e9e3..00000000 --- a/cdist/conf/type/__golang_from_vendor/gencode-remote +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e - -version=$(cat "$__object/parameter/version") - -kernel_name=$(tr '[:upper:]' '[:lower:]' < "$__global/explorer/kernel_name") -machine=$(cat "$__global/explorer/machine") -case $machine in - x86_64|amd64) - arch=amd64 - ;; - x86) - arch=386 - ;; - *) - arch=$machine # at least try... - ;; -esac - -PACKAGE="go${version}.${kernel_name}-${arch}" -URL="https://storage.googleapis.com/golang/${PACKAGE}.tar.gz" -cat </dev/null)" = "xgo$version" ] && exit 0 # already there -wget --no-verbose "$URL" -O "/tmp/${PACKAGE}.tar.gz" -rm -rf /usr/local/go -tar -C /usr/local -xzf /tmp/${PACKAGE}.tar.gz -EOF diff --git a/cdist/conf/type/__golang_from_vendor/man.rst b/cdist/conf/type/__golang_from_vendor/man.rst deleted file mode 100644 index 2b4f065e..00000000 --- a/cdist/conf/type/__golang_from_vendor/man.rst +++ /dev/null @@ -1,48 +0,0 @@ -cdist-type__golang_from_vendor(7) -================================= - -NAME ----- -cdist-type__golang_from_vendor - Install any version of golang from golang.org - - -DESCRIPTION ------------ -This cdist type allows you to install golang from archives provided by https://golang.org/dl/. - -See https://golang.org/dl/ for the list of supported versions, operating systems and architectures. - -This is a singleton type. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -version - The golang version to install, defaults to 1.8.1 - - -EXAMPLES --------- - -.. code-block:: sh - - __golang_from_vendor --version 1.8.1 - - - -AUTHORS -------- -Kamila Součková - - -COPYING -------- -Copyright \(C) 2017 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__golang_from_vendor/manifest b/cdist/conf/type/__golang_from_vendor/manifest deleted file mode 100755 index ad39ddfb..00000000 --- a/cdist/conf/type/__golang_from_vendor/manifest +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -e - -# shellcheck disable=SC2016 -__line go_in_path --line 'export PATH=/usr/local/go/bin:$PATH' --file /etc/profile diff --git a/cdist/conf/type/__golang_from_vendor/parameter/default/version b/cdist/conf/type/__golang_from_vendor/parameter/default/version deleted file mode 100644 index a8fdfda1..00000000 --- a/cdist/conf/type/__golang_from_vendor/parameter/default/version +++ /dev/null @@ -1 +0,0 @@ -1.8.1 diff --git a/cdist/conf/type/__golang_from_vendor/singleton b/cdist/conf/type/__golang_from_vendor/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__grafana_dashboard/man.rst b/cdist/conf/type/__grafana_dashboard/man.rst deleted file mode 100644 index b3974028..00000000 --- a/cdist/conf/type/__grafana_dashboard/man.rst +++ /dev/null @@ -1,43 +0,0 @@ -cdist-type__grafana_dashboard(7) -================================ - -NAME ----- -cdist-type__grafana_dashboard - Install Grafana (https://grafana.com) - - -DESCRIPTION ------------ -This cdist type adds the Grafana repository, installs the grafana package, and sets the server to start on boot. - -This is a singleton type. - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __grafana_dashboard - - -AUTHORS -------- -Kamila Součková - - -COPYING -------- -Copyright \(C) 2017 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__grafana_dashboard/manifest b/cdist/conf/type/__grafana_dashboard/manifest deleted file mode 100755 index d145c4c3..00000000 --- a/cdist/conf/type/__grafana_dashboard/manifest +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -e - -os=$(cat "$__global/explorer/os") -os_version=$(cat "$__global/explorer/os_version") - -require="" -case $os in - debian|devuan) - case $os_version in - 8*|jessie) - # Differntation not needed anymore - apt_source_distribution=stable - ;; - 9*|ascii/ceres|ascii) - # Differntation not needed anymore - apt_source_distribution=stable - ;; - 10*) - # Differntation not needed anymore - apt_source_distribution=stable - ;; - *) - echo "Don't know how to install Grafana on $os $os_version. Send us a pull request!" >&2 - exit 1 - ;; - esac - - __apt_key_uri grafana \ - --name 'Grafana Release Signing Key' \ - --uri https://packages.grafana.com/gpg.key - - require="$require __apt_key_uri/grafana" __apt_source grafana \ - --uri https://packages.grafana.com/oss/deb \ - --distribution $apt_source_distribution \ - --component main - __package apt-transport-https - require="$require __apt_source/grafana" __apt_update_index - require="$require __package/apt-transport-https __apt_update_index" __package grafana - require="$require __package/grafana" __start_on_boot grafana-server - require="$require __start_on_boot/grafana-server" __process grafana-server --start "service grafana-server start" - ;; - *) - echo "Don't know how to install Grafana on $os. Send us a pull request!" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__grafana_dashboard/singleton b/cdist/conf/type/__grafana_dashboard/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__group/explorer/group b/cdist/conf/type/__group/explorer/group deleted file mode 100755 index dc673f61..00000000 --- a/cdist/conf/type/__group/explorer/group +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# -# 2011-2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Get an existing groups group entry. -# - -not_supported() { - echo "Your operating system ($("$__explorer/os")) is currently not supported." >&2 - echo "Cannot extract group information." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 -} - -name=$__object_id - -if command -v getent >/dev/null -then - getent group "$name" || true -elif [ -f /etc/group ] -then - grep "^${name}:" /etc/group || true -else - not_supported -fi diff --git a/cdist/conf/type/__group/explorer/gshadow b/cdist/conf/type/__group/explorer/gshadow deleted file mode 100755 index 05841d69..00000000 --- a/cdist/conf/type/__group/explorer/gshadow +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# 2011-2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Get an existing groups gshadow entry. -# - -name=$__object_id -os=$("$__explorer/os") - -not_supported() { - echo "Your operating system ($os) is currently not supported." >&2 - echo "Cannot extract group information." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 -} - -case $os in - "freebsd"|"netbsd") - echo "$os does not have getent gshadow" >&2 - exit 0 - ;; -esac - -if command -v getent >/dev/null -then - getent gshadow "$name" || true -elif [ -f /etc/gshadow ] -then - grep "^${name}:" /etc/gshadow || true -else - not_supported -fi diff --git a/cdist/conf/type/__group/gencode-remote b/cdist/conf/type/__group/gencode-remote deleted file mode 100755 index 6091c548..00000000 --- a/cdist/conf/type/__group/gencode-remote +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -e -# -# 2011-2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage groups. -# - -name="$__object_id" -os="$(cat "$__global/explorer/os")" -state="$(cat "$__object/parameter/state")" - - -# Use short option names for portability -shorten_property() { - case "$1" in - gid) echo " -g";; - password) echo " -p";; - system) echo " -r";; - esac -} - - -if [ "$state" = "present" ]; then - case "$os" in - freebsd) - supported_change_properties="gid" - ;; - *) - supported_change_properties="gid password" - ;; - esac - if grep -q "^${name}:" "$__object/explorer/group"; then - # change existing - for property in $supported_change_properties; do - if [ -f "$__object/parameter/$property" ]; then - new_value="$(cat "$__object/parameter/$property")" - unset current_value - case "$property" in - password) - current_value="$(awk -F: '{ print $2 }' "$__object/explorer/gshadow")" - ;; - gid) - current_value="$(awk -F: '{ print $3 }' "$__object/explorer/group")" - ;; - esac - if [ "$new_value" != "$current_value" ]; then - set -- "$@" "$(shorten_property "$property")" \'"$new_value"\' - echo "change $property $new_value $current_value" >> "$__messages_out" - fi - fi - done - if [ $# -gt 0 ]; then - if [ "$os" = "freebsd" ]; then - echo pw groupmod "$@" "$name" - else - echo groupmod "$@" "$name" - fi - echo mod >> "$__messages_out" - fi - else - # create new - for property in $supported_change_properties; do - if [ -f "$__object/parameter/$property" ]; then - new_value="$(cat "$__object/parameter/$property")" - if [ -z "$new_value" ]; then - # Boolean parameters have no value - set -- "$@" "$(shorten_property "$property")" - else - set -- "$@" "$(shorten_property "$property")" \'"$new_value"\' - fi - fi - done - if [ "$os" = "freebsd" ]; then - echo pw groupadd "$@" "$name" - else - echo groupadd "$@" "$name" - fi - fi -else - # delete existing - if grep -q "^${name}:" "$__object/explorer/group"; then - if [ "$os" = "freebsd" ]; then - echo pw groupdel "$name" - else - echo groupdel "$name" - fi - echo remove >> "$__messages_out" - fi -fi diff --git a/cdist/conf/type/__group/man.rst b/cdist/conf/type/__group/man.rst deleted file mode 100644 index 614f3d57..00000000 --- a/cdist/conf/type/__group/man.rst +++ /dev/null @@ -1,80 +0,0 @@ -cdist-type__group(7) -==================== - -NAME ----- -cdist-type__group - Manage groups - - -DESCRIPTION ------------ -This cdist type allows you to create or modify groups on the target. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - absent or present, defaults to present -gid - see groupmod(8) -password - see above - - -BOOLEAN PARAMETERS ------------------- -system - see groupadd(8), apply only on group creation - - -MESSAGES --------- -mod - group is modified -add - New group added -remove - group is removed -change - Changed group property from current_value to new_value -set - set property to new value, property was not set before - - -EXAMPLES --------- - -.. code-block:: sh - - # Create a group 'foobar' with operating system default settings - __group foobar - - # Remove the 'foobar' group - __group foobar --state absent - - # Create a system group 'myservice' with operating system default settings - __group myservice --system - - # Same but with a specific gid - __group foobar --gid 1234 - - # Same but with a gid and password - __group foobar --gid 1234 --password 'crypted-password-string' - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011-2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__group/parameter/boolean b/cdist/conf/type/__group/parameter/boolean deleted file mode 100644 index bec3a35e..00000000 --- a/cdist/conf/type/__group/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -system diff --git a/cdist/conf/type/__group/parameter/default/state b/cdist/conf/type/__group/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__group/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__hostname/explorer/max_len b/cdist/conf/type/__hostname/explorer/max_len deleted file mode 100644 index fb863949..00000000 --- a/cdist/conf/type/__hostname/explorer/max_len +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -e - -command -v getconf >/dev/null || exit 0 - -val=$(getconf HOST_NAME_MAX 2>/dev/null) || exit 0 - -if test -n "${val}" -a "${val}" != 'undefined' -then - echo "${val}" -fi diff --git a/cdist/conf/type/__hostname/gencode-remote b/cdist/conf/type/__hostname/gencode-remote deleted file mode 100755 index ae224611..00000000 --- a/cdist/conf/type/__hostname/gencode-remote +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/sh -e -# -# 2014-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -os=$(cat "$__global/explorer/os") -name_running=$(cat "$__global/explorer/hostname") -has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") - - -if test -s "$__object/parameter/name" -then - name_should=$(cat "$__object/parameter/name") -else - case $os - in - # RedHat-derivatives and BSDs - centos|fedora|redhat|scientific|freebsd|macosx|netbsd|openbsd) - # Hostname is FQDN - name_should="${__target_host}" - ;; - *) - # Hostname is only first component of FQDN - name_should="${__target_host%%.*}" - ;; - esac -fi - - -################################################################################ -# Check if the (running) hostname is already correct -# -test "$name_running" != "$name_should" || exit 0 - - -################################################################################ -# Setup hostname -# -echo 'changed' >>"$__messages_out" - -# Use the good old way to set the hostname. -case $os -in - alpine|debian|devuan|ubuntu) - echo 'hostname -F /etc/hostname' - ;; - archlinux) - echo 'command -v hostnamectl >/dev/null 2>&1' \ - "&& hostnamectl set-hostname '$name_should'" \ - "|| hostname '$name_should'" - ;; - centos|fedora|redhat|scientific|freebsd|netbsd|openbsd|gentoo|void) - echo "hostname '$name_should'" - ;; - macosx) - echo "scutil --set HostName '$name_should'" - ;; - solaris) - echo "uname -S '$name_should'" - ;; - slackware|suse|opensuse-leap) - # We do not read from /etc/HOSTNAME, because the running - # hostname is the first component only while the file contains - # the FQDN. - echo "hostname '$name_should'" - ;; - *) - # Fall back to set the hostname using hostnamectl, if available. - if test -n "$has_hostnamectl" - then - # Don't use hostnamectl as the primary means to set the hostname for - # systemd systems, because it cannot be trusted to work reliably and - # exit with non-zero when it fails (e.g. hostname too long, - # D-Bus failure, etc.). - - echo "hostnamectl set-hostname \"\$(cat /etc/hostname)\"" - echo "test \"\$(hostname)\" = \"\$(cat /etc/hostname)\"" \ - " || hostname -F /etc/hostname" - else - printf "echo 'Unsupported OS: %s' >&2\nexit 1\n" "$os" - fi - ;; -esac diff --git a/cdist/conf/type/__hostname/man.rst b/cdist/conf/type/__hostname/man.rst deleted file mode 100644 index 72aefbab..00000000 --- a/cdist/conf/type/__hostname/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__hostname(7) -======================= - -NAME ----- -cdist-type__hostname - Set the hostname - - -DESCRIPTION ------------ -Sets the hostname on various operating systems. - -**Tip:** For advice on choosing a hostname, see -`RFC 1178 `_. - - -REQUIRED PARAMETERS -------------------- -None. - -OPTIONAL PARAMETERS -------------------- -name - The hostname to set. Defaults to the first segment of __target_host - (${__target_host%%.*}) - - -MESSAGES --------- -changed - Changed the hostname - -EXAMPLES --------- - -.. code-block:: sh - - # take hostname from __target_host - __hostname - - # set hostname explicitly - __hostname --name some-static-hostname - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__hostname/manifest b/cdist/conf/type/__hostname/manifest deleted file mode 100755 index e1e356a0..00000000 --- a/cdist/conf/type/__hostname/manifest +++ /dev/null @@ -1,189 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -not_supported() { - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 -} - -set_hostname_systemd() { - echo "$1" | __file /etc/hostname --source - -} - -os=$(cat "$__global/explorer/os") -os_version=$(cat "$__global/explorer/os_version") -os_major=$(echo "$os_version" | grep -o '^[0-9][0-9]*' || true) - -max_len=$(cat "$__object/explorer/max_len") -has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl") - -if test -s "$__object/parameter/name" -then - name_should=$(cat "$__object/parameter/name") -else - case $os - in - # RedHat-derivatives and BSDs - centos|fedora|redhat|scientific|freebsd|netbsd|openbsd|slackware) - # Hostname is FQDN - name_should="${__target_host}" - ;; - suse|opensuse-leap) - # Classic SuSE stores the FQDN in /etc/HOSTNAME, while - # systemd does not. The running hostname is the first - # component in both cases. - # In versions before 15.x, the FQDN is stored in /etc/hostname. - if test -n "$has_hostnamectl" && test "$os_major" -ge 15 \ - && test "$os_major" -ne 42 - then - name_should="${__target_host%%.*}" - else - name_should="${__target_host}" - fi - ;; - *) - # Hostname is only first component of FQDN on all other systems. - name_should="${__target_host%%.*}" - ;; - esac -fi - -if test -n "$max_len" && test "$(printf '%s' "$name_should" | wc -c)" -gt "$max_len" -then - printf "Host name too long. Up to %u characters allowed.\n" "${max_len}" >&2 - exit 1 -fi - -case $os -in - alpine|debian|devuan|ubuntu|void) - echo "$name_should" | __file /etc/hostname --source - - ;; - archlinux) - if test -n "$has_hostnamectl" - then - set_hostname_systemd "$name_should" - else - echo 'Ancient ArchLinux variants without hostnamectl are not supported.' >&2 - exit 1 - # Only for ancient ArchLinux, write to /etc/rc.conf on pre-systemd - # versions. There are some versions which use /etc/hostname but not - # systemd. It is unclear which ones these are. - - # __key_value '/etc/rc.conf:HOSTNAME' \ - # --file /etc/rc.conf \ - # --delimiter '=' --exact_delimiter \ - # --key 'HOSTNAME' \ - # --value "\"$name_should\"" - fi - ;; - centos|fedora|redhat|scientific) - if test -z "$has_hostnamectl" - then - # Only write to /etc/sysconfig/network on non-systemd versions. - # On systemd-based versions this entry is ignored. - __key_value '/etc/sysconfig/network:HOSTNAME' \ - --file /etc/sysconfig/network \ - --delimiter '=' --exact_delimiter \ - --key HOSTNAME \ - --value "\"$name_should\"" - else - set_hostname_systemd "$name_should" - fi - ;; - gentoo) - # Only write to /etc/conf.d/hostname on OpenRC-based installations. - # On systemd use hostnamectl(1) in gencode-remote. - if test -z "$has_hostnamectl" - then - __key_value '/etc/conf.d/hostname:hostname' \ - --file /etc/conf.d/hostname \ - --delimiter '=' --exact_delimiter \ - --key 'hostname' \ - --value "\"$name_should\"" - else - set_hostname_systemd "$name_should" - fi - ;; - freebsd) - __key_value '/etc/rc.conf:hostname' \ - --file /etc/rc.conf \ - --delimiter '=' --exact_delimiter \ - --key 'hostname' \ - --value "\"$name_should\"" - ;; - macosx) - # handled in gencode-remote - : - ;; - netbsd) - __key_value '/etc/rc.conf:hostname' \ - --file /etc/rc.conf \ - --delimiter '=' --exact_delimiter \ - --key 'hostname' \ - --value "\"$name_should\"" - - # To avoid confusion, ensure that the hostname is only stored once. - __file /etc/myname --state absent - ;; - openbsd) - echo "$name_should" | __file /etc/myname --source - - ;; - slackware) - # We write the FQDN into /etc/HOSTNAME. But /etc/rc.d/rc.M will only - # read the first component from this file and set it as the running - # hostname on boot. - echo "$name_should" | __file /etc/HOSTNAME --source - - ;; - solaris) - echo "$name_should" | __file /etc/nodename --source - - ;; - suse|opensuse-leap) - # Modern SuSE provides /etc/HOSTNAME as a symlink for - # backwards-compatibility. Unfortunately it cannot be used - # here as __file does not follow the symlink. - # Therefore, we use the presence of the hostnamectl binary as - # an indication of which file to use. This unfortunately does - # not work correctly on openSUSE 12.x which provides - # hostnamectl but not /etc/hostname. - - if test -n "$has_hostnamectl" -a "$os_major" -gt 12 - then - hostname_file='/etc/hostname' - else - hostname_file='/etc/HOSTNAME' - fi - - echo "$name_should" | __file "$hostname_file" --source - - ;; - *) - # On other operating systems we fall back to systemd's - # hostnamectl if available… - if test -n "$has_hostnamectl" - then - set_hostname_systemd "$name_should" - else - not_supported - fi - ;; -esac diff --git a/cdist/conf/type/__hostname/singleton b/cdist/conf/type/__hostname/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__hosts/man.rst b/cdist/conf/type/__hosts/man.rst deleted file mode 100644 index bece7967..00000000 --- a/cdist/conf/type/__hosts/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__hosts(7) -==================== - -NAME ----- - -cdist-type__hosts - manage entries in /etc/hosts - -DESCRIPTION ------------ - -Add or remove entries from */etc/hosts* file. - -OPTIONAL PARAMETERS -------------------- - -state - If state is ``present``, make *object_id* resolve to *ip*. If - state is ``absent``, *object_id* will no longer resolve via - */etc/hosts*, if it was previously configured with this type. - Manually inserted entries are unaffected. - -ip - IP address, to which hostname (=\ *object_id*) must resolve. If - state is ``present``, this parameter is mandatory, if state is - ``absent``, this parameter is silently ignored. - -EXAMPLES --------- - -.. code-block:: sh - - # Now `funny' resolves to 192.168.1.76, - __hosts funny --ip 192.168.1.76 - # and `happy' no longer resolve via /etc/hosts if it was - # previously configured via __hosts. - __hosts happy --state absent - -SEE ALSO --------- - -:strong:`hosts`\ (5) - -AUTHORS -------- - -Dmitry Bogatov - - -COPYING -------- - -Copyright (C) 2015,2016 Dmitry Bogatov. Free use of this software is granted -under the terms of the GNU General Public License version 3 or later -(GPLv3+). diff --git a/cdist/conf/type/__hosts/manifest b/cdist/conf/type/__hosts/manifest deleted file mode 100755 index c536b83b..00000000 --- a/cdist/conf/type/__hosts/manifest +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e -# Copyright (C) 2015 Bogatov Dmitry -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -set -ue - -hostname="$__object_id" -state="$(cat "$__object/parameter/state")" -marker="# __hosts/$hostname" - -set -- "__hosts/$hostname" --file /etc/hosts --state "$state" - -if [ "$state" = absent ] ; then - __line "$@" --regex "$marker" -else - ip="$(cat "$__object/parameter/ip")" - __line "$@" --line "$ip $hostname $marker" -fi diff --git a/cdist/conf/type/__hosts/parameter/default/state b/cdist/conf/type/__hosts/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__hosts/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__hosts/parameter/optional b/cdist/conf/type/__hosts/parameter/optional deleted file mode 100644 index 411fc5d2..00000000 --- a/cdist/conf/type/__hosts/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -ip diff --git a/cdist/conf/type/__install_bootloader_grub/explorer/target_os b/cdist/conf/type/__install_bootloader_grub/explorer/target_os deleted file mode 100755 index f235710a..00000000 --- a/cdist/conf/type/__install_bootloader_grub/explorer/target_os +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# All os variables are lower case. Keep this file in alphabetical -# order by os variable except in cases where order otherwise matters, -# in which case keep the primary os and its derivatives together in -# a block (see Debian and Redhat examples below). -# - -chroot="$(cat "$__object/parameter/chroot")" - -if grep -q ^Amazon "$chroot/etc/system-release" 2>/dev/null; then - echo amazon - exit 0 -fi - -if [ -f "$chroot/etc/arch-release" ]; then - echo archlinux - exit 0 -fi - -if [ -f "$chroot/etc/cdist-preos" ]; then - echo cdist-preos - exit 0 -fi - -### Debian and derivatives -if grep -q ^DISTRIB_ID=Ubuntu "$chroot/etc/lsb-release" 2>/dev/null; then - echo ubuntu - exit 0 -fi - -if [ -f "$chroot/etc/debian_version" ]; then - echo debian - exit 0 -fi -### - -if [ -f "$chroot/etc/gentoo-release" ]; then - echo gentoo - exit 0 -fi - -if [ -f "$chroot/etc/openwrt_version" ]; then - echo openwrt - exit 0 -fi - -if [ -f "$chroot/etc/owl-release" ]; then - echo owl - exit 0 -fi - -### Redhat and derivatives -if grep -q ^CentOS "$chroot/etc/redhat-release" 2>/dev/null; then - echo centos - exit 0 -fi - -if grep -q ^Fedora "$chroot/etc/redhat-release" 2>/dev/null; then - echo fedora - exit 0 -fi - -if [ -f "$chroot/etc/redhat-release" ]; then - echo redhat - exit 0 -fi -### - -if [ -f "$chroot/etc/SuSE-release" ]; then - echo suse - exit 0 -fi - -if [ -f "$chroot/etc/slackware-version" ]; then - echo slackware - exit 0 -fi - -echo "Unknown OS" >&2 -exit 1 diff --git a/cdist/conf/type/__install_bootloader_grub/gencode-remote b/cdist/conf/type/__install_bootloader_grub/gencode-remote deleted file mode 100755 index 1caebbbf..00000000 --- a/cdist/conf/type/__install_bootloader_grub/gencode-remote +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh -e -# -# 2011-2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -device="$(cat "$__object/parameter/device" 2>/dev/null || echo "/$__object_id")" -chroot="$(cat "$__object/parameter/chroot")" - -target_os=$(cat "$__object/explorer/target_os") - -mkdir "$__object/files" -install_script="$__object/files/install_script" -# Link file descriptor #6 with stdout -exec 6>&1 -# Link stdout with $install_script -exec > "$install_script" - -# Generate script to install bootloader on distro -printf '#!/bin/sh -l\n' - -case "$target_os" in - ubuntu|debian) - if [ -s "$__global/explorer/efi" ]; then - # FIXME: untested. maybe also just run update-grub for EFI system? - printf 'grub-mkconfig --output=/boot/efi/EFI/%s/grub.cfg\n' "$target_os" - printf 'mkdir -p /boot/efi/EFI/BOOT\n' - printf 'cp /boot/efi/EFI/%s/grubx64.efi /boot/efi/EFI/BOOT/bootx64.efi' "$target_os" - else - printf 'grub-install "%s"\n' "$device" - printf 'update-grub\n' - fi - ;; - archlinux) - if [ -s "$__global/explorer/efi" ]; then - echo "EFI boot loader installation is on your operating system ($target_os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - else - printf 'grub-install "%s"\n' "$device" - # bugfix/workarround: rebuild initramfs - # FIXME: doesn't belong here - printf 'mkinitcpio -p linux\n' - printf 'grub-mkconfig -o /boot/grub/grub.cfg\n' - fi - ;; - centos) - if [ -s "$__global/explorer/efi" ]; then - printf 'grub2-mkconfig --output=/boot/efi/EFI/%s/grub.cfg\n' "$target_os" - printf 'mkdir -p /boot/efi/EFI/BOOT\n' - printf 'cp /boot/efi/EFI/%s/grubx64.efi /boot/efi/EFI/BOOT/bootx64.efi' "$target_os" - else - printf 'grub2-install "%s"\n' "$device" - printf 'grub2-mkconfig --output=/boot/grub2/grub.cfg\n' - fi - ;; - *) - echo "Your operating system ($target_os) is currently not supported by this type (${__type##*/})." >&2 - echo "If you can, please contribute an implementation for it." >&2 - exit 1 - ;; -esac -# Restore stdout and close file descriptor #6. -exec 1>&6 6>&- - - -cat << DONE -# Ensure /tmp exists -[ -d "${chroot}/tmp" ] || mkdir -m 1777 "${chroot}/tmp" -# Generate script to run in chroot -script=\$(mktemp "${chroot}/tmp/${__type##*/}.XXXXXXXXXX") -cat > \$script << script_DONE -$(cat "$install_script") -script_DONE - -# Make script executable -chmod +x "\$script" - -# Run script in chroot -relative_script="\${script#$chroot}" -chroot "$chroot" "\$relative_script" -rm -rf \$script -DONE diff --git a/cdist/conf/type/__install_bootloader_grub/install b/cdist/conf/type/__install_bootloader_grub/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_bootloader_grub/man.rst b/cdist/conf/type/__install_bootloader_grub/man.rst deleted file mode 100644 index 625db1d2..00000000 --- a/cdist/conf/type/__install_bootloader_grub/man.rst +++ /dev/null @@ -1,48 +0,0 @@ -cdist-type__install_bootloader_grub(7) -====================================== - -NAME ----- -cdist-type__install_bootloader_grub - install grub2 bootloader on given disk - - -DESCRIPTION ------------ -This cdist type allows you to install grub2 bootloader on given disk. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -device - The device to install grub to. Defaults to object_id - -chroot - where to chroot before running grub-install. Defaults to /target. - - -EXAMPLES --------- - -.. code-block:: sh - - __install_bootloader_grub /dev/sda - - __install_bootloader_grub /dev/sda --chroot /mnt/foobar - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_bootloader_grub/parameter/default/chroot b/cdist/conf/type/__install_bootloader_grub/parameter/default/chroot deleted file mode 100644 index ea8c4bf7..00000000 --- a/cdist/conf/type/__install_bootloader_grub/parameter/default/chroot +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/cdist/conf/type/__install_bootloader_grub/parameter/optional b/cdist/conf/type/__install_bootloader_grub/parameter/optional deleted file mode 100644 index 0bd1ce46..00000000 --- a/cdist/conf/type/__install_bootloader_grub/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -device -chroot diff --git a/cdist/conf/type/__install_chroot_mount/gencode-local b/cdist/conf/type/__install_chroot_mount/gencode-local deleted file mode 120000 index 68dcbd6a..00000000 --- a/cdist/conf/type/__install_chroot_mount/gencode-local +++ /dev/null @@ -1 +0,0 @@ -../__chroot_mount/gencode-local \ No newline at end of file diff --git a/cdist/conf/type/__install_chroot_mount/gencode-remote b/cdist/conf/type/__install_chroot_mount/gencode-remote deleted file mode 120000 index b1a5485e..00000000 --- a/cdist/conf/type/__install_chroot_mount/gencode-remote +++ /dev/null @@ -1 +0,0 @@ -../__chroot_mount/gencode-remote \ No newline at end of file diff --git a/cdist/conf/type/__install_chroot_mount/install b/cdist/conf/type/__install_chroot_mount/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_chroot_mount/man.rst b/cdist/conf/type/__install_chroot_mount/man.rst deleted file mode 100644 index 4054c4c4..00000000 --- a/cdist/conf/type/__install_chroot_mount/man.rst +++ /dev/null @@ -1,42 +0,0 @@ -cdist-type__install_chroot_mount(7) -=================================== - -NAME ----- -cdist-type__install_chroot_mount - mount a chroot with install command - - -DESCRIPTION ------------ -Mount and prepare a chroot for running commands within it. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -None - - -EXAMPLES --------- - -.. code-block:: sh - - __install_chroot_mount /path/to/chroot - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_chroot_mount/parameter b/cdist/conf/type/__install_chroot_mount/parameter deleted file mode 120000 index 5b5c9e20..00000000 --- a/cdist/conf/type/__install_chroot_mount/parameter +++ /dev/null @@ -1 +0,0 @@ -../__chroot_mount/parameter \ No newline at end of file diff --git a/cdist/conf/type/__install_chroot_umount/gencode-remote b/cdist/conf/type/__install_chroot_umount/gencode-remote deleted file mode 120000 index f2bd2681..00000000 --- a/cdist/conf/type/__install_chroot_umount/gencode-remote +++ /dev/null @@ -1 +0,0 @@ -../__chroot_umount/gencode-remote \ No newline at end of file diff --git a/cdist/conf/type/__install_chroot_umount/install b/cdist/conf/type/__install_chroot_umount/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_chroot_umount/man.rst b/cdist/conf/type/__install_chroot_umount/man.rst deleted file mode 100644 index 2e020c01..00000000 --- a/cdist/conf/type/__install_chroot_umount/man.rst +++ /dev/null @@ -1,47 +0,0 @@ -cdist-type__install_chroot_umount(7) -==================================== - -NAME ----- -cdist-type__install_chroot_umount - unmount a chroot mounted by __install_chroot_mount - - -DESCRIPTION ------------ -Undo what __install_chroot_mount did. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -None - - -EXAMPLES --------- - -.. code-block:: sh - - __install_chroot_umount /path/to/chroot - - -SEE ALSO --------- -:strong:`cdist-type__install_chroot_mount`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_chroot_umount/manifest b/cdist/conf/type/__install_chroot_umount/manifest deleted file mode 120000 index f17af67a..00000000 --- a/cdist/conf/type/__install_chroot_umount/manifest +++ /dev/null @@ -1 +0,0 @@ -../__chroot_umount/manifest \ No newline at end of file diff --git a/cdist/conf/type/__install_chroot_umount/parameter b/cdist/conf/type/__install_chroot_umount/parameter deleted file mode 120000 index 4148bcd0..00000000 --- a/cdist/conf/type/__install_chroot_umount/parameter +++ /dev/null @@ -1 +0,0 @@ -../__chroot_umount/parameter \ No newline at end of file diff --git a/cdist/conf/type/__install_config/files/remote/copy b/cdist/conf/type/__install_config/files/remote/copy deleted file mode 100755 index fa7fa9b7..00000000 --- a/cdist/conf/type/__install_config/files/remote/copy +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -e -# -# 2011-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# __remote_copy script to run cdist against a chroot on a remote host via ssh. -# -# Usage: -# __remote_copy="/path/to/this/script /path/to/your/chroot" cdist config target-id -# - -log() { - #echo "$@" | logger -t "__install_config copy" - : -} - -chroot="$1"; shift -target_host="$__target_host" - -# postfix target_host with chroot location -code="$(echo "$@" | sed "s|$target_host:|$target_host:$chroot|g")" - -log "target_host: $target_host" -log "chroot: $chroot" -log "@: $*" -log "code: $code" - -# copy files into chroot -# __default_remote_copy and code should be split -# shellcheck disable=SC2086 -$__default_remote_copy $code - -log "-----" diff --git a/cdist/conf/type/__install_config/files/remote/exec b/cdist/conf/type/__install_config/files/remote/exec deleted file mode 100755 index c2057ebf..00000000 --- a/cdist/conf/type/__install_config/files/remote/exec +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2011-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# __remote_exec script to run cdist against a chroot on a remote host via ssh. -# -# Usage: -# __remote_exec="/path/to/this/script /path/to/your/chroot" cdist config target-id -# - -log() { - #echo "$@" | logger -t "__install_config exec" - : -} - -chroot="$1"; shift -target_host="$__target_host" -# In exec mode the first argument is the __target_host which we already got from env. Get rid of it. -shift - -# escape ' with '"'"' -code="$(echo "$@" | sed -e "s/'/'\"'\"'/g")" -# shellcheck disable=SC2089 -code="chroot $chroot sh -e -c '$code'" - -log "target_host: $target_host" -log "chroot: $chroot" -log "@: $*" -log "code: $code" - -# Run the code -# __default_remote_exec and code should be split -# shellcheck disable=SC2086,SC2090 -$__default_remote_exec "$target_host" $code - -log "-----" diff --git a/cdist/conf/type/__install_config/gencode-local b/cdist/conf/type/__install_config/gencode-local deleted file mode 100755 index dd4f2a78..00000000 --- a/cdist/conf/type/__install_config/gencode-local +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -e -# -# 2011-2018 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -chroot="$(cat "$__object/parameter/chroot")" -remote_exec="$__type/files/remote/exec" -remote_copy="$__type/files/remote/copy" - -cat << DONE -export __cdist_install_config=yes -export __cdist_log_level=$__cdist_log_level -export __default_remote_exec="$__remote_exec" -export __default_remote_copy="$__remote_copy" -cdist config \ - --remote-exec="$remote_exec $chroot" \ - --remote-copy="$remote_copy $chroot" \ - $__target_host -DONE - diff --git a/cdist/conf/type/__install_config/install b/cdist/conf/type/__install_config/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_config/man.rst b/cdist/conf/type/__install_config/man.rst deleted file mode 100644 index 0034e85d..00000000 --- a/cdist/conf/type/__install_config/man.rst +++ /dev/null @@ -1,47 +0,0 @@ -cdist-type__install_config(7) -============================= - -NAME ----- -cdist-type__install_config - run cdist config as part of the installation - - -DESCRIPTION ------------ -This cdist type allows you to run cdist config as part of the installation. -It does this by using a custom __remote_{copy,exec} prefix which runs -cdist config against the /target chroot on the remote host. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -chroot - where to chroot before running grub-install. Defaults to /target. - - -EXAMPLES --------- - -.. code-block:: sh - - __install_config - - __install_config --chroot /mnt/somewhere - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_config/parameter/default/chroot b/cdist/conf/type/__install_config/parameter/default/chroot deleted file mode 100644 index ea8c4bf7..00000000 --- a/cdist/conf/type/__install_config/parameter/default/chroot +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/cdist/conf/type/__install_config/parameter/optional b/cdist/conf/type/__install_config/parameter/optional deleted file mode 100644 index fa32393d..00000000 --- a/cdist/conf/type/__install_config/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -chroot diff --git a/cdist/conf/type/__install_config/singleton b/cdist/conf/type/__install_config/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_coreos/gencode-remote b/cdist/conf/type/__install_coreos/gencode-remote deleted file mode 100755 index f550b5a5..00000000 --- a/cdist/conf/type/__install_coreos/gencode-remote +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -e - -device=$(cat "${__object:?}/parameter/device") -ignition=$(cat "${__object}/parameter/ignition") - -cat < "\${ignition_file}" << eof -$(base64 "${ignition}") -eof - -coreos-install -d "${device}" \ - \$(if [ -s "\${ignition_file}" ]; then - printf -- "-i \${ignition_file}\\n" - fi) - -rm "\${ignition_file}" -EOF diff --git a/cdist/conf/type/__install_coreos/install b/cdist/conf/type/__install_coreos/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_coreos/man.rst b/cdist/conf/type/__install_coreos/man.rst deleted file mode 100644 index 314f9f2a..00000000 --- a/cdist/conf/type/__install_coreos/man.rst +++ /dev/null @@ -1,50 +0,0 @@ -cdist-type__install_coreos(7) -============================= - -NAME ----- - -cdist-type__install_coreos - Install CoreOS - -DESCRIPTION ------------ - -This type installs CoreOS to a given device using coreos-install_, which is -present in CoreOS ISO by default. - -.. _coreos-install: https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install - -REQUIRED PARAMETERS -------------------- - -device - A device CoreOS will be installed to. - -OPTIONAL PARAMETERS -------------------- - -ignition - Path to ignition config. - -EXAMPLES --------- - -.. code-block:: sh - - __install_coreos \ - --device /dev/sda \ - --ignition ignition.json - - -AUTHORS -------- - -Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2018 Ľubomír Kučera. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_coreos/parameter/default/ignition b/cdist/conf/type/__install_coreos/parameter/default/ignition deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_coreos/parameter/optional b/cdist/conf/type/__install_coreos/parameter/optional deleted file mode 100644 index df284caa..00000000 --- a/cdist/conf/type/__install_coreos/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -ignition diff --git a/cdist/conf/type/__install_coreos/parameter/required b/cdist/conf/type/__install_coreos/parameter/required deleted file mode 100644 index f89ee6a8..00000000 --- a/cdist/conf/type/__install_coreos/parameter/required +++ /dev/null @@ -1 +0,0 @@ -device diff --git a/cdist/conf/type/__install_coreos/singleton b/cdist/conf/type/__install_coreos/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_directory/explorer b/cdist/conf/type/__install_directory/explorer deleted file mode 120000 index ba2591e1..00000000 --- a/cdist/conf/type/__install_directory/explorer +++ /dev/null @@ -1 +0,0 @@ -../__directory/explorer \ No newline at end of file diff --git a/cdist/conf/type/__install_directory/gencode-remote b/cdist/conf/type/__install_directory/gencode-remote deleted file mode 120000 index c86d61c9..00000000 --- a/cdist/conf/type/__install_directory/gencode-remote +++ /dev/null @@ -1 +0,0 @@ -../__directory/gencode-remote \ No newline at end of file diff --git a/cdist/conf/type/__install_directory/install b/cdist/conf/type/__install_directory/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_directory/man.rst b/cdist/conf/type/__install_directory/man.rst deleted file mode 100644 index c402cbad..00000000 --- a/cdist/conf/type/__install_directory/man.rst +++ /dev/null @@ -1,101 +0,0 @@ -cdist-type__install_directory(7) -================================ - -NAME ----- -cdist-type__install_directory - Manage a directory with install command - - -DESCRIPTION ------------ -This cdist type allows you to create or remove directories on the target. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - -group - Group to chgrp to. - -mode - Unix permissions, suitable for chmod. - -owner - User to chown to. - - -BOOLEAN PARAMETERS ------------------- -parents - Whether to create parents as well (mkdir -p behaviour). - Warning: all intermediate directory permissions default - to whatever mkdir -p does. - - Usually this means root:root, 0700. - -recursive - If supplied the chgrp and chown call will run recursively. - This does *not* influence the behaviour of chmod. - -MESSAGES --------- -chgrp - Changed group membership -chown - Changed owner -chmod - Changed mode -create - Empty directory was created -remove - Directory exists, but state is absent, directory will be removed by generated code. -remove non directory - Something other than a directory with the same name exists and was removed prior to create. - - -EXAMPLES --------- - -.. code-block:: sh - - # A silly example - __install_directory /tmp/foobar - - # Remove a directory - __install_directory /tmp/foobar --state absent - - # Ensure /etc exists correctly - __install_directory /etc --owner root --group root --mode 0755 - - # Create nfs service directory, including parents - __install_directory /home/services/nfs --parents - - # Change permissions recursively - __install_directory /home/services --recursive --owner root --group root - - # Setup a temp directory - __install_directory /local --mode 1777 - - # Take it all - __install_directory /home/services/kvm --recursive --parents \ - --owner root --group root --mode 0755 --state present - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_directory/parameter b/cdist/conf/type/__install_directory/parameter deleted file mode 120000 index e23d9672..00000000 --- a/cdist/conf/type/__install_directory/parameter +++ /dev/null @@ -1 +0,0 @@ -../__directory/parameter \ No newline at end of file diff --git a/cdist/conf/type/__install_file/explorer b/cdist/conf/type/__install_file/explorer deleted file mode 120000 index 8479ee44..00000000 --- a/cdist/conf/type/__install_file/explorer +++ /dev/null @@ -1 +0,0 @@ -../__file/explorer \ No newline at end of file diff --git a/cdist/conf/type/__install_file/gencode-local b/cdist/conf/type/__install_file/gencode-local deleted file mode 120000 index 9ce4e805..00000000 --- a/cdist/conf/type/__install_file/gencode-local +++ /dev/null @@ -1 +0,0 @@ -../__file/gencode-local \ No newline at end of file diff --git a/cdist/conf/type/__install_file/gencode-remote b/cdist/conf/type/__install_file/gencode-remote deleted file mode 120000 index f390bba4..00000000 --- a/cdist/conf/type/__install_file/gencode-remote +++ /dev/null @@ -1 +0,0 @@ -../__file/gencode-remote \ No newline at end of file diff --git a/cdist/conf/type/__install_file/install b/cdist/conf/type/__install_file/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_file/man.rst b/cdist/conf/type/__install_file/man.rst deleted file mode 100644 index 977ed77c..00000000 --- a/cdist/conf/type/__install_file/man.rst +++ /dev/null @@ -1,124 +0,0 @@ -cdist-type__install_file(7) -=========================== - -NAME ----- -cdist-type__install_file - Manage files with install command. - - -DESCRIPTION ------------ -This cdist type allows you to create files, remove files and set file -attributes on the target. - -If the file already exists on the target, then if it is a: - -regular file, and state is: - present - replace it with the source file if they are not equal - exists - do nothing -symlink - replace it with the source file -directory - replace it with the source file - -One exception is that when state is pre-exists, an error is raised if -the file would have been created otherwise (e.g. it is not present or -not a regular file). - -In any case, make sure that the file attributes are as specified. - - -REQUIRED PARAMETERS -------------------- -None. - -OPTIONAL PARAMETERS -------------------- -state - 'present', 'absent', 'exists' or 'pre-exists', defaults to 'present' where: - - present - the file is exactly the one from source - absent - the file does not exist - exists - the file from source but only if it doesn't already exist - pre-exists - check that the file exists and is a regular file, but do not - create or modify it - -group - Group to chgrp to. - -mode - Unix permissions, suitable for chmod. - -owner - User to chown to. - -source - If supplied, copy this file from the host running cdist to the target. - If not supplied, an empty file or directory will be created. - If source is '-' (dash), take what was written to stdin as the file content. - -onchange - The code to run if file is modified. - -MESSAGES --------- -chgrp - Changed group membership -chown - Changed owner -chmod - Changed mode -create - Empty file was created (no --source specified) -remove - File exists, but state is absent, file will be removed by generated code. -upload - File was uploaded - - -EXAMPLES --------- - -.. code-block:: sh - - # Create /etc/cdist-configured as an empty file - __install_file /etc/cdist-configured - # The same thing - __install_file /etc/cdist-configured --state present - # Use __file from another type - __install_file /etc/issue --source "$__type/files/archlinux" --state present - # Delete existing file - __install_file /etc/cdist-configured --state absent - # Supply some more settings - __install_file /etc/shadow --source "$__type/files/shadow" \ - --owner root --group shadow --mode 0640 \ - --state present - # Provide a default file, but let the user change it - __install_file /home/frodo/.bashrc --source "/etc/skel/.bashrc" \ - --state exists \ - --owner frodo --mode 0600 - # Check that the file is present, show an error when it is not - __install_file /etc/somefile --state pre-exists - # Take file content from stdin - __install_file /tmp/whatever --owner root --group root --mode 644 --source - << DONE - Here goes the content for /tmp/whatever - DONE - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2013 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_file/parameter b/cdist/conf/type/__install_file/parameter deleted file mode 120000 index e5099e86..00000000 --- a/cdist/conf/type/__install_file/parameter +++ /dev/null @@ -1 +0,0 @@ -../__file/parameter \ No newline at end of file diff --git a/cdist/conf/type/__install_fstab/install b/cdist/conf/type/__install_fstab/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_fstab/man.rst b/cdist/conf/type/__install_fstab/man.rst deleted file mode 100644 index 5562c139..00000000 --- a/cdist/conf/type/__install_fstab/man.rst +++ /dev/null @@ -1,53 +0,0 @@ -cdist-type__install_fstab(7) -============================ - -NAME ----- -cdist-type__install_fstab - generate /etc/fstab during installation - - -DESCRIPTION ------------ -Uses __install_generate_fstab to generate a /etc/fstab file and uploads it -to the target machine at ${prefix}/etc/fstab. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -prefix - The prefix under which to generate the /etc/fstab file. - Defaults to /target. - - -EXAMPLES --------- - -.. code-block:: sh - - __install_fstab - - __install_fstab --prefix /mnt/target - - -SEE ALSO --------- -:strong:`cdist-type__install_generate_fstab`\ (7), -:strong:`cdist-type__install_mount`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_fstab/manifest b/cdist/conf/type/__install_fstab/manifest deleted file mode 100755 index c5d24f3c..00000000 --- a/cdist/conf/type/__install_fstab/manifest +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -prefix="$(cat "$__object/parameter/prefix" 2>/dev/null || echo "/target")" - -[ -d "$__object/files" ] || mkdir "$__object/files" -__install_generate_fstab --uuid --destination "$__object/files/fstab" -require="__install_generate_fstab" \ - __install_file "${prefix}/etc/fstab" --source "$__object/files/fstab" \ - --mode 644 \ - --owner root \ - --group root diff --git a/cdist/conf/type/__install_fstab/singleton b/cdist/conf/type/__install_fstab/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_generate_fstab/files/fstab.header b/cdist/conf/type/__install_generate_fstab/files/fstab.header deleted file mode 100644 index 7653cc78..00000000 --- a/cdist/conf/type/__install_generate_fstab/files/fstab.header +++ /dev/null @@ -1 +0,0 @@ -# Generated by cdist __install_generate_fstab diff --git a/cdist/conf/type/__install_generate_fstab/gencode-local b/cdist/conf/type/__install_generate_fstab/gencode-local deleted file mode 100755 index 80455aaa..00000000 --- a/cdist/conf/type/__install_generate_fstab/gencode-local +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="$(cat "$__object/parameter/destination")" -cat "$__type/files/fstab.header" > "$destination" - -mkdir "$__object/files" -# get current UUID's from target_host -$__remote_exec "$__target_host" blkid > "$__object/files/blkid" - -find "$__global/object/__install_mount" -type d -name "$__cdist_object_marker" | -while IFS= read -r object -do - device="$(cat "$object/parameter/device")" - dir="$(cat "$object/parameter/dir")" - type="$(cat "$object/parameter/type")" - if [ -f "$object/parameter/options" ]; then - options="$(cat "$object/parameter/options")" - else - options="defaults" - fi - dump=0 - case "$type" in - swap) - pass=0 - dir="$type" - ;; - tmpfs) - pass=0 - ;; - bind) - pass=0 - type=none - options="bind,$options" - ;; - *) - pass=1 - ;; - esac - if [ -f "$__object/parameter/uuid" ]; then - uuid="$(grep -w "$device" "$__object/files/blkid" | awk '{print $2}')" - if [ -n "$uuid" ]; then - echo "# $dir was on $device during installation" >> "$destination" - device="$uuid" - fi - fi - echo "$device $dir $type $options $dump $pass" >> "$destination" -done diff --git a/cdist/conf/type/__install_generate_fstab/install b/cdist/conf/type/__install_generate_fstab/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_generate_fstab/man.rst b/cdist/conf/type/__install_generate_fstab/man.rst deleted file mode 100644 index b38f8876..00000000 --- a/cdist/conf/type/__install_generate_fstab/man.rst +++ /dev/null @@ -1,53 +0,0 @@ -cdist-type__install_generate_fstab(7) -===================================== - -NAME ----- -cdist-type__install_generate_fstab - generate /etc/fstab during installation - - -DESCRIPTION ------------ -Generates a /etc/fstab file from information retrieved from -__install_mount definitions. - - -REQUIRED PARAMETERS -------------------- -destination - The path where to store the generated fstab file. - Note that this is a path on the server, where cdist is running, not the target host. - - -OPTIONAL PARAMETERS -------------------- -None - - -BOOLEAN PARAMETERS -------------------- -uuid - use UUID instead of device in fstab - - -EXAMPLES --------- - -.. code-block:: sh - - __install_generate_fstab --destination /path/where/you/want/fstab - - __install_generate_fstab --uuid --destination /path/where/you/want/fstab - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_generate_fstab/parameter/boolean b/cdist/conf/type/__install_generate_fstab/parameter/boolean deleted file mode 100644 index 43ab6159..00000000 --- a/cdist/conf/type/__install_generate_fstab/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -uuid diff --git a/cdist/conf/type/__install_generate_fstab/parameter/required b/cdist/conf/type/__install_generate_fstab/parameter/required deleted file mode 100644 index ac459b09..00000000 --- a/cdist/conf/type/__install_generate_fstab/parameter/required +++ /dev/null @@ -1 +0,0 @@ -destination diff --git a/cdist/conf/type/__install_generate_fstab/singleton b/cdist/conf/type/__install_generate_fstab/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_mkfs/gencode-remote b/cdist/conf/type/__install_mkfs/gencode-remote deleted file mode 100755 index 8fc2c98e..00000000 --- a/cdist/conf/type/__install_mkfs/gencode-remote +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# 2017 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -device="$(cat "$__object/parameter/device")" -type="$(cat "$__object/parameter/type")" - -case "$type" in - swap) - echo "mkswap -f $device" - exit 0 - ;; - xfs) - command="mkfs.xfs -f -q" - ;; - - vfat) - command="mkfs.vfat" - ;; - - *) - command="mkfs -t $type -q" - ;; -esac - -if [ -f "$__object/parameter/options" ]; then - options="$(cat "$__object/parameter/options")" - command="$command $options" -fi - -command="$command $device" -if [ -f "$__object/parameter/blocks" ]; then - blocks="$(cat "$__object/parameter/blocks")" - command="$command $blocks" -fi -echo "$command" diff --git a/cdist/conf/type/__install_mkfs/install b/cdist/conf/type/__install_mkfs/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_mkfs/man.rst b/cdist/conf/type/__install_mkfs/man.rst deleted file mode 100644 index 6e5c9aa9..00000000 --- a/cdist/conf/type/__install_mkfs/man.rst +++ /dev/null @@ -1,62 +0,0 @@ -cdist-type__install_mkfs(7) -=========================== - -NAME ----- -cdist-type__install_mkfs - build a linux file system - - -DESCRIPTION ------------ -This cdist type is a wrapper for the mkfs command. - - -REQUIRED PARAMETERS -------------------- -type - The filesystem type to use. Same as used with mkfs -t. - - -OPTIONAL PARAMETERS -------------------- -device - defaults to object_id - -options - file system-specific options to be passed to the mkfs command - -blocks - the number of blocks to be used for the file system - - -EXAMPLES --------- - -.. code-block:: sh - - # reiserfs /dev/sda5 - __install_mkfs /dev/sda5 --type reiserfs - - # same thing with explicit device - __install_mkfs whatever --device /dev/sda5 --type reiserfs - - # jfs with journal on /dev/sda2 - __install_mkfs /dev/sda1 --type jfs --options "-j /dev/sda2" - - -SEE ALSO --------- -:strong:`mkfs`\ (8) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_mkfs/parameter/optional b/cdist/conf/type/__install_mkfs/parameter/optional deleted file mode 100644 index 86aeae30..00000000 --- a/cdist/conf/type/__install_mkfs/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -device -options -blocks diff --git a/cdist/conf/type/__install_mkfs/parameter/required b/cdist/conf/type/__install_mkfs/parameter/required deleted file mode 100644 index aa80e646..00000000 --- a/cdist/conf/type/__install_mkfs/parameter/required +++ /dev/null @@ -1 +0,0 @@ -type diff --git a/cdist/conf/type/__install_mount/gencode-remote b/cdist/conf/type/__install_mount/gencode-remote deleted file mode 100755 index 4415f0ff..00000000 --- a/cdist/conf/type/__install_mount/gencode-remote +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -get_type_from_mkfs() { - _device="$1" - find "$__global/object/__install_mkfs" -type d -name "$__cdist_object_marker" | - while IFS= read -r mkfs_object - do - mkfs_device="$(cat "$mkfs_object/parameter/device")" - if [ "$_device" = "$mkfs_device" ]; then - cat "$mkfs_object/parameter/type" - break - fi - done - unset _device - unset mkfs_device - unset mkfs_object -} - -device="$(cat "$__object/parameter/device")" -dir="$(cat "$__object/parameter/dir")" -prefix="$(cat "$__object/parameter/prefix")" -if [ -f "$__object/parameter/type" ]; then - type="$(cat "$__object/parameter/type")" -else - type="$(get_type_from_mkfs "$device")" - # store for later use by others - echo "$type" > "$__object/parameter/type" -fi -[ -n "$type" ] || { - echo "Can't determine type for $__object" >&2 - exit 1 -} -if [ "$type" = "swap" ]; then - printf 'swapon "%s"\n' "$device" -else - mount_point="${prefix}${dir}" - printf '[ -d "%s" ] || mkdir -p "%s"\n' "$mount_point" "$mount_point" - printf 'mount' - if [ "$type" = "bind" ]; then - printf ' --bind' - device="${prefix}${device}" - else - printf ' -t "%s"' "$type" - fi - if [ -f "$__object/parameter/options" ]; then - printf ' -o %s' "$(cat "$__object/parameter/options")" - fi - printf ' "%s"' "$device" - printf ' "%s"\n' "$mount_point" -fi diff --git a/cdist/conf/type/__install_mount/install b/cdist/conf/type/__install_mount/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_mount/man.rst b/cdist/conf/type/__install_mount/man.rst deleted file mode 100644 index 256cef53..00000000 --- a/cdist/conf/type/__install_mount/man.rst +++ /dev/null @@ -1,65 +0,0 @@ -cdist-type__install_mount(7) -============================ - -NAME ----- -cdist-type__install_mount - mount filesystems in the installer - - -DESCRIPTION ------------ -Mounts filesystems in the installer. Collects data to generate /etc/fstab. - - -REQUIRED PARAMETERS -------------------- -device - the device to mount - - -OPTIONAL PARAMETERS -------------------- -dir - where to mount device. Defaults to object_id. - -options - mount options passed to mount(8) and used in /etc/fstab - -type - filesystem type passed to mount(8) and used in /etc/fstab. - If type is swap, 'dir' is ignored. - Defaults to the filesystem used in __install_mkfs for the same 'device'. - -prefix - the prefix to prepend to 'dir' when mounting in the installer. - Defaults to /target. - - -EXAMPLES --------- - -.. code-block:: sh - - __install_mount slash --dir / --device /dev/sda5 --options noatime - require="__install_mount/slash" __install_mount /boot --device /dev/sda1 - __install_mount swap --device /dev/sda2 --type swap - require="__install_mount/slash" __install_mount /tmp --device tmpfs --type tmpfs - - -SEE ALSO --------- -:strong:`cdist-type__install_mkfs`\ (7), -:strong:`cdist-type__install_mount_apply` (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_mount/manifest b/cdist/conf/type/__install_mount/manifest deleted file mode 100755 index 72fc26e2..00000000 --- a/cdist/conf/type/__install_mount/manifest +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# set defaults -if [ ! -f "$__object/parameter/dir" ]; then - dir="/$__object_id" - echo "$dir" > "$__object/parameter/dir" -fi -if [ ! -f "$__object/parameter/prefix" ]; then - prefix="/target" - echo "$prefix" > "$__object/parameter/prefix" -fi diff --git a/cdist/conf/type/__install_mount/parameter/optional b/cdist/conf/type/__install_mount/parameter/optional deleted file mode 100644 index 08b6ad04..00000000 --- a/cdist/conf/type/__install_mount/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -dir -type -options diff --git a/cdist/conf/type/__install_mount/parameter/required b/cdist/conf/type/__install_mount/parameter/required deleted file mode 100644 index f89ee6a8..00000000 --- a/cdist/conf/type/__install_mount/parameter/required +++ /dev/null @@ -1 +0,0 @@ -device diff --git a/cdist/conf/type/__install_partition_msdos/install b/cdist/conf/type/__install_partition_msdos/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_partition_msdos/man.rst b/cdist/conf/type/__install_partition_msdos/man.rst deleted file mode 100644 index c408a614..00000000 --- a/cdist/conf/type/__install_partition_msdos/man.rst +++ /dev/null @@ -1,72 +0,0 @@ -cdist-type__install_partition_msdos(7) -====================================== - -NAME ----- -cdist-type__install_partition_msdos - creates msdos partitions - - -DESCRIPTION ------------ -This cdist type allows you to create msdos paritions. - - -REQUIRED PARAMETERS -------------------- -type - the partition type used in fdisk (such as 82 or 83) or "extended" - - -OPTIONAL PARAMETERS -------------------- -device - the device we're working on. Defaults to the string prefix of --partition - -minor - the partition number we're working on. Defaults to the numeric suffix of --partition - -partition - defaults to object_id - -bootable - mark partition as bootable, true or false, defaults to false - -size - the size of the partition (such as 32M or 15G, whole numbers - only), '+' for remaining space, or 'n%' for percentage of remaining - (these should only be used after all specific partition sizes are - specified). Defaults to +. - - -EXAMPLES --------- - -.. code-block:: sh - - # 128MB, linux, bootable - __install_partition_msdos /dev/sda1 --type 83 --size 128M --bootable true - # 512MB, swap - __install_partition_msdos /dev/sda2 --type 82 --size 512M - # 100GB, extended - __install_partition_msdos /dev/sda3 --type extended --size 100G - # 10GB, linux - __install_partition_msdos /dev/sda5 --type 83 --size 10G - # 50% of the free space of the extended partition, linux - __install_partition_msdos /dev/sda6 --type 83 --size 50% - # rest of the extended partition, linux - __install_partition_msdos /dev/sda7 --type 83 --size + - # nvm device partition 2 - __install_partition_msdos /dev/nvme0n1p2 --device /dev/nvme0n1 --minor 2 --type 83 --size 128M --bootable true - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011-2017 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_partition_msdos/manifest b/cdist/conf/type/__install_partition_msdos/manifest deleted file mode 100755 index b32605fa..00000000 --- a/cdist/conf/type/__install_partition_msdos/manifest +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# set defaults -if [ -f "$__object/parameter/partition" ]; then - partition="(cat "$__object/parameter/partition")" -else - partition="/$__object_id" - echo "$partition" > "$__object/parameter/partition" -fi - -if [ ! -f "$__object/parameter/device" ]; then - device="$(echo "$partition" | sed 's/[0-9]//g')" - echo "$device" > "$__object/parameter/device" -fi -if [ ! -f "$__object/parameter/minor" ]; then - minor="$(echo "$partition" | sed 's/[^0-9]//g')" - echo "$minor" > "$__object/parameter/minor" -fi - -if [ ! -f "$__object/parameter/bootable" ]; then - echo "false" > "$__object/parameter/bootable" -fi -if [ ! -f "$__object/parameter/size" ]; then - echo "+" > "$__object/parameter/size" -fi - -# pull in the type that actually does something with the above parameters -require="$__object_name" __install_partition_msdos_apply diff --git a/cdist/conf/type/__install_partition_msdos/parameter/optional b/cdist/conf/type/__install_partition_msdos/parameter/optional deleted file mode 100644 index 3b3f2083..00000000 --- a/cdist/conf/type/__install_partition_msdos/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -device -minor -partition -bootable -size diff --git a/cdist/conf/type/__install_partition_msdos/parameter/required b/cdist/conf/type/__install_partition_msdos/parameter/required deleted file mode 100644 index aa80e646..00000000 --- a/cdist/conf/type/__install_partition_msdos/parameter/required +++ /dev/null @@ -1 +0,0 @@ -type diff --git a/cdist/conf/type/__install_partition_msdos_apply/explorer/partitions b/cdist/conf/type/__install_partition_msdos_apply/explorer/partitions deleted file mode 100755 index 6be61af4..00000000 --- a/cdist/conf/type/__install_partition_msdos_apply/explorer/partitions +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -cat /proc/partitions diff --git a/cdist/conf/type/__install_partition_msdos_apply/files/lib.sh b/cdist/conf/type/__install_partition_msdos_apply/files/lib.sh deleted file mode 100644 index 2db9a441..00000000 --- a/cdist/conf/type/__install_partition_msdos_apply/files/lib.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh - -die() { - echo "[__install_partition_msdos_apply] $*" >&2 - exit 1 -} -debug() { - #echo "[__install_partition_msdos_apply] $*" >&2 - : -} - -fdisk_command() { - device="$1" - cmd="$2" - - debug fdisk_command "running fdisk command '${cmd}' on device ${device}" - printf '%s\nw\n' "${cmd}" | fdisk -c -u "$device" - ret=$? - # give disk some time - sleep 1 - return $ret -} - -create_disklabel() { - device=$1 - - debug create_disklabel "creating new msdos disklabel" - fdisk_command "${device}" "o" - return $? -} - -toggle_bootable() { - device="$1" - minor="$2" - fdisk_command "${device}" "a\\n${minor}\\n" - return $? -} - -create_partition() { - device="$1" - minor="$2" - size="$3" - type="$4" - primary_count="$5" - - if [ "$type" = "extended" ] || [ "$type" = "5" ]; then - # Extended partition - primary_extended='e\n' - first_minor="${minor}\\n" - [ "${minor}" = "4" ] && first_minor="" - type_minor="${minor}\\n" - [ "${minor}" = "1" ] && type_minor="" - type="5" - elif [ "${minor}" -lt "5" ]; then - primary_extended='p\n' - first_minor="${minor}\\n" - [ "${minor}" = "4" ] && first_minor="" - type_minor="${minor}\\n" - [ "${minor}" = "1" ] && type_minor="" - else - # Logical partitions - first_minor="${minor}\\n" - type_minor="${minor}\\n" - primary_extended='l\n' - [ "$primary_count" -gt "3" ] && primary_extended="" - fi - [ -n "${size}" ] && size="+${size}M" - fdisk_command "${device}" "n\\n${primary_extended}${first_minor}\\n${size}\\nt\\n${type_minor}${type}\\n" - return $? -} diff --git a/cdist/conf/type/__install_partition_msdos_apply/gencode-remote b/cdist/conf/type/__install_partition_msdos_apply/gencode-remote deleted file mode 100755 index a0b46b2d..00000000 --- a/cdist/conf/type/__install_partition_msdos_apply/gencode-remote +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -#set -x - -die() { - echo "[__install_partition_msdos_apply] $*" >&2 - exit 1 -} -debug() { - #echo "[__install_partition_msdos_apply] $*" >&2 - : -} - -# Convert a size specifier 1G 100M or 50% into the corresponding numeric MB. -size_to_mb() { - size=$1 - available_size="$2" - - number_suffix="$(echo "${size}" | sed -e 's:\.[0-9]\+::' -e 's:\([0-9]\+\)\([KkMmGg%]\)[Bb]\?:\1|\2:')" - number="$(echo "${number_suffix}" | cut -d '|' -f1)" - suffix="$(echo "${number_suffix}" | cut -d '|' -f2)" - - case "$suffix" in - K|k) - size="$(( number / 1024 ))" - ;; - M|m) - size="$number" - ;; - G|g) - size="$(( number * 1024 ))" - ;; - %) - size="$(( available_size * number / 100 ))" - ;; - *) - size="-1" - esac - echo "$size" -} - -get_objects() { - objects_file=$(mktemp) - find "$__global/object/__install_partition_msdos" -type d -name "$__cdist_object_marker" | - while IFS= read -r object - do - object_device="$(cat "$object/parameter/device")" - object_minor="$(cat "$object/parameter/minor")" - echo "$object_device $object_minor $object" >> "$objects_file" - done - sort -k 1,2 "$objects_file" | cut -d' ' -f 3 - rm "$objects_file" - unset objects_file - unset object - unset object_device - unset object_minor -} - -# include function library for use on target -cat "$__type/files/lib.sh" - -partitions="$__object/explorer/partitions" -objects=$(get_objects) -current_device="" -available_device_size= -available_extended_size= -available_size= -primary_count=0 -for object in $objects; do - device="$(cat "$object/parameter/device")" - if [ "$current_device" != "$device" ]; then - echo "create_disklabel '$device' || die 'Failed to create disklabel for $device'" - current_device="$device" - device_name=$(echo "${device}" | sed -e 's:^/dev/::;s:/:\\/:g') - available_device_size=$(( $(awk "/${device_name}\$/ { print \$3; }" "$partitions") / 1024)) - # make sure we don't go past the end of the drive - available_device_size=$((available_device_size - 2)) - available_extended_size=0 - primary_count=0 - debug "----- $device" - debug "current_device=$current_device" - debug "available_device_size=$available_device_size" - fi - - type="$(cat "$object/parameter/type")" - partition="$(cat "$object/parameter/partition")" - minor="$(cat "$object/parameter/minor")" - - bootable="$(cat "$object/parameter/bootable")" - size="$(cat "$object/parameter/size")" - - - if [ "${minor}" -lt "5" ]; then - # Primary partitions - primary_count=$(( primary_count + 1 )) - available_size=$available_device_size - else - # Logical partitions - available_size=$available_extended_size - fi - - if [ "$size" = "+" ]; then - # use rest of device - partition_size="" - available_size=0 - else - partition_size=$(size_to_mb "$size" "$available_size") - available_size="$(( available_size - partition_size ))" - fi - - if [ "${minor}" -lt "5" ]; then - # Primary partitions - available_device_size=$available_size - if [ "$type" = "extended" ] || [ "$type" = "5" ]; then - # Extended partition - available_extended_size=$partition_size - fi - else - # Logical paritions - available_extended_size=$available_size - fi - - [ "$partition_size" = "-1" ] && die "could not translate size '$size' to a usable value" - debug "----- $partition" - debug "primary_count=$primary_count" - debug "current_device=$current_device" - debug "device=$device" - debug "type=$type" - debug "partition=$partition" - debug "minor=$minor" - debug "bootable=$bootable" - debug "size=$size" - debug "partition_size=$partition_size" - debug "available_size=$available_size" - debug "available_device_size=$available_device_size" - debug "available_extended_size=$available_extended_size" - debug "----------" - - echo "create_partition '$device' '$minor' '$partition_size' '$type' '$primary_count' \ - || die 'Failed to create partition: $partition'" - - if [ "$bootable" = "true" ]; then - echo "toggle_bootable '$device' '$minor' || die 'Failed to toogle bootable flag for partition: $partition'" - fi -done diff --git a/cdist/conf/type/__install_partition_msdos_apply/install b/cdist/conf/type/__install_partition_msdos_apply/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_partition_msdos_apply/man.rst b/cdist/conf/type/__install_partition_msdos_apply/man.rst deleted file mode 100644 index 80740fde..00000000 --- a/cdist/conf/type/__install_partition_msdos_apply/man.rst +++ /dev/null @@ -1,47 +0,0 @@ -cdist-type__install_partition_msdos_apply(7) -============================================ - -NAME ----- -cdist-type__install_partition_msdos_apply - Apply dos partition settings - - -DESCRIPTION ------------ -Create the partitions defined with __install_partition_msdos - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -None - - -EXAMPLES --------- - -.. code-block:: sh - - __install_partition_msdos_apply - - -SEE ALSO --------- -:strong:`cdist-type__install_partition_msdos_apply`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_partition_msdos_apply/singleton b/cdist/conf/type/__install_partition_msdos_apply/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_reboot/gencode-remote b/cdist/conf/type/__install_reboot/gencode-remote deleted file mode 100755 index 9a6322c1..00000000 --- a/cdist/conf/type/__install_reboot/gencode-remote +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -#echo "reboot $options" -cat << DONE -echo 1 > /proc/sys/kernel/sysrq -echo s > /proc/sysrq-trigger - -# close file descriptors to detach from ssh -sh -c 'sleep 3; echo b > /proc/sysrq-trigger' > /dev/null 2>&1 - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_reboot/singleton b/cdist/conf/type/__install_reboot/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_reset_disk/gencode-remote b/cdist/conf/type/__install_reset_disk/gencode-remote deleted file mode 100755 index ac9ae6cf..00000000 --- a/cdist/conf/type/__install_reset_disk/gencode-remote +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -disk="/$__object_id" -disk_name="${disk##*/}" - -cat << DONE - -debug() { - echo "[DEBUG] \$@" >&2 -} - -find_md_device_names() { - local disk_name="\$1" - for slave in \$(find /sys/devices/virtual/block/*/slaves/ -name "\${disk_name}*"); do - debug "slave: \$slave" - for holder in \$slave/holders/*; do - debug "holder: \$holder" - if [ -d "\$holder/md" ]; then - debug "mdadm found at \$holder" - holder_name="\${holder##*/}" - echo "\$holder_name" - fi - done - done -} - -# disable any enabled volume group -if command -v vgchange >/dev/null; then - vgchange -a n -else - echo "WARNING: vgchange command not found" >&2 -fi - -# disable any running mdadm arrays related to $disk -for md_name in \$(find_md_device_names "$disk_name" | sort | uniq); do - echo "md_name: \$md_name" - if command -v mdadm >/dev/null; then - mdadm --stop "/dev/\$md_name" - else - echo "WARNING: mdadm command not found" >&2 - echo "WARNING: could not stop active mdadm raid for disk $disk" >&2 - fi -done - -# clean disks from any legacy signatures -if command -v wipefs >/dev/null; then - wipefs -a "$disk" || true -fi - -# erase partition table -dd if=/dev/zero of=$disk bs=512 count=1 -printf 'w\\n' | fdisk -u -c $disk || true -DONE diff --git a/cdist/conf/type/__install_reset_disk/install b/cdist/conf/type/__install_reset_disk/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_reset_disk/man.rst b/cdist/conf/type/__install_reset_disk/man.rst deleted file mode 100644 index fadeec71..00000000 --- a/cdist/conf/type/__install_reset_disk/man.rst +++ /dev/null @@ -1,43 +0,0 @@ -cdist-type__install_reset_disk(7) -================================= - -NAME ----- -cdist-type__install_reset_disk - reset a disk - - -DESCRIPTION ------------ -Remove partition table. -Remove all lvm labels. -Remove mdadm superblock. - - -REQUIRED PARAMETERS -------------------- -None - -OPTIONAL PARAMETERS -------------------- -None - - -EXAMPLES --------- - -.. code-block:: sh - - __install_reset_disk /dev/sdb - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_stage/gencode-remote b/cdist/conf/type/__install_stage/gencode-remote deleted file mode 100755 index 776e9fd5..00000000 --- a/cdist/conf/type/__install_stage/gencode-remote +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -uri="$(cat "$__object/parameter/uri" 2>/dev/null \ - || echo "$__object_id")" -target="$(cat "$__object/parameter/target")" - -if [ "$__cdist_log_level" -le "10" ] -then - curl="curl" - tar="tar -xvzp" -else - curl="curl -s" - tar="tar -xzp" -fi - -if [ -f "$__object/parameter/insecure" ] ; then - curl="$curl -k" -fi - -echo "$curl '$uri' | $tar -C '$target'" diff --git a/cdist/conf/type/__install_stage/install b/cdist/conf/type/__install_stage/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_stage/man.rst b/cdist/conf/type/__install_stage/man.rst deleted file mode 100644 index fd764693..00000000 --- a/cdist/conf/type/__install_stage/man.rst +++ /dev/null @@ -1,58 +0,0 @@ -cdist-type__install_stage(7) -============================ - -NAME ----- -cdist-type__install_stage - download and unpack a stage file - - -DESCRIPTION ------------ -Downloads a operating system stage using curl and unpacks it to /target -using tar. The stage tarball is expected to be gzip compressed. - - -REQUIRED PARAMETERS -------------------- -uri - The uri from which to fetch the tarball. - Can be anything understood by curl, e.g: - | http://path/to/stage.tgz - | tftp:///path/to/stage.tgz - | file:///local/path/stage.tgz - - -OPTIONAL PARAMETERS -------------------- -target - where to unpack the tarball to. Defaults to /target. - - -BOOLEAN PARAMETERS ------------------- -insecure - run curl in insecure mode so it does not check the servers ssl certificate - - -EXAMPLES --------- - -.. code-block:: sh - - __install_stage --uri tftp:///path/to/stage.tgz - __install_stage --uri http://path/to/stage.tgz --target /mnt/foobar - __install_stage --uri file:///path/to/stage.tgz --target /target - __install_stage --uri https://path/to/stage.tgz --target /mnt/foobar --insecure - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 - 2013 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_stage/parameter/boolean b/cdist/conf/type/__install_stage/parameter/boolean deleted file mode 100644 index e86bf3fc..00000000 --- a/cdist/conf/type/__install_stage/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -insecure diff --git a/cdist/conf/type/__install_stage/parameter/default/target b/cdist/conf/type/__install_stage/parameter/default/target deleted file mode 100644 index ea8c4bf7..00000000 --- a/cdist/conf/type/__install_stage/parameter/default/target +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/cdist/conf/type/__install_stage/parameter/optional b/cdist/conf/type/__install_stage/parameter/optional deleted file mode 100644 index eb5a316c..00000000 --- a/cdist/conf/type/__install_stage/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/cdist/conf/type/__install_stage/parameter/required b/cdist/conf/type/__install_stage/parameter/required deleted file mode 100644 index c7954952..00000000 --- a/cdist/conf/type/__install_stage/parameter/required +++ /dev/null @@ -1 +0,0 @@ -uri diff --git a/cdist/conf/type/__install_stage/singleton b/cdist/conf/type/__install_stage/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_umount/install b/cdist/conf/type/__install_umount/install deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__install_umount/man.rst b/cdist/conf/type/__install_umount/man.rst deleted file mode 100644 index 59f63449..00000000 --- a/cdist/conf/type/__install_umount/man.rst +++ /dev/null @@ -1,43 +0,0 @@ -cdist-type__install_umount(7) -============================= - -NAME ----- -cdist-type__install_umount - umount target directory - - -DESCRIPTION ------------ -This cdist type allows you to recursively umount the given target directory. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -target - the mount point to umount. Defaults to object_id - - -EXAMPLES --------- - -.. code-block:: sh - - __install_umount /target - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__install_umount/parameter/default/target b/cdist/conf/type/__install_umount/parameter/default/target deleted file mode 100644 index ea8c4bf7..00000000 --- a/cdist/conf/type/__install_umount/parameter/default/target +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/cdist/conf/type/__install_umount/parameter/optional b/cdist/conf/type/__install_umount/parameter/optional deleted file mode 100644 index eb5a316c..00000000 --- a/cdist/conf/type/__install_umount/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/cdist/conf/type/__iptables_apply/files/init-script b/cdist/conf/type/__iptables_apply/files/init-script deleted file mode 100644 index d9c79ef7..00000000 --- a/cdist/conf/type/__iptables_apply/files/init-script +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -# Nico Schottelius -# Zürisee, Mon Sep 2 18:38:27 CEST 2013 -# -### BEGIN INIT INFO -# Provides: iptables -# Required-Start: $local_fs $remote_fs -# Required-Stop: $local_fs $remote_fs -# X-Start-Before: fail2ban -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Applies iptables ruleset -# Description: Applies all rules found in /etc/iptables.d -# and saves/restores previous status -### END INIT INFO - - -basedir=/etc/iptables.d -status="${basedir}/.pre-start" - -case $1 in - start) - # Save status - iptables-save > "$status" - - # Apply our ruleset - cd "$basedir" || exit - count="$(find . ! -name . -prune | wc -l)" - - # Only do something if there are rules - if [ "$count" -ge 1 ]; then - for rule in *; do - echo "Applying iptables rule $rule ..." - # Rule should be split. - # shellcheck disable=SC2046 - iptables $(cat "$rule") - done - fi - ;; - - stop) - # Restore from status before, if there is something to restore - if [ -f "$status" ]; then - iptables-restore < "$status" - fi - ;; - restart) - "$0" stop && "$0" start - ;; - reset) - for table in INPUT FORWARD OUTPUT; do - iptables -P "$table" ACCEPT - iptables -F "$table" - done - for table in PREROUTING POSTROUTING OUTPUT; do - iptables -t nat -P "$table" ACCEPT - iptables -t nat -F "$table" - done - ;; -esac diff --git a/cdist/conf/type/__iptables_apply/gencode-remote b/cdist/conf/type/__iptables_apply/gencode-remote deleted file mode 100755 index a80cb936..00000000 --- a/cdist/conf/type/__iptables_apply/gencode-remote +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -e - -if grep -q "^__file/etc/iptables.d/" "$__messages_in"; then - echo /etc/init.d/iptables restart -fi diff --git a/cdist/conf/type/__iptables_apply/man.rst b/cdist/conf/type/__iptables_apply/man.rst deleted file mode 100644 index 76e1f6bf..00000000 --- a/cdist/conf/type/__iptables_apply/man.rst +++ /dev/null @@ -1,45 +0,0 @@ -cdist-type__iptables_apply(7) -============================= - -NAME ----- -cdist-type__iptables_apply - Apply the rules - - -DESCRIPTION ------------ -This cdist type deploys an init script that triggers -the configured rules and also re-applies them on -configuration. - - -REQUIRED PARAMETERS -------------------- -None - -OPTIONAL PARAMETERS -------------------- -None - -EXAMPLES --------- - -None (__iptables_apply is used by __iptables_rule) - - -SEE ALSO --------- -:strong:`cdist-type__iptables_rule`\ (7), :strong:`iptables`\ (8) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2013 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__iptables_apply/manifest b/cdist/conf/type/__iptables_apply/manifest deleted file mode 100755 index 0061d3de..00000000 --- a/cdist/conf/type/__iptables_apply/manifest +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -e -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -__file /etc/init.d/iptables \ - --source "$__type/files/init-script" \ - --state present \ - --mode 0755 - -require="__file/etc/init.d/iptables" __start_on_boot iptables diff --git a/cdist/conf/type/__iptables_apply/singleton b/cdist/conf/type/__iptables_apply/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__iptables_rule/man.rst b/cdist/conf/type/__iptables_rule/man.rst deleted file mode 100644 index 92d8859f..00000000 --- a/cdist/conf/type/__iptables_rule/man.rst +++ /dev/null @@ -1,66 +0,0 @@ -cdist-type__iptables_rule(7) -============================ - -NAME ----- -cdist-type__iptables_rule - Deploy iptable rulesets - - -DESCRIPTION ------------ -This cdist type allows you to manage iptable rules -in a distribution independent manner. - - -REQUIRED PARAMETERS -------------------- -rule - The rule to apply. Essentially an iptables command - line without iptables in front of it. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - - -EXAMPLES --------- - -.. code-block:: sh - - # Deploy some policies - __iptables_rule policy-in --rule "-P INPUT DROP" - __iptables_rule policy-out --rule "-P OUTPUT ACCEPT" - __iptables_rule policy-fwd --rule "-P FORWARD DROP" - - # The usual established rule - __iptables_rule established --rule "-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT" - - # Some service rules - __iptables_rule http --rule "-A INPUT -p tcp --dport 80 -j ACCEPT" - __iptables_rule ssh --rule "-A INPUT -p tcp --dport 22 -j ACCEPT" - __iptables_rule https --rule "-A INPUT -p tcp --dport 443 -j ACCEPT" - - # Ensure some rules are not present anymore - __iptables_rule munin --rule "-A INPUT -p tcp --dport 4949 -j ACCEPT" \ - --state absent - - -SEE ALSO --------- -:strong:`cdist-type__iptables_apply`\ (7), :strong:`iptables`\ (8) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2013 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__iptables_rule/manifest b/cdist/conf/type/__iptables_rule/manifest deleted file mode 100755 index ed78787f..00000000 --- a/cdist/conf/type/__iptables_rule/manifest +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -e -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -base_dir=/etc/iptables.d - -name="$__object_id" -state="$(cat "$__object/parameter/state")" - -################################################################################ -# Basic setup -# - -__directory "$base_dir" --state present - -# Have apply do the real job -require="$__object_name" __iptables_apply - -################################################################################ -# The rule -# - -require="__directory/$base_dir" __file "$base_dir/${name}" \ - --source "$__object/parameter/rule" \ - --state "$state" diff --git a/cdist/conf/type/__iptables_rule/parameter/default/state b/cdist/conf/type/__iptables_rule/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__iptables_rule/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__iptables_rule/parameter/required b/cdist/conf/type/__iptables_rule/parameter/required deleted file mode 100644 index 2b254dff..00000000 --- a/cdist/conf/type/__iptables_rule/parameter/required +++ /dev/null @@ -1 +0,0 @@ -rule diff --git a/cdist/conf/type/__issue/man.rst b/cdist/conf/type/__issue/man.rst deleted file mode 100644 index 097f2c01..00000000 --- a/cdist/conf/type/__issue/man.rst +++ /dev/null @@ -1,47 +0,0 @@ -cdist-type__issue(7) -==================== - -NAME ----- -cdist-type__issue - Manage issue - - -DESCRIPTION ------------ -This cdist type allows you to easily setup /etc/issue. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -source - If supplied, use this file as /etc/issue instead of default. - - - -EXAMPLES --------- - -.. code-block:: sh - - __issue - - # When called from another type - __issue --source "$__type/files/myfancyissue" - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__issue/singleton b/cdist/conf/type/__issue/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__jail/.gitignore b/cdist/conf/type/__jail/.gitignore deleted file mode 100644 index e0471be4..00000000 --- a/cdist/conf/type/__jail/.gitignore +++ /dev/null @@ -1 +0,0 @@ -files/jailbase.tgz diff --git a/cdist/conf/type/__jail/man.rst b/cdist/conf/type/__jail/man.rst deleted file mode 100644 index 7fc8f455..00000000 --- a/cdist/conf/type/__jail/man.rst +++ /dev/null @@ -1,124 +0,0 @@ -cdist-type__jail(7) -=================== - -NAME ----- -cdist-type__jail - Manage FreeBSD jails - - -DESCRIPTION ------------ -This type is used on FreeBSD to manage jails by calling the appropriate per-version subtype. - - -REQUIRED PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present". - -jailbase - The location of the .tgz archive containing the base fs for your jails. - - -OPTIONAL PARAMETERS -------------------- -name - The name of the jail. Default is to use the object_id as the jail name. - -ip - The ifconfig style IP/netmask combination to use for the jail guest. If - the state parameter is "present," this parameter is required. - -hostname - The FQDN to use for the jail guest. Defaults to the name parameter. - -interface - The name of the physical interface on the jail server to bind the jail to. - Defaults to the first interface found in the output of ifconfig -l. - -devfs-ruleset - The name of the devfs ruleset to associate with the jail. Defaults to - "jailrules." This ruleset must be copied to the server via another type. - To use this option, devfs-enable must be "true." - -jaildir - The location on the remote server to use for hosting jail filesystems. - Defaults to /usr/jail. - -BOOLEAN PARAMETERS ------------------- -stopped - Do not start the jail - -devfs-disable - Whether to disallow devfs mounting within the jail - -onboot - Whether to add the jail to rc.conf's jail_list variable. - - -CAVEATS -------- -This type does not currently support modification of jail options. If, for -example a jail needs to have its IP address or netmask changed, the jail must -be removed then re-added with the correct IP address/netmask or the appropriate -line (jail__ip="...") modified within rc.conf through some alternate -means. - -MESSAGES --------- -start - The jail was started -stop - The jail was stopped -create: - The jail was created -delete - The jail was deleted -onboot - The jail was configured to start on boot - -EXAMPLES --------- - -.. code-block:: sh - - # Create a jail called www - __jail www --state present --ip "192.168.1.2" --jailbase /my/jail/base.tgz - - # Remove the jail called www - __jail www --state absent --jailbase /my/jail/base.tgz - - # The jail www should not be started - __jail www --state present --stopped \ - --ip "192.168.1.2 netmask 255.255.255.0" \ - --jailbase /my/jail/base.tgz - - # Use the name variable explicitly - __jail thisjail --state present --name www \ - --ip "192.168.1.2" \ - --jailbase /my/jail/base.tgz - - # Go nuts - __jail lotsofoptions --state present --name testjail \ - --ip "192.168.1.100 netmask 255.255.255.0" \ - --hostname "testjail.example.com" --interface "em0" \ - --onboot --jailbase /my/jail/base.tgz --jaildir /jails - - -SEE ALSO --------- -:strong:`jail`\ (8) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2012,2016 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__jail/manifest b/cdist/conf/type/__jail/manifest deleted file mode 100755 index fad6a3a1..00000000 --- a/cdist/conf/type/__jail/manifest +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# The __jail type creates, configures, and deletes FreeBSD jails for use as -# virtual machines. -# - -# Debug -#exec >&2 -#set -x - -# Can only be used on FreeBSD -os="$(cat "$__global/explorer/os")" -if [ ! "$os" = "freebsd" ]; then - echo "__jail can only be used on FreeBSD targets!" >&2 - exit 1 -fi - -jaildir="$(cat "$__object/parameter/jaildir")" - -__directory "${jaildir}" --parents - -set -- "$@" "$__object_id" -cd "$__object/parameter" -for property in *; do - set -- "$@" "--$property" "$(cat "$property")" -done - -if grep -q '^10\.' "$(cat "$__global/explorer/os_version")" ; then # Version is 10.x - __jail_freebsd10 "$@" -else - __jail_freebsd9 "$@" -fi - -# Debug -#set +x - diff --git a/cdist/conf/type/__jail/parameter/boolean b/cdist/conf/type/__jail/parameter/boolean deleted file mode 100644 index 39144f6f..00000000 --- a/cdist/conf/type/__jail/parameter/boolean +++ /dev/null @@ -1,3 +0,0 @@ -onboot -stopped -devfs-disable diff --git a/cdist/conf/type/__jail/parameter/default/devfs-ruleset b/cdist/conf/type/__jail/parameter/default/devfs-ruleset deleted file mode 100644 index f602aa0a..00000000 --- a/cdist/conf/type/__jail/parameter/default/devfs-ruleset +++ /dev/null @@ -1 +0,0 @@ -jailrules diff --git a/cdist/conf/type/__jail/parameter/default/jailbase b/cdist/conf/type/__jail/parameter/default/jailbase deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__jail/parameter/default/jailbase +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__jail/parameter/default/jaildir b/cdist/conf/type/__jail/parameter/default/jaildir deleted file mode 100644 index ec7d86c6..00000000 --- a/cdist/conf/type/__jail/parameter/default/jaildir +++ /dev/null @@ -1 +0,0 @@ -/usr/jail diff --git a/cdist/conf/type/__jail/parameter/default/state b/cdist/conf/type/__jail/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__jail/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__jail/parameter/optional b/cdist/conf/type/__jail/parameter/optional deleted file mode 100644 index b36f0fa5..00000000 --- a/cdist/conf/type/__jail/parameter/optional +++ /dev/null @@ -1,8 +0,0 @@ -name -ip -hostname -interface -devfs-ruleset -jaildir -jailbase -state diff --git a/cdist/conf/type/__jail_freebsd10/explorer/basepresent b/cdist/conf/type/__jail_freebsd10/explorer/basepresent deleted file mode 100755 index 034128d5..00000000 --- a/cdist/conf/type/__jail_freebsd10/explorer/basepresent +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# See if the jailbase.tgz or $jaildir/base dir exists -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/jaildir" ]; then - jaildir="$(cat "$__object/parameter/jaildir")" -else - jaildir="/usr/jail" -fi - -name="base:jailbase.tgz" -out="" - -save_IFS="$IFS" -IFS=":" -for cur in $name; do - if [ -e "${jaildir}/$cur" ]; then - out="${out}:${cur}" - fi -done -IFS="$save_IFS" - -if [ -z "$out" ]; then - echo "NONE" -else - echo "${out}" -fi - -# Debug -#set +x - diff --git a/cdist/conf/type/__jail_freebsd10/explorer/present b/cdist/conf/type/__jail_freebsd10/explorer/present deleted file mode 100755 index ddfb805c..00000000 --- a/cdist/conf/type/__jail_freebsd10/explorer/present +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# See if the requested jail exists -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name=$__object_id -fi - -if [ -f "$__object/parameter/jaildir" ]; then - jaildir="$(cat "$__object/parameter/jaildir")" -else - jaildir="/usr/jail" -fi - -[ -d "${jaildir}/$name" ] && echo "EXISTS" || echo "NOTEXIST" - -#set +x - diff --git a/cdist/conf/type/__jail_freebsd10/gencode-local b/cdist/conf/type/__jail_freebsd10/gencode-local deleted file mode 100755 index f163cad3..00000000 --- a/cdist/conf/type/__jail_freebsd10/gencode-local +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# The __jail type creates, configures, and deletes FreeBSD jails for use as -# virtual machines. -# - -# Debug -#exec >&2 -#set -x - -jaildir="$(cat "$__object/parameter/jaildir")" - -jailbase="$(cat "$__object/parameter/jailbase")" - -state="$(cat "$__object/parameter/state")" - -if [ "$state" = "present" ] && [ -z "$jailbase" ]; then - exec >&2 - echo "jailbase is a REQUIRED parameter when state=present!" - exit 1 -fi - -remotebase="${jaildir}/jailbase.tgz" -basepresent="$(cat "$__object/explorer/basepresent")" - -if [ "$state" = "present" ]; then - if [ "$basepresent" = "NONE" ]; then - # IPv6 fix - if echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$' - then - my_target_host="[${__target_host}]" - else - my_target_host="${__target_host}" - fi - echo "$__remote_copy" "${jailbase}" "${my_target_host}:${remotebase}" - fi # basepresent=NONE -fi # state=present - -# Debug -#set +x - diff --git a/cdist/conf/type/__jail_freebsd10/gencode-remote b/cdist/conf/type/__jail_freebsd10/gencode-remote deleted file mode 100755 index 4f376c25..00000000 --- a/cdist/conf/type/__jail_freebsd10/gencode-remote +++ /dev/null @@ -1,362 +0,0 @@ -#!/bin/sh -e -# -# 2012,2014,2016 Jake Guffey (jake.guffey at jointheirstm.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# The __jail_freebsd10 type creates, configures, and deletes FreeBSD -# jails for use as virtual machines on FreeBSD 10.x. -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state="$(cat "$__object/parameter/state")" - -started="true" -# If the user wants the jail gone, it implies it shouldn't be started. -{ [ -f "$__object/parameter/stopped" ] || [ "$state" = "absent" ]; } && started="false" - -if [ -f "$__object/parameter/ip" ]; then - ip="$(cat "$__object/parameter/ip")" -else -# IP is an optional param when $state=absent, but -# when $state=present, it's required. Enforce this. - if [ "$state" = "present" ]; then - exec >&2 - printf 'If --state is "present", --ip must be given\!\n' - exit 1 - fi -fi - -if [ -f "$__object/parameter/hostname" ]; then - hostname="$(cat "$__object/parameter/hostname")" -else - hostname="$name" -fi - -if [ -f "$__object/parameter/devfs-disable" ]; then - devfsenable="false" -else - devfsenable="true" -fi - -devfsruleset="$(cat "$__object/parameter/devfs-ruleset")" - -# devfs_ruleset being defined without devfs_enable being true -# is pointless. Treat this as an error. -if [ -n "$devfsruleset" ] && [ "$devfsenable" = "false" ]; then - exec >&2 - echo "Can't have --devfs-ruleset defined with --devfs-disable" - exit 1 -fi - -if [ -f "$__object/parameter/onboot" ]; then - onboot="true" -fi - -jaildir="$(cat "$__object/parameter/jaildir")" - -present="$(cat "$__object/explorer/present")" -#present="$(cat "$__type/explorer/present")" -status="$(cat "$__object/explorer/status")" - -# Handle ip="addr, addr" format -if [ "$(expr "${ip}" : ".*, .*")" -gt "0" ]; then - SAVE_IFS="$IFS" - IFS=", " - for cur_ip in ${ip}; do - # Just get the last IP address for SSH to listen on - mgmt_ip=$(echo "${cur_ip}" | cut '-d ' -f1) # In case using "ip netmask" format rather than CIDR - done - IFS="$SAVE_IFS" -else - mgmt_ip=$(echo "${ip}" | cut '-d ' -f1) # In case using "ip netmask" format rather than CIDR -fi - -stopJail() { -# Check $status before issuing command - if [ "$status" = "STARTED" ]; then - echo "/etc/rc.d/jail stop ${name}" - echo "stop" >> "$__messages_out" - fi -} - -startJail() { -# Check $status before issuing command - if [ "$status" = "NOTSTART" ]; then - echo "/etc/rc.d/jail start ${name}" - echo "start" >> "$__messages_out" - fi -} - -deleteJail() { -# Unmount the jail's mountpoints if necessary - cat <=1 rw mount is mounted still - for DIR in "\${output}"; do - umount -F "/etc/fstab.${name}" "\$(echo "${DIR}" | awk '{print \$3}')" - done - fi - output="\$(mount | grep "\\/${name} (")" || true - if [ -n "\${output}" ]; then # ro mount is mounted still - umount -F "/etc/fstab.${name}" "\$(echo "\${output}" | awk '{print \$3}')" - fi -EOF -# Remove the jail's rw mountpoints - echo "rm -rf \"${jaildir}/rw/${name}\"" -# Remove the jail directory - echo "rm -rf \"${jaildir}/${name}\"" -# Remove the jail's fstab - echo "rm -f \"/etc/fstab.${name}\"" -# Remove jail entry from jail.conf - cat <> "$__messages_out" -} - -createJail() { -# Create the jail directory -cat <> "$__messages_out" - -# Create the ro+rw mountpoint entries in fstab -cat </etc/fstab.${name} <>/etc/rc.conf - elif [ ! "\$(echo \$jail_enable | tr '[a-z]' '[A-Z]' | tr -d '"')" = "YES" ]; then # jail_enable="NO" - sed -i '.bak' 's/^jail_enable=.*$/jail_enable="YES"/g' /etc/rc.conf # fix this -^ - rm -f /etc/rc.conf.bak - fi - - jailfile=/etc/jail.conf - jailheader="${name} {" - - jaildata="path=\"${jaildir}/${name}\";" - - if [ "$devfsenable" = "true" ]; then - jaildata="\$jaildata - mount.devfs;" - else - jaildata="\$jaildata - mount.nodevfs;" - fi - - jaildata="\$jaildata - host.hostname=\"${hostname}\"; - ip4.addr=\"${ip}\"; - exec.start=\"/bin/sh /etc/rc\"; - exec.stop=\"/bin/sh /etc/rc.shutdown\"; - exec.consolelog=\"/var/log/jail_${name}_console.log\"; - mount.fstab=\"/etc/fstab.${name}\"; - allow.mount; - exec.clean; - allow.set_hostname=0; - allow.sysvipc=0; - allow.raw_sockets=0;" - - jailtrailer="}" - - if [ "$devfsenable" = "true" ] && [ "${devfsruleset}" = "jailrules" ]; then # The default ruleset is to be used - if [ ! -f /etc/devfs.rules ]; then - touch /etc/devfs.rules - fi - if [ -z "\$(grep '\\[jailrules=' /etc/devfs.rules)" ]; then # The default ruleset doesn't exist - # Get the highest-numbered ruleset - highest="\$(sed -n 's/\\[.*=\\([0-9]*\\)\\]/\\1/pg' /etc/devfs.rules | sort -u | tail -n 1)" || true - # increment by 1 - [ -z "\$highest" ] && highest=10 - let num="\${highest}+1" 2>&1 >/dev/null # Close the FD==fail... - # add default ruleset - cat >>/etc/devfs.rules <>\"\$jailfile\"" - -# Add $name to jail_list if $onboot=yes -if [ "$onboot" = "yes" ]; then - - # first check to see whether jail_enable="YES" exists in rc.conf or not and add it - # if necessary - - cat <> "$__messages_out" -fi - -# Add the normal entries into the jail's rc.conf -cat <"${jaildir}/rw/${name}/etc/rc.conf" -echo sshd_enable=\"YES\" >>"${jaildir}/rw/${name}/etc/rc.conf" -echo sendmail_enable=\"NONE\" >>"${jaildir}/rw/${name}/etc/rc.conf" -echo syslogd_enable=\"YES\" >>"${jaildir}/rw/${name}/etc/rc.conf" -echo syslogd_flags=\"-ss\" >>"${jaildir}/rw/${name}/etc/rc.conf" - -EOF -# Configure SSHd's listening address -cat <= 10.0 to manage jails. - - -REQUIRED PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present". - -jailbase - The location of the .tgz archive containing the base fs for your jails. - - -OPTIONAL PARAMETERS -------------------- -name - The name of the jail. Default is to use the object_id as the jail name. - -ip - The ifconfig style IP/netmask combination to use for the jail guest. If - the state parameter is "present," this parameter is required. - -hostname - The FQDN to use for the jail guest. Defaults to the name parameter. - -interface - The name of the physical interface on the jail server to bind the jail to. - Defaults to the first interface found in the output of ifconfig -l. - -devfs-ruleset - The name of the devfs ruleset to associate with the jail. Defaults to - "jailrules." This ruleset must be copied to the server via another type. - To use this option, devfs-enable must be "true." - -jaildir - The location on the remote server to use for hosting jail filesystems. - Defaults to /usr/jail. - -BOOLEAN PARAMETERS ------------------- -stopped - Do not start the jail - -devfs-disable - Whether to disallow devfs mounting within the jail - -onboot - Whether to add the jail to rc.conf's jail_list variable. - - -CAVEATS -------- -This type does not currently support modification of jail options. If, for -example a jail needs to have its IP address or netmask changed, the jail must -be removed then re-added with the correct IP address/netmask or the appropriate -modifications to jail.conf need to be made through alternate means. - -MESSAGES --------- -start - The jail was started -stop - The jail was stopped -create: - The jail was created -delete - The jail was deleted -onboot - The jail was configured to start on boot - -EXAMPLES --------- - -.. code-block:: sh - - # Create a jail called www - __jail_freebsd10 www --state present --ip "192.168.1.2" --jailbase /my/jail/base.tgz - - # Remove the jail called www - __jail_freebsd10 www --state absent --jailbase /my/jail/base.tgz - - # The jail www should not be started - __jail_freebsd10 www --state present --stopped \ - --ip "192.168.1.2 netmask 255.255.255.0" \ - --jailbase /my/jail/base.tgz - - # Use the name variable explicitly - __jail_freebsd10 thisjail --state present --name www \ - --ip "192.168.1.2" \ - --jailbase /my/jail/base.tgz - - # Go nuts - __jail_freebsd10 lotsofoptions --state present --name testjail \ - --ip "192.168.1.100 netmask 255.255.255.0" \ - --hostname "testjail.example.com" --interface "em0" \ - --onboot --jailbase /my/jail/base.tgz --jaildir /jails - - -SEE ALSO --------- -:strong:`jail`\ (8) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2012-2016 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__jail_freebsd10/parameter/boolean b/cdist/conf/type/__jail_freebsd10/parameter/boolean deleted file mode 100644 index 39144f6f..00000000 --- a/cdist/conf/type/__jail_freebsd10/parameter/boolean +++ /dev/null @@ -1,3 +0,0 @@ -onboot -stopped -devfs-disable diff --git a/cdist/conf/type/__jail_freebsd10/parameter/default/devfs-ruleset b/cdist/conf/type/__jail_freebsd10/parameter/default/devfs-ruleset deleted file mode 100644 index f602aa0a..00000000 --- a/cdist/conf/type/__jail_freebsd10/parameter/default/devfs-ruleset +++ /dev/null @@ -1 +0,0 @@ -jailrules diff --git a/cdist/conf/type/__jail_freebsd10/parameter/default/jailbase b/cdist/conf/type/__jail_freebsd10/parameter/default/jailbase deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__jail_freebsd10/parameter/default/jailbase +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__jail_freebsd10/parameter/default/jaildir b/cdist/conf/type/__jail_freebsd10/parameter/default/jaildir deleted file mode 100644 index ec7d86c6..00000000 --- a/cdist/conf/type/__jail_freebsd10/parameter/default/jaildir +++ /dev/null @@ -1 +0,0 @@ -/usr/jail diff --git a/cdist/conf/type/__jail_freebsd10/parameter/default/state b/cdist/conf/type/__jail_freebsd10/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__jail_freebsd10/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__jail_freebsd10/parameter/optional b/cdist/conf/type/__jail_freebsd10/parameter/optional deleted file mode 100644 index b36f0fa5..00000000 --- a/cdist/conf/type/__jail_freebsd10/parameter/optional +++ /dev/null @@ -1,8 +0,0 @@ -name -ip -hostname -interface -devfs-ruleset -jaildir -jailbase -state diff --git a/cdist/conf/type/__jail_freebsd9/explorer/basepresent b/cdist/conf/type/__jail_freebsd9/explorer/basepresent deleted file mode 100755 index 034128d5..00000000 --- a/cdist/conf/type/__jail_freebsd9/explorer/basepresent +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# See if the jailbase.tgz or $jaildir/base dir exists -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/jaildir" ]; then - jaildir="$(cat "$__object/parameter/jaildir")" -else - jaildir="/usr/jail" -fi - -name="base:jailbase.tgz" -out="" - -save_IFS="$IFS" -IFS=":" -for cur in $name; do - if [ -e "${jaildir}/$cur" ]; then - out="${out}:${cur}" - fi -done -IFS="$save_IFS" - -if [ -z "$out" ]; then - echo "NONE" -else - echo "${out}" -fi - -# Debug -#set +x - diff --git a/cdist/conf/type/__jail_freebsd9/explorer/present b/cdist/conf/type/__jail_freebsd9/explorer/present deleted file mode 100755 index ddfb805c..00000000 --- a/cdist/conf/type/__jail_freebsd9/explorer/present +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# See if the requested jail exists -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name=$__object_id -fi - -if [ -f "$__object/parameter/jaildir" ]; then - jaildir="$(cat "$__object/parameter/jaildir")" -else - jaildir="/usr/jail" -fi - -[ -d "${jaildir}/$name" ] && echo "EXISTS" || echo "NOTEXIST" - -#set +x - diff --git a/cdist/conf/type/__jail_freebsd9/explorer/status b/cdist/conf/type/__jail_freebsd9/explorer/status deleted file mode 100755 index c8039f21..00000000 --- a/cdist/conf/type/__jail_freebsd9/explorer/status +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# See if the requested jail is started -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -if [ -f "$__object/parameter/jaildir" ]; then - jaildir="$(cat "$__object/parameter/jaildir")" -else - jaildir="/usr/jail" -fi -# backslash-escaped $jaildir -sjaildir="$(echo ${jaildir} | sed 's#/#\\/#g')" - -jls_output="$(jls | grep "[ ]${sjaildir}\\/${name}\$")" || true - -if [ -n "${jls_output}" ]; then - echo "STARTED" -else - echo "NOTSTART" -fi - -# Debug -#set +x - diff --git a/cdist/conf/type/__jail_freebsd9/gencode-local b/cdist/conf/type/__jail_freebsd9/gencode-local deleted file mode 100755 index bbdc9fcc..00000000 --- a/cdist/conf/type/__jail_freebsd9/gencode-local +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# The __jail type creates, configures, and deletes FreeBSD jails for use as -# virtual machines. -# - -jaildir="$(cat "$__object/parameter/jaildir")" - -jailbase="$(cat "$__object/parameter/jailbase")" - -state="$(cat "$__object/parameter/state")" - -if [ "$state" = "present" ] && [ -z "$jailbase" ]; then - exec >&2 - echo "jailbase is a REQUIRED parameter when state=present!" - exit 1 -fi - -remotebase="${jaildir}/jailbase.tgz" -basepresent="$(cat "$__object/explorer/basepresent")" - -if [ "$state" = "present" ]; then - if [ "$basepresent" = "NONE" ]; then - # IPv6 fix - if echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$' - then - my_target_host="[${__target_host}]" - else - my_target_host="${__target_host}" - fi - echo "$__remote_copy" "${jailbase}" "${my_target_host}:${remotebase}" - fi # basepresent=NONE -fi # state=present - diff --git a/cdist/conf/type/__jail_freebsd9/gencode-remote b/cdist/conf/type/__jail_freebsd9/gencode-remote deleted file mode 100755 index 68229d3e..00000000 --- a/cdist/conf/type/__jail_freebsd9/gencode-remote +++ /dev/null @@ -1,357 +0,0 @@ -#!/bin/sh -e -# -# 2012,2014,2016 Jake Guffey (jake.guffey at jointheirstm.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# The __jail_freebsd9 type creates, configures, and deletes FreeBSD jails -# for use as virtual machines on FreeBSD 9.x and before. -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state="$(cat "$__object/parameter/state")" - -started="true" -# If the user wants the jail gone, it implies it shouldn't be started. -{ [ -f "$__object/parameter/stopped" ] || [ "$state" = "absent" ]; } && started="false" - -if [ -f "$__object/parameter/ip" ]; then - ip="$(cat "$__object/parameter/ip")" -else -# IP is an optional param when $state=absent, but -# when $state=present, it's required. Enforce this. - if [ "$state" = "present" ]; then - exec >&2 - printf 'If --state is "present", --ip must be given\!\n' - exit 1 - fi -fi - -if [ -f "$__object/parameter/hostname" ]; then - hostname="$(cat "$__object/parameter/hostname")" -else - hostname="$name" -fi - -if [ -f "$__object/parameter/interface" ]; then - interface="$(cat "$__object/parameter/interface")" -fi - -if [ -f "$__object/parameter/devfs-disable" ]; then - devfsenable="false" -else - devfsenable="true" -fi - -devfsruleset="$(cat "$__object/parameter/devfs-ruleset")" - -# devfs_ruleset being defined without devfs_enable being true -# is pointless. Treat this as an error. -if [ -n "$devfsruleset" ] && [ "$devfsenable" = "false" ]; then - exec >&2 - echo "Can't have --devfs-ruleset defined with --devfs-disable" - exit 1 -fi - -if [ -f "$__object/parameter/onboot" ]; then - onboot="true" -fi - -jaildir="$(cat "$__object/parameter/jaildir")" - -present="$(cat "$__object/explorer/present")" -status="$(cat "$__object/explorer/status")" - -# Handle ip="iface|addr, iface|addr" format -if [ "$(expr "${ip}" : ".*|.*")" -gt "0" ]; then - # If we have multiple IPs defined, $interface doesn't make sense because ip="iface|addr, iface|addr" implies it - interface="" - SAVE_IFS="$IFS" - IFS=", " - for cur_ip in ${ip}; do - # Just get the last IP address for SSH to listen on - mgmt_ip=$(echo "${cur_ip}" | sed -E -e 's/^.*\|(.*)\/[0-9]+$/\1/') - done - IFS="$SAVE_IFS" -else - mgmt_ip=$(echo "${ip}" | cut '-d ' -f1) -fi - -stopJail() { -# Check $status before issuing command - if [ "$status" = "STARTED" ]; then - echo "/etc/rc.d/jail stop ${name}" - echo "stop" >> "$__messages_out" - fi -} - -startJail() { -# Check $status before issuing command - if [ "$status" = "NOTSTART" ]; then - echo "/etc/rc.d/jail start ${name}" - echo "start" >> "$__messages_out" - fi -} - -deleteJail() { -# Unmount the jail's mountpoints if necessary - cat <=1 rw mount is mounted still - for DIR in "\${output}"; do - umount -F "/etc/fstab.${name}" "\$(echo "${DIR}" | awk '{print \$3}')" - done - fi - output="\$(mount | grep "\\/${name} (")" || true - if [ -n "\${output}" ]; then # ro mount is mounted still - umount -F "/etc/fstab.${name}" "\$(echo "\${output}" | awk '{print \$3}')" - fi -EOF -# Remove the jail's rw mountpoints - echo "rm -rf \"${jaildir}/rw/${name}\"" -# Remove the jail directory - echo "rm -rf \"${jaildir}/${name}\"" -# Remove the jail's fstab - echo "rm -f \"/etc/fstab.${name}\"" -# Remove jail_$name_* lines from rc.conf - cat <> "$__messages_out" -} - -createJail() { -# Create the jail directory -cat <> "$__messages_out" - -# Create the ro+rw mountpoint entries in fstab -cat </etc/fstab.${name} <>/etc/rc.conf - elif [ ! "\$(echo \$jail_enable | tr '[a-z]' '[A-Z]')" = "YES" ]; then # jail_enable="NO" - sed -i '.bak' 's/^jail_enable=.*$/jail_enable="YES"/g' /etc/rc.conf # fix this -^ - rm -f /etc/rc.conf.bak - fi - cat >>/etc/rc.conf <>/etc/rc.conf <>/etc/rc.conf <>/etc/rc.conf <&- >&- - # add default ruleset - cat >>/etc/devfs.rules <> "$__messages_out" -fi - -# Add the normal entries into the jail's rc.conf -cat <"${jaildir}/rw/${name}/etc/rc.conf" -echo sshd_enable=\"YES\" >>"${jaildir}/rw/${name}/etc/rc.conf" -echo sendmail_enable=\"NONE\" >>"${jaildir}/rw/${name}/etc/rc.conf" -echo syslogd_enable=\"YES\" >>"${jaildir}/rw/${name}/etc/rc.conf" -echo syslogd_flags=\"-ss\" >>"${jaildir}/rw/${name}/etc/rc.conf" - -EOF -# Configure SSHd's listening address -cat <_ip="...") modified within rc.conf through some alternate -means. - -MESSAGES --------- -start - The jail was started -stop - The jail was stopped -create: - The jail was created -delete - The jail was deleted -onboot - The jail was configured to start on boot - -EXAMPLES --------- - -.. code-block:: sh - - # Create a jail called www - __jail_freebsd9 www --state present --ip "192.168.1.2" --jailbase /my/jail/base.tgz - - # Remove the jail called www - __jail_freebsd9 www --state absent --jailbase /my/jail/base.tgz - - # The jail www should not be started - __jail_freebsd9 www --state present --stopped \ - --ip "192.168.1.2 netmask 255.255.255.0" \ - --jailbase /my/jail/base.tgz - - # Use the name variable explicitly - __jail_freebsd9 thisjail --state present --name www \ - --ip "192.168.1.2" \ - --jailbase /my/jail/base.tgz - - # Go nuts - __jail_freebsd9 lotsofoptions --state present --name testjail \ - --ip "192.168.1.100 netmask 255.255.255.0" \ - --hostname "testjail.example.com" --interface "em0" \ - --onboot --jailbase /my/jail/base.tgz --jaildir /jails - - -SEE ALSO --------- -:strong:`jail`\ (8) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2012-2016 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__jail_freebsd9/parameter/boolean b/cdist/conf/type/__jail_freebsd9/parameter/boolean deleted file mode 100644 index 39144f6f..00000000 --- a/cdist/conf/type/__jail_freebsd9/parameter/boolean +++ /dev/null @@ -1,3 +0,0 @@ -onboot -stopped -devfs-disable diff --git a/cdist/conf/type/__jail_freebsd9/parameter/default/devfs-ruleset b/cdist/conf/type/__jail_freebsd9/parameter/default/devfs-ruleset deleted file mode 100644 index f602aa0a..00000000 --- a/cdist/conf/type/__jail_freebsd9/parameter/default/devfs-ruleset +++ /dev/null @@ -1 +0,0 @@ -jailrules diff --git a/cdist/conf/type/__jail_freebsd9/parameter/default/jailbase b/cdist/conf/type/__jail_freebsd9/parameter/default/jailbase deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__jail_freebsd9/parameter/default/jailbase +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__jail_freebsd9/parameter/default/jaildir b/cdist/conf/type/__jail_freebsd9/parameter/default/jaildir deleted file mode 100644 index ec7d86c6..00000000 --- a/cdist/conf/type/__jail_freebsd9/parameter/default/jaildir +++ /dev/null @@ -1 +0,0 @@ -/usr/jail diff --git a/cdist/conf/type/__jail_freebsd9/parameter/default/state b/cdist/conf/type/__jail_freebsd9/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__jail_freebsd9/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__jail_freebsd9/parameter/optional b/cdist/conf/type/__jail_freebsd9/parameter/optional deleted file mode 100644 index b36f0fa5..00000000 --- a/cdist/conf/type/__jail_freebsd9/parameter/optional +++ /dev/null @@ -1,8 +0,0 @@ -name -ip -hostname -interface -devfs-ruleset -jaildir -jailbase -state diff --git a/cdist/conf/type/__key_value/explorer/state b/cdist/conf/type/__key_value/explorer/state deleted file mode 100755 index 7b2de1df..00000000 --- a/cdist/conf/type/__key_value/explorer/state +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/sh -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -key="$(cat "$__object/parameter/key" 2>/dev/null \ - || echo "$__object_id")" -state="$(cat "$__object/parameter/state")" - -file="$(cat "$__object/parameter/file")" - -if [ ! -f "$file" ]; then - echo "nosuchfile" - exit -fi - -delimiter="$(cat "$__object/parameter/delimiter")" -value="$(cat "$__object/parameter/value" 2>/dev/null \ - || echo "__CDIST_NOTSET__")" -if [ -f "$__object/parameter/exact_delimiter" ]; then - exact_delimiter=1 -else - exact_delimiter=0 -fi -export key state delimiter value exact_delimiter - -awk -f - "$file" <<"AWK_EOF" -BEGIN { - state=ENVIRON["state"] - key=ENVIRON["key"] - delimiter=ENVIRON["delimiter"] - value=ENVIRON["value"] - exact_delimiter=ENVIRON["exact_delimiter"] - found=0 -} -# enter the main loop -{ - i = index($0,key) - if(i == 1) { - delval = substr($0,length(key)+1) - delpos = index(delval,delimiter) - if(delpos == 0) { - # in this case, the delimiter was not found - next - } - if(delpos > 1) { - spaces = substr(delval,1,delpos-1) - sub(/[ \t]*/,"",spaces) - if( length(spaces) > 0 ) { - # if there are not only spaces between key and delimiter, - # continue since we we are on the wrong line - next - } - if( exact_delimiter == 1) { - # we have key and delimiter, but since additional spaces are not alowed - # return wrongformat - found=1 - print "wrongformat" - exit - } - } - found=1 - if(state == "absent") { - # on state absent, only the ocurance is relevant, so exit here - print "present" - exit - } - linevalue=substr(delval,delpos + length(delimiter)) - if(exact_delimiter == 0){ - #ok, now strip tabs and whitespaces at the beginning of the value - sub(/[ \t]*/,"",linevalue) - } - # Key with separator found - if(linevalue == value) { - # exact match found, so state is present - print "present" - } - else { - print "wrongvalue" - } - exit - } -} -END { - if(found == 0) - print "absent" -} -AWK_EOF diff --git a/cdist/conf/type/__key_value/files/remote_script.sh b/cdist/conf/type/__key_value/files/remote_script.sh deleted file mode 100644 index f7a1add5..00000000 --- a/cdist/conf/type/__key_value/files/remote_script.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh - -key="$(cat "$__object/parameter/key" 2>/dev/null \ - || echo "$__object_id")" -state="$(cat "$__object/parameter/state")" - -file="$(cat "$__object/parameter/file")" - -delimiter="$(cat "$__object/parameter/delimiter")" -value="$(cat "$__object/parameter/value" 2>/dev/null \ - || echo "__CDIST_NOTSET__")" -export key state delimiter value -if [ -f "$__object/parameter/exact_delimiter" ]; then - exact_delimiter=1 -else - exact_delimiter=0 -fi -export exact_delimiter - -tmpfile=$(mktemp "${file}.cdist.XXXXXXXXXX") -# preserve ownership and permissions by copying existing file over tmpfile -if [ -f "$file" ]; then - cp -p "$file" "$tmpfile" -else - touch "$file" -fi -awk -f - "$file" >"$tmpfile" <<"AWK_EOF" -BEGIN { - # import variables in a secure way .. - state=ENVIRON["state"] - key=ENVIRON["key"] - delimiter=ENVIRON["delimiter"] - value=ENVIRON["value"] - comment=ENVIRON["comment"] - exact_delimiter=ENVIRON["exact_delimiter"] - inserted=0 - lastline="" - lastlinepopulated=0 - line=key delimiter value -} -# enter the main loop -{ - # I dont use regex, this is by design, so we can match against every value without special meanings of chars ... - i = index($0,key) - if(i == 1) { - delval = substr($0,length(key)+1) - delpos = index(delval,delimiter) - if(delpos > 1) { - spaces = substr(delval,1,delpos-1) - sub(/[ \t]*/,"",spaces) - if( length(spaces) > 0 ) { - # if there are not only spaces between key and delimiter, - # continue since we we are on the wrong line - if(lastlinepopulated == 1) { - print lastline - } - lastline=$0 - lastlinepopulated=1 - next - } - } - if(state == "absent") { - if(lastline == comment) { - # if comment is present, clear lastlinepopulated flag - lastlinepopulated=0 - } - # if absent, simple yump over this line - next - } - else { - # if comment is present and not present in last line - if (lastlinepopulated == 1) { - print lastline - if( comment != "" && lastline != comment) { - print comment - } - lastlinepopulated=0 - } - inserted=1 - # state is present, so insert correct line here - print line - lastline=line - next - } - } - else { - if(lastlinepopulated == 1) { - print lastline - } - lastline=$0 - lastlinepopulated=1 - } -} -END { - if(lastlinepopulated == 1) { - print lastline - } - if(inserted == 0 && state == "present" ) { - if(comment != "" && lastline != comment){ - print comment - } - print line - } -} -AWK_EOF -mv -f "$tmpfile" "$file" diff --git a/cdist/conf/type/__key_value/gencode-remote b/cdist/conf/type/__key_value/gencode-remote deleted file mode 100755 index 13cc27c7..00000000 --- a/cdist/conf/type/__key_value/gencode-remote +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2012-2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -state_should="$(cat "$__object/parameter/state")" -state_is="$(cat "$__object/explorer/state")" -fire_onchange='' - -if [ "$state_is" = "$state_should" ]; then - exit 0 -fi - -# here we check only if the states are valid, -# emit messages and -# let awk do the work ... -case "$state_should" in - absent) - case "$state_is" in - absent|nosuchfile) - # nothing to do - ;; - wrongformat|wrongvalue|present) - echo "remove" >> "$__messages_out" - fire_onchange=1 - ;; - *) - echo "Unknown explorer state: $state_is" >&2 - exit 1 - ;; - esac - ;; - present) - case "$state_is" in - nosuchfile) - echo "create" >> "$__messages_out" - fire_onchange=1 - ;; - absent) - echo "insert" >> "$__messages_out" - fire_onchange=1 - ;; - wrongformated|wrongvalue) - echo "change" >> "$__messages_out" - fire_onchange=1 - ;; - present) - # nothing to do - ;; - *) - echo "Unknown explorer state: $state_is" >&2 - exit 1 - ;; - esac - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac - -cat "$__type/files/remote_script.sh" - -if [ -n "$fire_onchange" ]; then - cat "$__object/parameter/onchange" -fi diff --git a/cdist/conf/type/__key_value/man.rst b/cdist/conf/type/__key_value/man.rst deleted file mode 100644 index 34e4aab2..00000000 --- a/cdist/conf/type/__key_value/man.rst +++ /dev/null @@ -1,96 +0,0 @@ -cdist-type__key_value(7) -======================== - -NAME ----- -cdist-type__key_value - Change property values in files - - -DESCRIPTION ------------ -This cdist type allows you to change values in a key value based config -file. - - -REQUIRED PARAMETERS -------------------- -file - The file to operate on. -delimiter - The delimiter which separates the key from the value. - - -OPTIONAL PARAMETERS -------------------- -state - present or absent, defaults to present. If present, sets the key to value, - if absent, removes the key from the file. -key - The key to change. Defaults to object_id. -value - The value for the key. Optional if state=absent, required otherwise. -comment - If supplied, the value will be inserted before the line with the key, - but only if the key or value must be changed. - You need to ensure yourself that the line is prefixed with the correct - comment sign. (for example # or ; or wathever ..) -onchange - The code to run if the key or value changes (i.e. is inserted, removed or replaced). - - -BOOLEAN PARAMETERS ------------------- -exact_delimiter - If supplied, treat additional whitespaces between key, delimiter and value - as wrong value. - - -MESSAGES --------- -remove - Removed existing key and value -insert - Added key and value -change - Changed value of existing key -create - A new line was inserted in a new file - - -EXAMPLES --------- - -.. code-block:: sh - - # Set the maximum system user id - __key_value SYS_UID_MAX --file /etc/login.defs --value 666 --delimiter ' ' - - # Same with fancy id - __key_value my-fancy-id --file /etc/login.defs --key SYS_UID_MAX --value 666 \ - --delimiter ' ' - - # Enable packet forwarding - __key_value net.ipv4.ip_forward --file /etc/sysctl.conf --value 1 \ - --delimiter ' = ' --comment '# my linux kernel should act as a router' - - # Remove existing key/value - __key_value LEGACY_KEY --file /etc/somefile --state absent --delimiter '=' - - -MORE INFORMATION ----------------- -This type try to handle as many values as possible, so it doesn't use regexes. -So you need to exactly specify the key and delimiter. Delimiter can be of any length. - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__key_value/manifest b/cdist/conf/type/__key_value/manifest deleted file mode 100755 index 5a91f60c..00000000 --- a/cdist/conf/type/__key_value/manifest +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state_should="$(cat "$__object/parameter/state")" - -if [ "$state_should" = "present" ] && [ ! -f "$__object/parameter/value" ]; then - echo "Missing required parameter 'value'" >&2 - exit 1 -fi diff --git a/cdist/conf/type/__key_value/parameter/boolean b/cdist/conf/type/__key_value/parameter/boolean deleted file mode 100644 index 190831c1..00000000 --- a/cdist/conf/type/__key_value/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -exact_delimiter diff --git a/cdist/conf/type/__key_value/parameter/default/comment b/cdist/conf/type/__key_value/parameter/default/comment deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__key_value/parameter/default/comment +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__key_value/parameter/default/onchange b/cdist/conf/type/__key_value/parameter/default/onchange deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__key_value/parameter/default/state b/cdist/conf/type/__key_value/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__key_value/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__key_value/parameter/optional b/cdist/conf/type/__key_value/parameter/optional deleted file mode 100644 index d4b8cac0..00000000 --- a/cdist/conf/type/__key_value/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -key -value -state -comment -onchange diff --git a/cdist/conf/type/__keyboard/man.rst b/cdist/conf/type/__keyboard/man.rst deleted file mode 100644 index 0eb4cde9..00000000 --- a/cdist/conf/type/__keyboard/man.rst +++ /dev/null @@ -1,37 +0,0 @@ -cdist-type__keyboard(7) -======================= - -NAME ----- -cdit-type__keyboard - Set keyboard layout - - -DESCRIPTION ------------ -This cdist type allows you to modify keyboard layout. - - -REQUIRED PARAMETERS -------------------- -type - Any valid type, for example "us" - - -EXAMPLES --------- - -.. code-block:: sh - - # Set keyboard type to "us" - __keyboard --type "us" - - -AUTHORS -------- -Carlos Ortigoza - - -COPYING -------- -Copyright \(C) 2016 Carlos Ortigoza. Free use of this software is -granted under the terms of the GNU General Public License v3 or later (GPLv3+). diff --git a/cdist/conf/type/__keyboard/manifest b/cdist/conf/type/__keyboard/manifest deleted file mode 100755 index 80cd4819..00000000 --- a/cdist/conf/type/__keyboard/manifest +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -e -# -# Carlos Ortigoza (carlos.ortigoza at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Configure keyboard type by modifying /etc/sysconfig/keyboard file. -# - -os=$(cat "$__global/explorer/os") -keyboard_type="$(cat "$__object/parameter/type")" - -case "$os" in - centos) - __file /etc/sysconfig/keyboard \ - --owner root --group root --mode 644 \ - --state exists - - require="__file/etc/sysconfig/keyboard" \ - __key_value KEYTABLE \ - --file /etc/sysconfig/keyboard \ - --delimiter '=' \ - --value "\"$keyboard_type\"" - - require="__file/etc/sysconfig/keyboard" \ - __key_value LAYOUT \ - --file /etc/sysconfig/keyboard \ - --delimiter '=' \ - --value "\"$keyboard_type\"" - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__keyboard/parameter/required b/cdist/conf/type/__keyboard/parameter/required deleted file mode 100644 index aa80e646..00000000 --- a/cdist/conf/type/__keyboard/parameter/required +++ /dev/null @@ -1 +0,0 @@ -type diff --git a/cdist/conf/type/__keyboard/singleton b/cdist/conf/type/__keyboard/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__letsencrypt_cert/explorer/certbot-path b/cdist/conf/type/__letsencrypt_cert/explorer/certbot-path deleted file mode 100755 index 3c6076df..00000000 --- a/cdist/conf/type/__letsencrypt_cert/explorer/certbot-path +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -e - -command -v certbot 2>/dev/null || true diff --git a/cdist/conf/type/__letsencrypt_cert/explorer/certificate-domains b/cdist/conf/type/__letsencrypt_cert/explorer/certificate-domains deleted file mode 100755 index db605b63..00000000 --- a/cdist/conf/type/__letsencrypt_cert/explorer/certificate-domains +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -e - -certbot_path=$("${__type_explorer}/certbot-path") -if [ -n "${certbot_path}" ] -then - certbot certificates --cert-name "${__object_id:?}" | grep ' Domains: ' | \ - cut -d ' ' -f 6- | tr ' ' '\n' -fi diff --git a/cdist/conf/type/__letsencrypt_cert/explorer/certificate-exists b/cdist/conf/type/__letsencrypt_cert/explorer/certificate-exists deleted file mode 100755 index 4e6f44db..00000000 --- a/cdist/conf/type/__letsencrypt_cert/explorer/certificate-exists +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -e - -certbot_path=$("${__type_explorer}/certbot-path") -if [ -n "${certbot_path}" ] -then - if certbot certificates | grep -q " Certificate Name: ${__object_id:?}$"; then - echo yes - else - echo no - fi -else - echo no -fi diff --git a/cdist/conf/type/__letsencrypt_cert/explorer/certificate-is-test b/cdist/conf/type/__letsencrypt_cert/explorer/certificate-is-test deleted file mode 100755 index 9b445059..00000000 --- a/cdist/conf/type/__letsencrypt_cert/explorer/certificate-is-test +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -e - -certbot_path=$("${__type_explorer}/certbot-path") -if [ -n "${certbot_path}" ] -then - if certbot certificates --cert-name "${__object_id:?}" | \ - grep -q 'INVALID: TEST_CERT'; then - echo yes - else - echo no - fi -else - echo no -fi diff --git a/cdist/conf/type/__letsencrypt_cert/gencode-remote b/cdist/conf/type/__letsencrypt_cert/gencode-remote deleted file mode 100755 index 375570a4..00000000 --- a/cdist/conf/type/__letsencrypt_cert/gencode-remote +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/sh -e - -certificate_exists=$(cat "${__object:?}/explorer/certificate-exists") -name="${__object_id:?}" -state=$(cat "${__object}/parameter/state") - -case "${state}" in - absent) - if [ "${certificate_exists}" = "no" ]; then - exit 0 - fi - - echo "certbot delete --cert-name '${name}' --quiet" - - echo remove >> "${__messages_out:?}" - ;; - present) - domain_param_file="${__object}/parameter/domain" - requested_domains=$(mktemp "${TMPDIR:-/tmp}/domain.cdist.XXXXXXXXXX") - if [ -f "${domain_param_file}" ]; then - cp "${domain_param_file}" "${requested_domains}" - else - echo "$__object_id" >> "${requested_domains}" - fi - - staging=no - if [ -f "${__object}/parameter/staging" ]; then - staging=yes - fi - - if [ "${certificate_exists}" = "yes" ]; then - existing_domains="${__object}/explorer/certificate-domains" - certificate_is_test=$(cat "${__object}/explorer/certificate-is-test") - - sort -uo "${requested_domains}" "${requested_domains}" - sort -uo "${existing_domains}" "${existing_domains}" - - if [ -z "$(comm -23 "${requested_domains}" "${existing_domains}")" ] && \ - [ "${certificate_is_test}" = "${staging}" ]; then - exit 0 - fi - fi - - admin_email="$(cat "$__object/parameter/admin-email")" - webroot="$(cat "$__object/parameter/webroot")" - - cat <<-EOF - certbot certonly \ - --agree-tos \ - --cert-name '${name}' \ - --email '${admin_email}' \ - --expand \ - --non-interactive \ - --quiet \ - $(if [ "${staging}" = "yes" ]; then - echo "--staging" - elif [ "${certificate_is_test}" != "${staging}" ]; then - echo "--force-renewal" - fi) \ - $(if [ -z "${webroot}" ]; then - echo "--standalone" - else - echo "--webroot --webroot-path '${webroot}'" - fi) \ - $(while read -r domain; do - echo "--domain '${domain}' \\" - done < "${requested_domains}") - EOF - rm -f "${requested_domains}" - - if [ "${certificate_exists}" = "no" ]; then - echo create >> "${__messages_out}" - else - echo change >> "${__messages_out}" - fi - ;; - *) - echo "Unsupported state: ${state}" >&2 - - exit 1 - ;; -esac diff --git a/cdist/conf/type/__letsencrypt_cert/man.rst b/cdist/conf/type/__letsencrypt_cert/man.rst deleted file mode 100644 index c4ffc6bc..00000000 --- a/cdist/conf/type/__letsencrypt_cert/man.rst +++ /dev/null @@ -1,109 +0,0 @@ -cdist-type__letsencrypt_cert(7) -=============================== - -NAME ----- - -cdist-type__letsencrypt_cert - Get an SSL certificate from Let's Encrypt - -DESCRIPTION ------------ - -Automatically obtain a Let's Encrypt SSL certificate using Certbot. - -REQUIRED PARAMETERS -------------------- - -object id - A cert name. If domain parameter is not specified then it is used - as a domain to be included in the certificate. - -admin-email - Where to send Let's Encrypt emails like "certificate needs renewal". - -OPTIONAL PARAMETERS -------------------- - -state - 'present' or 'absent', defaults to 'present' where: - - present - if the certificate does not exist, it will be obtained - absent - the certificate will be removed - -webroot - The path to your webroot, as set up in your webserver config. If this - parameter is not present, Certbot will be run in standalone mode. - -OPTIONAL MULTIPLE PARAMETERS ----------------------------- - -renew-hook - Renew hook command directly passed to Certbot in cron job. - -domain - Domains to be included in the certificate. When specified then object id - is not used as a domain. - -BOOLEAN PARAMETERS ------------------- - -automatic-renewal - Install a cron job, which attempts to renew certificates daily. - -staging - Obtain a test certificate from a staging server. - -MESSAGES --------- - -change - Certificte was changed. - -create - Certificte was created. - -remove - Certificte was removed. - -EXAMPLES --------- - -.. code-block:: sh - - # use object id as domain - __letsencrypt_cert example.com \ - --admin-email root@example.com \ - --automatic-renewal \ - --renew-hook "service nginx reload" \ - --webroot /data/letsencrypt/root - -.. code-block:: sh - - # domain parameter is specified so object id is not used as domain - # and example.com needs to be included again with domain parameter - __letsencrypt_cert example.com \ - --admin-email root@example.com \ - --automatic-renewal \ - --domain example.com \ - --domain foo.example.com \ - --domain bar.example.com \ - --renew-hook "service nginx reload" \ - --webroot /data/letsencrypt/root - -AUTHORS -------- - -| Nico Schottelius -| Kamila Součková -| Darko Poljak -| Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2017-2018 Nico Schottelius, Kamila Součková, Darko Poljak and -Ľubomír Kučera. You can redistribute it and/or modify it under the terms of -the GNU General Public License as published by the Free Software Foundation, -either version 3 of the License, or (at your option) any later version. diff --git a/cdist/conf/type/__letsencrypt_cert/manifest b/cdist/conf/type/__letsencrypt_cert/manifest deleted file mode 100755 index 68ecf9d4..00000000 --- a/cdist/conf/type/__letsencrypt_cert/manifest +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh - -certbot_fullpath="$(cat "${__object:?}/explorer/certbot-path")" - -if [ -z "${certbot_fullpath}" ]; then - os="$(cat "${__global:?}/explorer/os")" - os_version="$(cat "${__global}/explorer/os_version")" - - case "$os" in - archlinux) - __package certbot - ;; - alpine) - __package certbot - ;; - debian) - case "$os_version" in - 8*) - __apt_source jessie-backports \ - --uri http://http.debian.net/debian \ - --distribution jessie-backports \ - --component main - - require="__apt_source/jessie-backports" __package_apt python-certbot \ - --target-release jessie-backports - require="__apt_source/jessie-backports" __package_apt certbot \ - --target-release jessie-backports - # Seems to be a missing dependency on debian 8 - __package python-ndg-httpsclient - ;; - 9*) - __apt_source stretch-backports \ - --uri http://http.debian.net/debian \ - --distribution stretch-backports \ - --component main - - require="__apt_source/stretch-backports" __package_apt python-certbot \ - --target-release stretch-backports - require="__apt_source/stretch-backports" __package_apt certbot \ - --target-release stretch-backports - ;; - 10*) - __package_apt certbot - ;; - - *) - echo "Unsupported OS version: $os_version" >&2 - exit 1 - ;; - esac - - certbot_fullpath=/usr/bin/certbot - ;; - devuan) - case "$os_version" in - jessie) - __apt_source jessie-backports \ - --uri http://auto.mirror.devuan.org/merged \ - --distribution jessie-backports \ - --component main - - require="__apt_source/jessie-backports" __package_apt python-certbot \ - --target-release jessie-backports - require="__apt_source/jessie-backports" __package_apt certbot \ - --target-release jessie-backports - # Seems to be a missing dependency on debian 8 - __package python-ndg-httpsclient - ;; - ascii*) - __apt_source ascii-backports \ - --uri http://auto.mirror.devuan.org/merged \ - --distribution ascii-backports \ - --component main - - require="__apt_source/ascii-backports" __package_apt certbot \ - --target-release ascii-backports - ;; - beowulf*) - __package_apt certbot - ;; - *) - echo "Unsupported OS version: $os_version" >&2 - exit 1 - ;; - esac - - certbot_fullpath=/usr/bin/certbot - ;; - freebsd) - __package py27-certbot - - certbot_fullpath=/usr/local/bin/certbot - ;; - *) - echo "Unsupported os: $os" >&2 - exit 1 - ;; - esac -fi - -if [ -f "${__object}/parameter/automatic-renewal" ]; then - renew_hook_param="${__object}/parameter/renew-hook" - renew_hook="" - if [ -f "${renew_hook_param}" ]; then - while read -r hook; do - renew_hook="${renew_hook} --renew-hook \"${hook}\"" - done < "${renew_hook_param}" - fi - - __cron letsencrypt-certbot \ - --user root \ - --command "${certbot_fullpath} renew -q ${renew_hook}" \ - --hour 0 \ - --minute 47 -fi diff --git a/cdist/conf/type/__letsencrypt_cert/nonparallel b/cdist/conf/type/__letsencrypt_cert/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__letsencrypt_cert/parameter/boolean b/cdist/conf/type/__letsencrypt_cert/parameter/boolean deleted file mode 100644 index d5b8be99..00000000 --- a/cdist/conf/type/__letsencrypt_cert/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -automatic-renewal -staging diff --git a/cdist/conf/type/__letsencrypt_cert/parameter/default/state b/cdist/conf/type/__letsencrypt_cert/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__letsencrypt_cert/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__letsencrypt_cert/parameter/default/webroot b/cdist/conf/type/__letsencrypt_cert/parameter/default/webroot deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__letsencrypt_cert/parameter/optional b/cdist/conf/type/__letsencrypt_cert/parameter/optional deleted file mode 100644 index 0a63b11e..00000000 --- a/cdist/conf/type/__letsencrypt_cert/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -webroot diff --git a/cdist/conf/type/__letsencrypt_cert/parameter/optional_multiple b/cdist/conf/type/__letsencrypt_cert/parameter/optional_multiple deleted file mode 100644 index 0e866d45..00000000 --- a/cdist/conf/type/__letsencrypt_cert/parameter/optional_multiple +++ /dev/null @@ -1,2 +0,0 @@ -domain -renew-hook diff --git a/cdist/conf/type/__letsencrypt_cert/parameter/required b/cdist/conf/type/__letsencrypt_cert/parameter/required deleted file mode 100644 index bfe77226..00000000 --- a/cdist/conf/type/__letsencrypt_cert/parameter/required +++ /dev/null @@ -1 +0,0 @@ -admin-email diff --git a/cdist/conf/type/__line/explorer/state b/cdist/conf/type/__line/explorer/state deleted file mode 100755 index 2ef252c8..00000000 --- a/cdist/conf/type/__line/explorer/state +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh -e -# -# 2018 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/before" ]; then - position="before" -elif [ -f "$__object/parameter/after" ]; then - position="after" -else - # By default we append to the end of the file. - position="end" -fi - -if [ -f "$__object/parameter/regex" ]; then - needle="regex" -else - needle="line" -fi - -if [ -f "$__object/parameter/file" ]; then - file="$(cat "$__object/parameter/file")" -else - file="/$__object_id" -fi - -if [ ! -f "$file" ]; then - echo "file_missing" - exit 0 -fi - -awk -v position="$position" -v needle="$needle" ' -function _find(_text, _pattern) { - if (needle == "regex") { - return match(_text, _pattern) - } else { - return index(_text, _pattern) - } -} -BEGIN { - getline anchor < (ENVIRON["__object"] "/parameter/" position) - getline pattern < (ENVIRON["__object"] "/parameter/" needle) - state = "absent" -} -{ - if (position == "after") { - if (match($0, anchor)) { - getline - if (_find($0, pattern)) { - state = "present" - } - else { - state = "wrongposition" - } - exit 0 - } - } - else if (position == "before") { - if (_find($0, pattern)) { - getline - if (match($0, anchor)) { - state = "present" - } - else { - state = "wrongposition" - } - exit 0 - } - } - else { - if (_find($0, pattern)) { - state = "present" - exit 0 - } - } -} -END { - print state -} -' "$file" diff --git a/cdist/conf/type/__line/gencode-remote b/cdist/conf/type/__line/gencode-remote deleted file mode 100755 index 03e90c1b..00000000 --- a/cdist/conf/type/__line/gencode-remote +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh -e -# -# 2018 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/before" ] && [ -f "$__object/parameter/after" ]; then - echo "Use either --before OR --after but not both." >&2 - exit 1 -fi - -state_should="$(cat "$__object/parameter/state")" -state_is="$(cat "$__object/explorer/state")" - -if [ "$state_should" = "$state_is" ]; then - # nothing to do - exit 0 -fi - -if [ -f "$__object/parameter/before" ]; then - position="before" -elif [ -f "$__object/parameter/after" ]; then - position="after" -else - # By default we append to the end of the file. - position="end" -fi - -if [ -f "$__object/parameter/regex" ]; then - needle="regex" -else - needle="line" -fi - -if [ -f "$__object/parameter/file" ]; then - file="$(cat "$__object/parameter/file")" -else - file="/$__object_id" -fi - -add=0 -remove=0 -case "$state_should" in - present) - if [ "$state_is" = "wrongposition" ]; then - echo updated >> "$__messages_out" - remove=1 - else - echo added >> "$__messages_out" - fi - add=1 - ;; - absent) - echo removed >> "$__messages_out" - remove=1 - ;; -esac - -cat << DONE -tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) -# preserve ownership and permissions of existing file -if [ -f "$file" ]; then - cp -p "$file" "\$tmpfile" -fi - -awk -v position="$position" -v needle="$needle" -v remove=$remove -v add=$add ' -function _find(_text, _pattern) { - if (needle == "regex") { - return match(_text, _pattern) - } else { - return index(_text, _pattern) - } -} -BEGIN { - line_file = ENVIRON["__object"] "/parameter/line" - getline line < line_file - # Need to close line file as it may be re-read as pattern below. - close(line_file) - getline pattern < (ENVIRON["__object"] "/parameter/" needle) - getline anchor < (ENVIRON["__object"] "/parameter/" position) -} -{ - if (remove) { - if (_find(\$0, pattern)) { - # skip over this line -> remove it - next - } - } - if (add) { - if (anchor && match(\$0, anchor)) { - if (position == "before") { - print line - print - } else if (position == "after") { - print - print line - } - next - } - } - print -} -END { - if (add && position == "end") { - print line - } -} -' "$file" > "\$tmpfile" -mv -f "\$tmpfile" "$file" -DONE - -if [ -f "$__object/parameter/onchange" ]; then - cat "$__object/parameter/onchange" -fi diff --git a/cdist/conf/type/__line/man.rst b/cdist/conf/type/__line/man.rst deleted file mode 100644 index f76cab64..00000000 --- a/cdist/conf/type/__line/man.rst +++ /dev/null @@ -1,116 +0,0 @@ -cdist-type__line(7) -=================== - -NAME ----- -cdist-type__line - Manage lines in files - - -DESCRIPTION ------------ -This cdist type allows you to add lines and remove lines from files. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -after - Insert the given line after this pattern. - -before - Insert the given line before this pattern. - -file - If supplied, use this as the destination file. - Otherwise the object_id is used. - -line - Specifies the line which should be absent or present. - - Must be present, if state is 'present'. - Ignored if regex is given and state is 'absent'. - -regex - If state is 'present', search for this pattern and if it matches add - the given line. - - If state is 'absent', ensure all lines matching the regular expression - are absent. - - The regular expression is interpreted by awk's match function. - -state - 'present' or 'absent', defaults to 'present' - -onchange - The code to run if line is added, removed or updated. - - -BOOLEAN PARAMETERS ------------------- -None. - - -MESSAGES --------- -added - The line was added. - -updated - The line or its position was changed. - -removed - The line was removed. - - -EXAMPLES --------- - -.. code-block:: sh - - # Manage a hosts entry for www.example.com. - __line /etc/hosts \ - --line '127.0.0.2 www.example.com' - - # Manage another hosts entry for test.example.com. - __line hosts:test.example.com \ - --file /etc/hosts \ - --line '127.0.0.3 test.example.com' - - # Remove the line starting with TIMEZONE from the /etc/rc.conf file. - __line legacy_timezone \ - --file /etc/rc.conf \ - --regex 'TIMEZONE=.*' \ - --state absent - - # Insert a line before another one. - __line password-auth-local:classify \ - --file /etc/pam.d/password-auth-local \ - --line '-session required pam_exec.so debug log=/tmp/classify.log /usr/local/libexec/classify' \ - --before '^session[[:space:]]+include[[:space:]]+password-auth-ac$' - - # Insert a line after another one. - __line password-auth-local:classify \ - --file /etc/pam.d/password-auth-local \ - --line '-session required pam_exec.so debug log=/tmp/classify.log /usr/local/libexec/classify' \ - --after '^session[[:space:]]+include[[:space:]]+password-auth-ac$' - - -SEE ALSO --------- -:strong:`cdist-type`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2018 Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__line/parameter/default/state b/cdist/conf/type/__line/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__line/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__line/parameter/optional b/cdist/conf/type/__line/parameter/optional deleted file mode 100644 index 1c34c699..00000000 --- a/cdist/conf/type/__line/parameter/optional +++ /dev/null @@ -1,7 +0,0 @@ -after -before -file -line -regex -state -onchange diff --git a/cdist/conf/type/__link/explorer/state b/cdist/conf/type/__link/explorer/state deleted file mode 100755 index 7150df25..00000000 --- a/cdist/conf/type/__link/explorer/state +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" -type="$(cat "$__object/parameter/type")" -source="$(cat "$__object/parameter/source")" - -# no destination? -> state is absent -if [ ! -e "$destination" ]; then - echo absent - exit 0 -fi - -destination_dir="${destination%/*}" - -case "$type" in - symbolic) - cd "$destination_dir" || exit 1 - if [ -h "$destination" ]; then - source_is=$(readlink "$destination") - # ignore trailing slashes for comparison - if [ "${source_is%/}" = "${source%/}" ]; then - echo present - else - echo wrongsource - fi - else - echo absent - fi - ;; - hard) - cd "$destination_dir" || exit 1 - # check source relative to destination_dir - if [ ! -e "$source" ]; then - echo sourcemissing - exit 0 - fi - # Currently not worth the effor to change it, stat is not defined by POSIX - # and different OSes has different implementations for it. - # shellcheck disable=SC2012 - destination_inode=$(ls -i "$destination" | awk '{print $1}') - # Currently not worth the effor to change it, stat is not defined by POSIX - # and different OSes has different implementations for it. - # shellcheck disable=SC2012 - source_inode=$(ls -i "$source" | awk '{print $1}') - if [ "$destination_inode" -eq "$source_inode" ]; then - echo present - else - echo absent - fi - ;; - *) - echo "Unknown type: $type" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__link/explorer/type b/cdist/conf/type/__link/explorer/type deleted file mode 100755 index b322bf42..00000000 --- a/cdist/conf/type/__link/explorer/type +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# 2013 Steven Armstrong (steven-cdist armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Mostly a wrapper for ln -# - -destination="/$__object_id" - -if [ ! -e "$destination" ]; then - echo none -elif [ -h "$destination" ]; then - echo symlink -elif [ -f "$destination" ]; then - type="$(cat "$__object/parameter/type")" - case "$type" in - hard) - # Currently not worth the effor to change it, stat is not defined by POSIX - # and different OSes has different implementations for it. - # shellcheck disable=SC2012 - link_count=$(ls -l "$destination" | awk '{ print $2 }') - if [ "$link_count" -gt 1 ]; then - echo hardlink - exit 0 - fi - ;; - esac - echo file -elif [ -d "$destination" ]; then - echo directory -else - echo unknown -fi diff --git a/cdist/conf/type/__link/gencode-remote b/cdist/conf/type/__link/gencode-remote deleted file mode 100755 index 45c22fcc..00000000 --- a/cdist/conf/type/__link/gencode-remote +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -e -# -# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) -# 2013-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="/$__object_id" - -type="$(cat "$__object/parameter/type")" -source="$(cat "$__object/parameter/source")" - -case "$type" in - symbolic) - lnopt="-s" - ;; - hard) - lnopt="" - ;; - *) - echo "Unknown link type: $type" >&2 - exit 1 - ;; -esac - -state_is="$(cat "$__object/explorer/state")" -state_should="$(cat "$__object/parameter/state")" - -[ "$state_should" = "$state_is" ] && exit 0 - -file_type="$(cat "$__object/explorer/type")" -case "$state_should" in - present) - if [ "$file_type" = "directory" ]; then - # our destination is currently a directory, delete it - printf 'rm -rf "%s" &&\n' "$destination" - echo "removed '$destination' (directory)" >> "$__messages_out" - else - if [ "$state_is" = "wrongsource" ]; then - # our destination is a symlink but points to the wrong source, - # delete it - printf 'rm -f "%s" &&\n' "$destination" - echo "removed '$destination' (wrongsource)" >> "$__messages_out" - fi - fi - - # create our link - printf 'ln %s -f "%s" "%s"\n' "$lnopt" "$source" "$destination" - echo "created '$destination'" >> "$__messages_out" - ;; - absent) - # only delete if it is a sym/hard link - if [ "$file_type" = "symlink" ] || [ "$file_type" = "hardlink" ]; then - printf 'rm -f "%s"\n' "$destination" - echo "removed '$destination'" >> "$__messages_out" - fi - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__link/man.rst b/cdist/conf/type/__link/man.rst deleted file mode 100644 index fe0ce425..00000000 --- a/cdist/conf/type/__link/man.rst +++ /dev/null @@ -1,76 +0,0 @@ -cdist-type__link(7) -=================== - -NAME ----- -cdist-type__link - Manage links (hard and symbolic) - - -DESCRIPTION ------------ -This cdist type allows you to manage hard and symbolic links. -The given object id is the destination for the link. - - -REQUIRED PARAMETERS -------------------- -source - Specifies the link source. - -type - Specifies the link type: Either hard or symoblic. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - - -MESSAGES --------- - -created - Link to destination was created. - -removed - Link to destination was removed. - -removed (directory) - Destination was removed because state is ``present`` and destination was directory. - -removed (wrongsource) - Destination was removed because state is ``present`` and destination link source was wrong. - - -EXAMPLES --------- - -.. code-block:: sh - - # Create hard link of /etc/shadow - __link /root/shadow --source /etc/shadow --type hard - - # Relative symbolic link - __link /etc/apache2/sites-enabled/www.test.ch \ - --source ../sites-available/www.test.ch \ - --type symbolic - - # Absolute symbolic link - __link /opt/plone --source /home/services/plone --type symbolic - - # Remove link - __link /opt/plone --state absent - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__link/parameter/default/state b/cdist/conf/type/__link/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__link/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__locale/files/locale.gen b/cdist/conf/type/__locale/files/locale.gen deleted file mode 100644 index cf8e8651..00000000 --- a/cdist/conf/type/__locale/files/locale.gen +++ /dev/null @@ -1,3 +0,0 @@ -de_CH.UTF-8 UTF-8 -de_DE.UTF-8 UTF-8 -en_US.UTF-8 UTF-8 diff --git a/cdist/conf/type/__locale/gencode-remote b/cdist/conf/type/__locale/gencode-remote deleted file mode 100755 index 1feb9884..00000000 --- a/cdist/conf/type/__locale/gencode-remote +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -e -# -# 2013-2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Let localedef do the magic -# - -locale="$__object_id" - -# Hardcoded, create a pull request with -# branching on $os in case it is at another location -alias=/usr/share/locale/locale.alias - -input=$(echo "$locale" | cut -d . -f 1) -charmap=$(echo "$locale" | cut -d . -f 2) - -# Adding locale? The name is de_CH.UTF-8 -# Removing locale? The name is de_CH.utf8. -# W-T-F! -locale_remove=$(echo "$locale" | sed 's/UTF-8/utf8/') - -state=$(cat "$__object/parameter/state") - -os=$(cat "$__global/explorer/os") - -# Nothing to be done on alpine -case "$os" in - alpine) - exit 0 - ;; -esac - -case "$state" in - present) - echo localedef -A "$alias" -f "$charmap" -i "$input" "$locale" - ;; - absent) - echo localedef --delete-from-archive "$locale_remove" - ;; - *) - echo "Unsupported state: $state" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__locale/man.rst b/cdist/conf/type/__locale/man.rst deleted file mode 100644 index e36ab061..00000000 --- a/cdist/conf/type/__locale/man.rst +++ /dev/null @@ -1,50 +0,0 @@ -cdist-type__locale(7) -===================== - -NAME ----- -cdist-type__locale - Configure locales - - -DESCRIPTION ------------ -This cdist type allows you to setup locales. On systems that don't -support locale setting like alpine/musl libc, it is a no-op. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to present - - -EXAMPLES --------- - -.. code-block:: sh - - # Add locale de_CH.UTF-8 - __locale de_CH.UTF-8 - - # Same as above, but more explicit - __locale de_CH.UTF-8 --state present - - # Remove colourful British English - __locale en_GB.UTF-8 --state absent - - -SEE ALSO --------- -:strong:`locale`\ (1), :strong:`localedef`\ (1), :strong:`cdist-type__locale_system`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2013-2019 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 or -later (GPLv3+). diff --git a/cdist/conf/type/__locale/manifest b/cdist/conf/type/__locale/manifest deleted file mode 100755 index 9f1e17ac..00000000 --- a/cdist/conf/type/__locale/manifest +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -e -# -# 2013-2019 Nico Schottelius (nico-cdist at schottelius.org) -# 2015 David Hürlimann (david at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Install required packages -# - -os=$(cat "$__global/explorer/os") - - -case "$os" in - debian|devuan) - # Debian needs a seperate package - __package locales --state present - ;; - archlinux|suse|ubuntu|scientific|centos|alpine) - : - ;; - *) - echo "Sorry, do not know how to handle os: $os" >&2 - echo "Please edit the type ${__type##*/} to fix this." >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__locale/parameter/default/state b/cdist/conf/type/__locale/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__locale/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__locale_system/man.rst b/cdist/conf/type/__locale_system/man.rst deleted file mode 100644 index 03d36960..00000000 --- a/cdist/conf/type/__locale_system/man.rst +++ /dev/null @@ -1,64 +0,0 @@ -cdist-type__locale_system(7) -============================ - -NAME ----- -cdist-type__locale_system - Set system-wide locale - - -DESCRIPTION ------------ -This cdist type allows you to modify system-wide locale. -The name of the locale category is given as the object id -(usually you are probably interested in using LANG). - - -OPTIONAL PARAMETERS -------------------- - -state - present or absent, defaults to present. - If present, sets the locale category to the given value. - If absent, removes the locale category from the system file. - -value - The value for the locale category. - Defaults to en_US.UTF-8. - - -EXAMPLES --------- - -.. code-block:: sh - - # Set LANG to en_US.UTF-8 - __locale_system LANG - - # Same as above, but more explicit - __locale_system LANG --value en_US.UTF-8 - - # Set category LC_MESSAGES to de_CH.UTF-8 - __locale_system LC_MESSAGES --value de_CH.UTF-8 - - # Remove setting for LC_ALL - __locale_system LC_ALL --state absent - - - -SEE ALSO --------- -:strong:`locale`\ (1), :strong:`localedef`\ (1), :strong:`cdist-type__locale`\ (7) - - -AUTHORS -------- -| Steven Armstrong -| Carlos Ortigoza -| Nico Schottelius - - -COPYING -------- -Copyright \(C) 2016 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 or -later (GPLv3+). diff --git a/cdist/conf/type/__locale_system/manifest b/cdist/conf/type/__locale_system/manifest deleted file mode 100755 index 80f7401b..00000000 --- a/cdist/conf/type/__locale_system/manifest +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -e -# -# 2012-2016 Steven Armstrong (steven-cdist at armstrong.cc) -# 2016 Carlos Ortigoza (carlos.ortigoza at ungleich.ch) -# 2016 Nico Schottelius (nico.schottelius at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Configure system-wide locale by modifying i18n file. -# - -os=$(cat "$__global/explorer/os") - -case "$os" in - debian|ubuntu) - locale_conf="/etc/default/locale" - ;; - archlinux) - locale_conf="/etc/locale.conf" - ;; - redhat|centos) - locale_conf="/etc/sysconfig/i18n" - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -__file "$locale_conf" \ - --owner root --group root --mode 644 \ - --state exists - -require="__file/$locale_conf" \ - __key_value "$locale_conf:$__object_id" \ - --file "$locale_conf" \ - --key "$__object_id" \ - --delimiter = \ - --state "$(cat "$__object/parameter/state")" \ - --value "$(cat "$__object/parameter/value")" diff --git a/cdist/conf/type/__locale_system/parameter/default/state b/cdist/conf/type/__locale_system/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__locale_system/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__locale_system/parameter/default/value b/cdist/conf/type/__locale_system/parameter/default/value deleted file mode 100644 index 927508f3..00000000 --- a/cdist/conf/type/__locale_system/parameter/default/value +++ /dev/null @@ -1 +0,0 @@ -en_US.UTF-8 diff --git a/cdist/conf/type/__locale_system/parameter/optional b/cdist/conf/type/__locale_system/parameter/optional deleted file mode 100644 index d0460d86..00000000 --- a/cdist/conf/type/__locale_system/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -value diff --git a/cdist/conf/type/__motd/gencode-remote b/cdist/conf/type/__motd/gencode-remote deleted file mode 100755 index bc842cc8..00000000 --- a/cdist/conf/type/__motd/gencode-remote +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -e -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -os=$(cat "$__global/explorer/os") - -case "$os" in - debian|ubuntu|devuan) - - # Debian and Ubuntu need to be updated, - # as seen in /etc/init.d/bootlogs - echo "uname -snrvm > /var/run/motd" - echo "cat /etc/motd.tail >> /var/run/motd" - ;; - *) - exit 0 - ;; -esac diff --git a/cdist/conf/type/__motd/singleton b/cdist/conf/type/__motd/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__mount/gencode-remote b/cdist/conf/type/__mount/gencode-remote deleted file mode 100755 index b2096764..00000000 --- a/cdist/conf/type/__mount/gencode-remote +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -path="$(cat "$__object/parameter/path" 2>/dev/null || echo "/$__object_id")" -state_should="$(cat "$__object/parameter/state")" -state_is="$(grep -q -x yes "$__object/explorer/mounted" && echo present || echo absent)" - -if [ "$state_should" = "$state_is" ]; then - # nothing to do - exit 0 -fi - -case "$state_should" in - present) - if [ -f "$__object/parameter/nofstab" ]; then - # mount manually - printf 'mount' - if [ -f "$__object/parameter/type" ]; then - printf ' -t %s' "$(cat "$__object/parameter/type")" - fi - if [ -f "$__object/parameter/options" ]; then - printf ' -o %s' "$(cat "$__object/parameter/options")" - fi - printf ' %s' "$(cat "$__object/parameter/device")" - printf ' %s\n' "$path" - else - # mount using existing fstab entry - printf 'mount "%s"\n' "$path" - fi - ;; - absent) - printf 'umount "%s"\n' "$path" - ;; -esac diff --git a/cdist/conf/type/__mount/man.rst b/cdist/conf/type/__mount/man.rst deleted file mode 100644 index d719a1cd..00000000 --- a/cdist/conf/type/__mount/man.rst +++ /dev/null @@ -1,84 +0,0 @@ -cdist-type__mount(7) -==================== - -NAME ----- -cdit-type__mount - Manage filesystem mounts - - -DESCRIPTION ------------ -Manage filesystem mounts either via /etc/fstab or manually. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -device - device to mount at path, defaults to 'none'. see mount(8) - -dump - value for the dump field in fstab. see fstab(5) - defaults to 0. - - This parameter is ignored, if the nofstab parameter is given. - -options - comma separated string of options, see mount(8) - -pass - value for the pass field in fstab. see fstab(5) - defaults to 0. - - This parameter is ignored, if the nofstab parameter is given. - -path - mount point where to mount the device, see mount(8). - Defaults to __object_id - -state - either present or absent. Defaults to present. - -type - vfstype, see mount(8) - - -BOOLEAN PARAMETERS ------------------- -nofstab - do not manage an entry in /etc/fstab - - -EXAMPLES --------- - -.. code-block:: sh - - __mount /some/dir \ - --device /dev/sdc3 \ - --type xfs \ - --options "defaults,ro" - --dump 0 \ - --pass 1 - - __mount /var/lib/one \ - --device mfsmount \ - --type fuse \ - --options "mfsmaster=mfsmaster.domain.tld,mfssubfolder=/one,nonempty,_netdev" - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__mount/manifest b/cdist/conf/type/__mount/manifest deleted file mode 100755 index 999d806c..00000000 --- a/cdist/conf/type/__mount/manifest +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -path="$(cat "$__object/parameter/path" 2>/dev/null || echo "/$__object_id")" -state="$(cat "$__object/parameter/state")" - -if [ ! -f "$__object/parameter/nofstab" ]; then - # Generate an entry for /etc/fstab - ( -printf "%s" "$(cat "$__object/parameter/device")" -printf " %s" "$path" -type="$(cat "$__object/parameter/type")" -printf " %s" "$type" -options="$(cat "$__object/parameter/options")" -printf " %s" "$options" -printf " %s" "$(cat "$__object/parameter/dump")" -printf ' %s\n' "$(cat "$__object/parameter/pass")" -) | \ -__block "$__object_name" \ - --file "/etc/fstab" \ - --prefix "#cdist:$__object_name" \ - --suffix "#/cdist:$__object_name" \ - --state "$state" \ - --text - -fi diff --git a/cdist/conf/type/__mount/parameter/boolean b/cdist/conf/type/__mount/parameter/boolean deleted file mode 100644 index ac6f41a8..00000000 --- a/cdist/conf/type/__mount/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -nofstab diff --git a/cdist/conf/type/__mount/parameter/default/device b/cdist/conf/type/__mount/parameter/default/device deleted file mode 100644 index 621e94f0..00000000 --- a/cdist/conf/type/__mount/parameter/default/device +++ /dev/null @@ -1 +0,0 @@ -none diff --git a/cdist/conf/type/__mount/parameter/default/dump b/cdist/conf/type/__mount/parameter/default/dump deleted file mode 100644 index 573541ac..00000000 --- a/cdist/conf/type/__mount/parameter/default/dump +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/cdist/conf/type/__mount/parameter/default/options b/cdist/conf/type/__mount/parameter/default/options deleted file mode 100644 index e94f8140..00000000 --- a/cdist/conf/type/__mount/parameter/default/options +++ /dev/null @@ -1 +0,0 @@ -defaults diff --git a/cdist/conf/type/__mount/parameter/default/pass b/cdist/conf/type/__mount/parameter/default/pass deleted file mode 100644 index 573541ac..00000000 --- a/cdist/conf/type/__mount/parameter/default/pass +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/cdist/conf/type/__mount/parameter/default/state b/cdist/conf/type/__mount/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__mount/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__mount/parameter/default/type b/cdist/conf/type/__mount/parameter/default/type deleted file mode 100644 index 865faf10..00000000 --- a/cdist/conf/type/__mount/parameter/default/type +++ /dev/null @@ -1 +0,0 @@ -auto diff --git a/cdist/conf/type/__mount/parameter/optional b/cdist/conf/type/__mount/parameter/optional deleted file mode 100644 index 29d3e5ef..00000000 --- a/cdist/conf/type/__mount/parameter/optional +++ /dev/null @@ -1,7 +0,0 @@ -device -dump -options -pass -path -state -type diff --git a/cdist/conf/type/__mysql_database/explorer/state b/cdist/conf/type/__mysql_database/explorer/state deleted file mode 100755 index 79858695..00000000 --- a/cdist/conf/type/__mysql_database/explorer/state +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ] -then - name="$( cat "$__object/parameter/name" )" -else - name="$__object_id" -fi - -if [ -n "$( mysql -B -N -e "show databases like '$name'" )" ] -then - echo 'present' -else - echo 'absent' -fi diff --git a/cdist/conf/type/__mysql_database/gencode-remote b/cdist/conf/type/__mysql_database/gencode-remote deleted file mode 100755 index 1bdb2b11..00000000 --- a/cdist/conf/type/__mysql_database/gencode-remote +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state_is="$( cat "$__object/explorer/state" )" - -state_should="$( cat "$__object/parameter/state" )" - -if [ "$state_is" = "$state_should" ] -then - exit 0 -fi - -if [ -f "$__object/parameter/name" ] -then - name="$( cat "$__object/parameter/name" )" -else - name="$__object_id" -fi - -case "$state_should" in - present) - echo "mysql -e 'create database \`$name\`'" - echo "create database $name" >> "$__messages_out" - ;; - absent) - echo "mysql -e 'drop database \`$name\`'" - echo "drop database $name" >> "$__messages_out" - ;; -esac diff --git a/cdist/conf/type/__mysql_database/man.rst b/cdist/conf/type/__mysql_database/man.rst deleted file mode 100644 index b3b56b5f..00000000 --- a/cdist/conf/type/__mysql_database/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__mysql_database(7) -============================= - -NAME ----- -cdist-type__mysql_database - Manage a MySQL database - - -DESCRIPTION ------------ - -Create MySQL database and optionally user with all privileges. - - -OPTIONAL PARAMETERS -------------------- -name - Name of database. Defaults to object id. - -user - Create user and give all privileges to database. - -password - Password for user. - -state - Defaults to present. - If absent and user is also set, both will be removed (with privileges). - - -EXAMPLES --------- - -.. code-block:: sh - - # just create database - __mysql_database foo - - # create database with respective user with all privileges to database - __mysql_database bar \ - --user name \ - --password secret - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2020 Ander Punnar. You can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the Free -Software Foundation, either version 3 of the License, or (at your option) any -later version. diff --git a/cdist/conf/type/__mysql_database/manifest b/cdist/conf/type/__mysql_database/manifest deleted file mode 100755 index a3c9ed5d..00000000 --- a/cdist/conf/type/__mysql_database/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/user" ] -then - user="$( cat "$__object/parameter/user" )" -fi - -if [ -f "$__object/parameter/password" ] -then - password="$( cat "$__object/parameter/password" )" -fi - -if [ -n "$user" ] && [ -n "$password" ] -then - if [ -f "$__object/parameter/name" ] - then - database="$( cat "$__object/parameter/name" )" - else - database="$__object_id" - fi - - state_should="$( cat "$__object/parameter/state" )" - - __mysql_user "$user" \ - --password "$password" \ - --state "$state_should" - - # removing user should remove all user's privileges - require="__mysql_user/$user" \ - __mysql_privileges "$database/$user" \ - --database "$database" \ - --user "$user" \ - --state "$state_should" -fi diff --git a/cdist/conf/type/__mysql_database/parameter/default/state b/cdist/conf/type/__mysql_database/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__mysql_database/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__mysql_database/parameter/optional b/cdist/conf/type/__mysql_database/parameter/optional deleted file mode 100644 index 6c0b1e85..00000000 --- a/cdist/conf/type/__mysql_database/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -name -user -password -state diff --git a/cdist/conf/type/__mysql_privileges/explorer/state b/cdist/conf/type/__mysql_privileges/explorer/state deleted file mode 100755 index 0cfbaacd..00000000 --- a/cdist/conf/type/__mysql_privileges/explorer/state +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -privileges="$( cat "$__object/parameter/privileges" )" - -database="$( cat "$__object/parameter/database" )" - -table="$( cat "$__object/parameter/table" )" - -user="$( cat "$__object/parameter/user" )" - -host="$( cat "$__object/parameter/host" )" - -check_privileges="$( - mysql -B -N -e "show grants for '$user'@'$host'" \ - | grep -Ei "^grant $privileges on .$database.\..$table. to " || true )" - -if [ -n "$check_privileges" ] -then - echo 'present' -else - echo 'absent' -fi diff --git a/cdist/conf/type/__mysql_privileges/gencode-remote b/cdist/conf/type/__mysql_privileges/gencode-remote deleted file mode 100755 index bcd362e6..00000000 --- a/cdist/conf/type/__mysql_privileges/gencode-remote +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state_is="$( cat "$__object/explorer/state" )" - -state_should="$( cat "$__object/parameter/state" )" - -if [ "$state_is" = "$state_should" ] -then - exit 0 -fi - -privileges="$( cat "$__object/parameter/privileges" )" - -database="$( cat "$__object/parameter/database" )" - -table="$( cat "$__object/parameter/table" )" - -user="$( cat "$__object/parameter/user" )" - -host="$( cat "$__object/parameter/host" )" - -case "$state_should" in - present) - echo "mysql -e 'grant $privileges on \`$database\`.\`$table\` to \`$user\`@\`$host\`'" - echo "grant $privileges on $database.$table to $user@$host" >> "$__messages_out" - ;; - absent) - echo "mysql -e 'revoke $privileges on \`$database\`.\`$table\` from \`$user\`@\`$host\`'" - echo "revoke $privileges on $database.$table from $user@$host" >> "$__messages_out" - ;; -esac diff --git a/cdist/conf/type/__mysql_privileges/man.rst b/cdist/conf/type/__mysql_privileges/man.rst deleted file mode 100644 index 8208d7d4..00000000 --- a/cdist/conf/type/__mysql_privileges/man.rst +++ /dev/null @@ -1,57 +0,0 @@ -cdist-type__mysql_privileges(7) -=============================== - -NAME ----- -cdist-type__mysql_privileges - Manage MySQL privileges - - -DESCRIPTION ------------ - -Grant and revoke privileges of MySQL user. - - -REQUIRED PARAMETERS -------------------- -database - Name of database. - -User - Name of user. - - -OPTIONAL PARAMETERS -------------------- -privileges - Defaults to "all". - -table - Defaults to "*". - -host - Defaults to localhost. - -state - "present" grants and "absent" revokes. Defaults to present. - - -EXAMPLES --------- - -.. code-block:: sh - - __mysql_privileges user-to-db --database db --user user - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2020 Ander Punnar. You can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the Free -Software Foundation, either version 3 of the License, or (at your option) any -later version. diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/host b/cdist/conf/type/__mysql_privileges/parameter/default/host deleted file mode 100644 index 2fbb50c4..00000000 --- a/cdist/conf/type/__mysql_privileges/parameter/default/host +++ /dev/null @@ -1 +0,0 @@ -localhost diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/privileges b/cdist/conf/type/__mysql_privileges/parameter/default/privileges deleted file mode 100644 index 5472efad..00000000 --- a/cdist/conf/type/__mysql_privileges/parameter/default/privileges +++ /dev/null @@ -1 +0,0 @@ -all privileges diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/state b/cdist/conf/type/__mysql_privileges/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__mysql_privileges/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__mysql_privileges/parameter/default/table b/cdist/conf/type/__mysql_privileges/parameter/default/table deleted file mode 100644 index 72e8ffc0..00000000 --- a/cdist/conf/type/__mysql_privileges/parameter/default/table +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/cdist/conf/type/__mysql_privileges/parameter/optional b/cdist/conf/type/__mysql_privileges/parameter/optional deleted file mode 100644 index d4ed5bc5..00000000 --- a/cdist/conf/type/__mysql_privileges/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -privileges -table -host -state diff --git a/cdist/conf/type/__mysql_privileges/parameter/required b/cdist/conf/type/__mysql_privileges/parameter/required deleted file mode 100644 index 152b4a1e..00000000 --- a/cdist/conf/type/__mysql_privileges/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -database -user diff --git a/cdist/conf/type/__mysql_user/explorer/state b/cdist/conf/type/__mysql_user/explorer/state deleted file mode 100755 index 6817ee9d..00000000 --- a/cdist/conf/type/__mysql_user/explorer/state +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ] -then - name="$( cat "$__object/parameter/name" )" -else - name="$__object_id" -fi - -if [ -f "$__object/parameter/password" ] -then - password="$( cat "$__object/parameter/password" )" -else - password='' -fi - -host="$( cat "$__object/parameter/host" )" - -check_user="$( mysql -B -N -e "select user from mysql.user where user = '$name' and host = '$host'" )" - -if [ -n "$check_user" ] -then - if [ -n "$password" ] - then - check_password="$( mysql -B -N -e "select user from mysql.user where user = '$name' and host = '$host' and password = password( '$password' )" )" - fi - - if [ -n "$password" ] && [ -z "$check_password" ] - then - echo 'change-password' - else - echo 'present' - fi -else - echo 'absent' -fi diff --git a/cdist/conf/type/__mysql_user/gencode-remote b/cdist/conf/type/__mysql_user/gencode-remote deleted file mode 100755 index 5f13bc87..00000000 --- a/cdist/conf/type/__mysql_user/gencode-remote +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -e -# -# 2020 Ander Punnar (ander-at-kvlt-dot-ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state_is="$( cat "$__object/explorer/state" )" - -state_should="$( cat "$__object/parameter/state" )" - -if [ "$state_is" = "$state_should" ] -then - exit 0 -fi - -if [ -f "$__object/parameter/name" ] -then - name="$( cat "$__object/parameter/name" )" -else - name="$__object_id" -fi - -host="$( cat "$__object/parameter/host" )" - -if [ -f "$__object/parameter/password" ] -then - password="$( cat "$__object/parameter/password" )" -else - if [ "$state_should" = 'present' ] - then - echo '--password needed' >&2 - exit 1 - else - password='' - fi -fi - -if [ "$state_is" = 'absent' ] && [ "$state_should" = 'present' ] -then - echo "mysql -e 'create user \`$name\`@\`$host\` identified by \"$password\"'" - echo "create user $name@$host" >> "$__messages_out" - -elif [ "$state_is" != 'absent' ] && [ "$state_should" = 'absent' ] -then - echo "mysql -e 'drop user \`$name\`@\`$host\`'" - echo "drop user $name@$host" >> "$__messages_out" - -elif [ "$state_is" = 'change-password' ] -then - # this only works with MySQL 5.7.6 and later or MariaDB 10.1.20 and later - echo "mysql -e 'alter user \`$name\`@\`$host\` identified by \"$password\"'" - echo "mysql -e 'flush privileges'" - echo "change password $name@$host" >> "$__messages_out" -fi diff --git a/cdist/conf/type/__mysql_user/man.rst b/cdist/conf/type/__mysql_user/man.rst deleted file mode 100644 index c2b222d5..00000000 --- a/cdist/conf/type/__mysql_user/man.rst +++ /dev/null @@ -1,48 +0,0 @@ -cdist-type__mysql_user(7) -========================= - -NAME ----- -cdist-type__mysql_user - Manage a MySQL user - - -DESCRIPTION ------------ - -Create MySQL user or change password for the user. - - -OPTIONAL PARAMETERS -------------------- -name - Name of user. Defaults to object id. - -host - Host of user. Defaults to localhost. - -password - Password of user. - -state - Defaults to present. - - -EXAMPLES --------- - -.. code-block:: sh - - __mysql_user user --password secret - - -AUTHORS -------- -Ander Punnar - - -COPYING -------- -Copyright \(C) 2020 Ander Punnar. You can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the Free -Software Foundation, either version 3 of the License, or (at your option) any -later version. diff --git a/cdist/conf/type/__mysql_user/parameter/default/host b/cdist/conf/type/__mysql_user/parameter/default/host deleted file mode 100644 index 2fbb50c4..00000000 --- a/cdist/conf/type/__mysql_user/parameter/default/host +++ /dev/null @@ -1 +0,0 @@ -localhost diff --git a/cdist/conf/type/__mysql_user/parameter/default/state b/cdist/conf/type/__mysql_user/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__mysql_user/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__mysql_user/parameter/optional b/cdist/conf/type/__mysql_user/parameter/optional deleted file mode 100644 index a286266c..00000000 --- a/cdist/conf/type/__mysql_user/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -name -host -password -state diff --git a/cdist/conf/type/__openldap_server/gencode-remote b/cdist/conf/type/__openldap_server/gencode-remote deleted file mode 100644 index b1e98f8c..00000000 --- a/cdist/conf/type/__openldap_server/gencode-remote +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -manager_dn=$(cat "${__object}/parameter/manager-dn") -manager_password=$(cat "${__object}/parameter/manager-password") -description=$(cat "${__object}/parameter/description") -suffix=$(cat "${__object}/parameter/suffix") -suffix_dc=$(printf "%s" "${suffix}" | awk -F',' '{print $1}' | awk -F'=' '{print $2}') - -SLAPD_IPC=$(tr '\n' ' ' < "${__object}/parameter/slapd-url" | awk '{ print $1}') - -cat <&1 > /dev/null; then - # Already exists, use ldapmodify - ldapmodify -xZ -D "${manager_dn}" -w "${manager_password}" -H '${SLAPD_IPC}' < -Evilham - - -COPYING -------- -Copyright \(C) 2020 ungleich glarus ag. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__openldap_server/manifest b/cdist/conf/type/__openldap_server/manifest deleted file mode 100644 index dadc9f20..00000000 --- a/cdist/conf/type/__openldap_server/manifest +++ /dev/null @@ -1,263 +0,0 @@ -#!/bin/sh - -name="${__target_host}" -manager_dn=$(cat "${__object}/parameter/manager-dn") -manager_password_hash=$(cat "${__object}/parameter/manager-password-hash") -serverid=$(cat "${__object}/parameter/serverid") -suffix=$(cat "${__object}/parameter/suffix") -slapd_modules=$(cat "${__object}/parameter/module" 2>/dev/null || true) -schemas=$(cat "${__object}/parameter/schema") -slapd_urls=$(tr '\n' ' ' < "${__object}/parameter/slapd-url") -tls_cipher_suite=$(cat "${__object}/parameter/tls-cipher-suite" 2>/dev/null || true) - - -os="$(cat "${__global}/explorer/os")" - -# Setup OS-dependent vars -CONF_OWNER="root" -CONF_GROUP="root" -case "${os}" in - freebsd) - PKGS="openldap-server" - ETC="/usr/local/etc" - SLAPD_DIR="/usr/local/etc/openldap" - SLAPD_DATA_DIR="/var/db/openldap-data" - SLAPD_RUN_DIR="/var/run/openldap" - SLAPD_MODULE_PATH="/usr/local/libexec/openldap" - if [ -z "${slapd_modules}" ]; then - # It looks like ppolicy and syncprov must be compiled - slapd_modules="back_mdb back_monitor" - fi - CONF_OWNER="ldap" - CONF_GROUP="ldap" - if [ -z "${tls_cipher_suite}" ]; then - # TODO: research default for FreeBSD. 'NORMAL' appears to not work - tls_cipher_suite="HIGH:MEDIUM:+SSLv2" - fi - ;; - debian|ubuntu|devuan) - PKGS="slapd ldap-utils" - ETC="/etc" - SLAPD_DIR="/etc/ldap" - SLAPD_DATA_DIR="/var/lib/ldap" - SLAPD_RUN_DIR="/var/run/slapd" - SLAPD_MODULE_PATH="/usr/lib/ldap" - if [ -z "${slapd_modules}" ]; then - slapd_modules="back_mdb ppolicy syncprov back_monitor" - fi - if [ -z "${tls_cipher_suite}" ]; then - tls_cipher_suite="NORMAL" - fi - ;; - *) - echo "Don't know the openldap defaults for: $os" >&2 - exit 1 - ;; -esac - -PKG_MAIN=$(echo "${PKGS}" | awk '{print $1;}') - - -# Determine if __letsencrypt_cert is to be used and setup vars accordingly -if [ -f "${__object}/parameter/tls-cert" ]; then - tls_cert=$(cat "${__object}/parameter/tls-cert") - - if [ ! -f "${__object}/parameter/tls-privkey" ]; then - echo "When tls-cert is defined, tls-privkey is also required." >&2 - exit 1 - fi - tls_privkey=$(cat "${__object}/parameter/tls-privkey") - - if [ ! -f "${__object}/parameter/tls-ca" ]; then - echo "When tls-cert is defined, tls-ca is also required." >&2 - exit 1 - fi - tls_ca=$(cat "${__object}/parameter/tls-ca") - - _skip_letsencrypt_cert="YES" -else - if [ ! -f "${__object}/parameter/admin-email" ]; then - echo "When using __letsencrypt_cert, admin-email is also required." >&2 - exit 1 - fi - admin_email=$(cat "${__object}/parameter/admin-email") - - tls_cert="${SLAPD_DIR}/sasl2/cert.pem" - tls_privkey="${SLAPD_DIR}/sasl2/privkey.pem" - tls_ca="${SLAPD_DIR}/sasl2/chain.pem" -fi - -mkdir "${__object}/files" -ldapconf="${__object}/files/ldapconf" - -replication="" -if [ -f "${__object}/parameter/replicate" ]; then - replication=yes - - if [ ! -f "${__object}/parameter/syncrepl-searchbase" ]; then - echo "Requiring the searchbase for replication" >&2 - exit 1 - fi - syncrepl_searchbase=$(cat "${__object}/parameter/syncrepl-searchbase") - - if [ ! -f "${__object}/parameter/syncrepl-credentials" ]; then - echo "Requiring credentials for replication" >&2 - exit 1 - fi - - syncrepl_credentials=$(cat "${__object}/parameter/syncrepl-credentials") - - if [ ! -f "${__object}/parameter/syncrepl-host" ]; then - echo "Requiring host(s) for replication" >&2 - exit 1 - fi - syncrepl_hosts=$(cat "${__object}/parameter/syncrepl-host") - -fi - -# Install required packages -for pkg in ${PKGS}; do - __package "${pkg}" -done - - -require="__package/${PKG_MAIN}" __start_on_boot slapd - -# Setup -h flag for the listeners. See man slapd (-h flag). -case "${os}" in - freebsd) - require="__start_on_boot/slapd" __key_value \ - --file "/etc/rc.conf" \ - --key "slapd_flags" \ - --value "\"-h '${slapd_urls}'\"" \ - --delimiter "=" \ - --comment "# LDAP Listener URLs" \ - "${__target_host}__slapd_flags" - ;; - debian|ubuntu|devuan) - require="__package/${PKG_MAIN}" __line rm_slapd_conf \ - --file ${ETC}/default/slapd \ - --regex 'SLAPD_CONF=.*' \ - --state absent - - require="__package/${PKG_MAIN}" __line rm_slapd_services \ - --file ${ETC}/default/slapd \ - --regex 'SLAPD_SERVICES=.*' \ - --state absent - - require="__line/rm_slapd_conf" __line add_slapd_conf \ - --file ${ETC}/default/slapd \ - --line "SLAPD_CONF=${SLAPD_DIR}/slapd.conf" \ - --state present - - require="__line/rm_slapd_services" __line add_slapd_services \ - --file ${ETC}/default/slapd \ - --line "SLAPD_SERVICES=\"${slapd_urls}\"" \ - --state present - ;; - *) - # Nothing to do here, move on. - ;; -esac - - -if [ -z "${_skip_letsencrypt_cert}" ]; then - if [ -f "${__object}/parameter/staging" ]; then - staging="--staging" - else - staging="" - fi - - __letsencrypt_cert "${name}" --admin-email "${admin_email}" \ - --renew-hook "cp ${ETC}/letsencrypt/live/${name}/*.pem ${SLAPD_DIR}/sasl2 && chown -R openldap:openldap ${SLAPD_DIR}/sasl2 && service slapd restart" \ - --automatic-renewal ${staging} -fi - -require="__package/${PKG_MAIN}" __directory ${SLAPD_DIR}/slapd.d --state absent - -if [ -z "${_skip_letsencrypt_cert}" ]; then - require="__package/${PKG_MAIN} __letsencrypt_cert/${name}" \ - __file ${SLAPD_DIR}/slapd.conf --owner ${CONF_OWNER} --group ${CONF_GROUP} --mode 644 \ - --source "${ldapconf}" -else - require="__package/${PKG_MAIN}" \ - __file ${SLAPD_DIR}/slapd.conf --owner ${CONF_OWNER} --group ${CONF_GROUP} --mode 644 \ - --source "${ldapconf}" -fi - -# Start slapd.conf -cat << EOF > "${ldapconf}" -pidfile ${SLAPD_RUN_DIR}/slapd.pid -argsfile ${SLAPD_RUN_DIR}/slapd.args - -TLSCipherSuite ${tls_cipher_suite} -TLSCertificateFile ${tls_cert} -TLSCertificateKeyFile ${tls_privkey} -TLSCACertificateFile ${tls_ca} - -disallow bind_anon -require bind -security tls=1 -EOF - -# Add specified schemas -for schema in ${schemas}; do - echo "include ${SLAPD_DIR}/schema/${schema}.schema" >> "${ldapconf}" -done - -# Add specified modules -echo "modulepath ${SLAPD_MODULE_PATH}" >> "${ldapconf}" -for module in ${slapd_modules}; do - echo "moduleload ${module}.la" >> "${ldapconf}" -done - -# Rest of the config -cat << EOF >> "${ldapconf}" -loglevel 1024 - -database mdb -maxsize 1073741824 - -suffix "${suffix}" -directory ${SLAPD_DATA_DIR} -rootdn "${manager_dn}" -rootpw "${manager_password_hash}" - -index objectClass eq,pres -index ou,cn,mail,surname,givenname eq,pres,sub -index uidNumber,gidNumber,loginShell eq,pres -index uid,memberUid eq,pres,sub -index nisMapName,nisMapEntry eq,pres,sub -index entryCSN,entryUUID eq - -serverid ${serverid} -EOF - -# Setup replication -if [ "${replication}" ]; then - rid=1; - for syncrepl in ${syncrepl_hosts}; do - cat <> "${ldapconf}" -syncrepl rid=${rid} - provider=ldap://${syncrepl} - bindmethod=simple - starttls=yes - binddn="${manager_dn}" - credentials=${syncrepl_credentials} - searchbase="${syncrepl_searchbase}" - type=refreshAndPersist - retry="5 + 5 +" - interval=00:00:00:05 -EOF - rid=$((rid + 1)) - done - cat <> "${ldapconf}" -mirrormode true -overlay syncprov -syncprov-checkpoint 100 5 -syncprov-sessionlog 100 - -database monitor -limits dn.exact="${manager_dn}" time=unlimited size=unlimited -EOF -fi diff --git a/cdist/conf/type/__openldap_server/parameter/boolean b/cdist/conf/type/__openldap_server/parameter/boolean deleted file mode 100644 index 45056fe9..00000000 --- a/cdist/conf/type/__openldap_server/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -staging -replicate diff --git a/cdist/conf/type/__openldap_server/parameter/default/description b/cdist/conf/type/__openldap_server/parameter/default/description deleted file mode 100644 index 6d8e37e1..00000000 --- a/cdist/conf/type/__openldap_server/parameter/default/description +++ /dev/null @@ -1 +0,0 @@ -Managed by cdist, do not edit manually. diff --git a/cdist/conf/type/__openldap_server/parameter/default/schema b/cdist/conf/type/__openldap_server/parameter/default/schema deleted file mode 100644 index 825bdb15..00000000 --- a/cdist/conf/type/__openldap_server/parameter/default/schema +++ /dev/null @@ -1,12 +0,0 @@ -corba -core -cosine -duaconf -dyngroup -inetorgperson -java -misc -nis -openldap -ppolicy -collective diff --git a/cdist/conf/type/__openldap_server/parameter/optional b/cdist/conf/type/__openldap_server/parameter/optional deleted file mode 100644 index a92b9c6e..00000000 --- a/cdist/conf/type/__openldap_server/parameter/optional +++ /dev/null @@ -1,8 +0,0 @@ -description -syncrepl-credentials -syncrepl-searchbase -admin-email -tls-cipher-suite -tls-cert -tls-privkey -tls-ca \ No newline at end of file diff --git a/cdist/conf/type/__openldap_server/parameter/optional_multiple b/cdist/conf/type/__openldap_server/parameter/optional_multiple deleted file mode 100644 index 52a83d5c..00000000 --- a/cdist/conf/type/__openldap_server/parameter/optional_multiple +++ /dev/null @@ -1,3 +0,0 @@ -syncrepl-host -module -schema diff --git a/cdist/conf/type/__openldap_server/parameter/required b/cdist/conf/type/__openldap_server/parameter/required deleted file mode 100644 index ff58158d..00000000 --- a/cdist/conf/type/__openldap_server/parameter/required +++ /dev/null @@ -1,5 +0,0 @@ -manager-dn -manager-password -manager-password-hash -serverid -suffix diff --git a/cdist/conf/type/__openldap_server/parameter/required_multiple b/cdist/conf/type/__openldap_server/parameter/required_multiple deleted file mode 100644 index 848b8dc2..00000000 --- a/cdist/conf/type/__openldap_server/parameter/required_multiple +++ /dev/null @@ -1 +0,0 @@ -slapd-url \ No newline at end of file diff --git a/cdist/conf/type/__openldap_server/singleton b/cdist/conf/type/__openldap_server/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package/man.rst b/cdist/conf/type/__package/man.rst deleted file mode 100644 index fc36402b..00000000 --- a/cdist/conf/type/__package/man.rst +++ /dev/null @@ -1,64 +0,0 @@ -cdist-type__package(7) -====================== - -NAME ----- -cdist-type__package - Manage packages - - -DESCRIPTION ------------ -This cdist type allows you to install or uninstall packages on the target. -It dispatches the actual work to the package system dependent types. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - The name of the package to install. Default is to use the object_id as the - package name. -version - The version of the package to install. Default is to install the version - chosen by the local package manager. -type - The package type to use. Default is determined based on the $os explorer - variable. - e.g. - * __package_apt for Debian - * __package_emerge for Gentoo - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Install the package vim on the target - __package vim --state present - - # Same but install specific version - __package vim --state present --version 7.3.50 - - # Force use of a specific package type - __package vim --state present --type __package_apt - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package/nonparallel b/cdist/conf/type/__package/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package/parameter/boolean b/cdist/conf/type/__package/parameter/boolean deleted file mode 100644 index effcb218..00000000 --- a/cdist/conf/type/__package/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -upgrade diff --git a/cdist/conf/type/__package/parameter/default/state b/cdist/conf/type/__package/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package/parameter/optional b/cdist/conf/type/__package/parameter/optional deleted file mode 100644 index bb3f5154..00000000 --- a/cdist/conf/type/__package/parameter/optional +++ /dev/null @@ -1,7 +0,0 @@ -name -version -type -pkgsite -state -ptype -repo diff --git a/cdist/conf/type/__package_apk/explorer/state b/cdist/conf/type/__package_apk/explorer/state deleted file mode 100755 index b477ca7c..00000000 --- a/cdist/conf/type/__package_apk/explorer/state +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the status of a package - parsed apk output -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -# Remove the @.. repo tag for finding out whether it is installed -# f.i. pass@testing => pass -name="$(echo "$name" | sed 's/@.*//')" - -if [ "$(apk list -I "$name")" ]; then - echo present -else - echo absent -fi diff --git a/cdist/conf/type/__package_apk/gencode-remote b/cdist/conf/type/__package_apk/gencode-remote deleted file mode 100755 index 79e3d2b6..00000000 --- a/cdist/conf/type/__package_apk/gencode-remote +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -e -# -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages on Debian and co. -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" -state_is="$(cat "$__object/explorer/state")" - -# Nothing to be done -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - echo "apk add -q '$name'" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "apk del -q '$name'" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_apk/man.rst b/cdist/conf/type/__package_apk/man.rst deleted file mode 100644 index bc2408b4..00000000 --- a/cdist/conf/type/__package_apk/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__package_akp(7) -========================== - -NAME ----- -cdist-type__package_akp - Manage packages with akp - - -DESCRIPTION ------------ -apk is usually used on Alpine to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh in installed - __package_apk zsh --state present - - # Remove package - __package_apk apache2 --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2019 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_apk/nonparallel b/cdist/conf/type/__package_apk/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_apk/parameter/default/state b/cdist/conf/type/__package_apk/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_apk/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_apk/parameter/optional b/cdist/conf/type/__package_apk/parameter/optional deleted file mode 100644 index 1b423dc4..00000000 --- a/cdist/conf/type/__package_apk/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -name -state diff --git a/cdist/conf/type/__package_apt/explorer/state b/cdist/conf/type/__package_apt/explorer/state deleted file mode 100755 index 7ccd6fce..00000000 --- a/cdist/conf/type/__package_apt/explorer/state +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the status of a package - parsed dpkg output -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -# Except dpkg failing, if package is not known / installed -packages="$(apt-cache showpkg "$name" | sed -e "1,/Reverse Provides:/d" | cut -d ' ' -f 1) $name" -for p in $packages; do - if dpkg -s "$p" 2>/dev/null | grep --quiet "^Status: install ok installed$" ; then - version=$(dpkg -s "$p" 2>/dev/null | grep "^Version:" | cut -d ' ' -f 2) - echo "present $p $version" - exit 0 - fi -done -echo absent diff --git a/cdist/conf/type/__package_apt/gencode-remote b/cdist/conf/type/__package_apt/gencode-remote deleted file mode 100755 index 699eb0c9..00000000 --- a/cdist/conf/type/__package_apt/gencode-remote +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh -e -# -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages on Debian and co. -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -version_param="$__object/parameter/version" - -version="" -if [ -f "$version_param" ]; then - version="$(cat "$version_param")" -fi - -if [ -f "$__object/parameter/target-release" ]; then - target_release="--target-release $(cat "$__object/parameter/target-release")" -else - target_release="" -fi - -if [ -f "$__object/parameter/purge-if-absent" ]; then - purgeparam="--purge" -else - purgeparam="" -fi - - -# FIXME: use grep directly, state is a list, not a line! -state_is="$(cat "$__object/explorer/state")" -case "$state_is" in - present*) - name="$(echo "$state_is" | cut -d ' ' -f 2)" - version_is="$(echo "$state_is" | cut -d ' ' -f 3)" - state_is="present" - ;; - *) - version_is="" - ;; -esac - -# Hint if we need to avoid questions at some point: -# DEBIAN_PRIORITY=critical can reduce the number of questions -aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes --no-install-recommends -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\"" - -if [ "$state_is" = "$state_should" ]; then - if [ -z "$version" ] || [ "$version" = "$version_is" ]; then - exit 0; - fi -fi - -case "$state_should" in - present) - if [ -n "$version" ]; then - name="${name}=${version}" - fi - echo "$aptget install $target_release '$name'" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "$aptget remove $purgeparam '$name'" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_apt/man.rst b/cdist/conf/type/__package_apt/man.rst deleted file mode 100644 index a3a70d91..00000000 --- a/cdist/conf/type/__package_apt/man.rst +++ /dev/null @@ -1,74 +0,0 @@ -cdist-type__package_apt(7) -========================== - -NAME ----- -cdist-type__package_apt - Manage packages with apt-get - - -DESCRIPTION ------------ -apt-get is usually used on Debian and variants (like Ubuntu) to -manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - -target-release - Passed on to apt-get install, see apt-get(8). - Essentially allows you to retrieve packages from a different release - -version - The version of the package to install. Default is to install the version - chosen by the local package manager. - - -BOOLEAN PARAMETERS ------------------- -purge-if-absent - If this parameter is given when state is `absent`, the package is - purged from the system (using `--purge`). - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh in installed - __package_apt zsh --state present - - # In case you only want *a* webserver, but don't care which one - __package_apt webserver --state present --name nginx - - # Remove obsolete package - __package_apt puppet --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_apt/nonparallel b/cdist/conf/type/__package_apt/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_apt/notes.txt b/cdist/conf/type/__package_apt/notes.txt deleted file mode 100644 index 4b89f9b3..00000000 --- a/cdist/conf/type/__package_apt/notes.txt +++ /dev/null @@ -1,3 +0,0 @@ -# All you ever wanted to know about apt/apt-get -http://wiki.ubuntuusers.de/apt-get - diff --git a/cdist/conf/type/__package_apt/parameter/boolean b/cdist/conf/type/__package_apt/parameter/boolean deleted file mode 100644 index f9a0f6b0..00000000 --- a/cdist/conf/type/__package_apt/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -purge-if-absent diff --git a/cdist/conf/type/__package_apt/parameter/default/state b/cdist/conf/type/__package_apt/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_apt/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_apt/parameter/optional b/cdist/conf/type/__package_apt/parameter/optional deleted file mode 100644 index d6674f95..00000000 --- a/cdist/conf/type/__package_apt/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -name -version -state -target-release diff --git a/cdist/conf/type/__package_dpkg/explorer/pkg_state b/cdist/conf/type/__package_dpkg/explorer/pkg_state deleted file mode 100644 index d7487ed8..00000000 --- a/cdist/conf/type/__package_dpkg/explorer/pkg_state +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -e - -package=$( basename "$__object_id" ) - -dpkg_status="$(dpkg-query --show --showformat='${db:Status-Abbrev} ${binary:Package}_${Version}_${Architecture}.deb\n' "${package%%_*}" 2>/dev/null || true)" - -if echo "$dpkg_status" | grep -q '^ii'; then - echo "${dpkg_status##* }" -fi - - diff --git a/cdist/conf/type/__package_dpkg/gencode-remote b/cdist/conf/type/__package_dpkg/gencode-remote deleted file mode 100755 index 1c271748..00000000 --- a/cdist/conf/type/__package_dpkg/gencode-remote +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -e -# -# 2013 Tomas Pospisek (tpo_deb sourcepole.ch) -# 2018 Thomas Eckert (tom at it-eckert.de) -# -# This file is based on cdist's __file/gencode-local and part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This __package_dpkg type does not check whether a *.deb package is -# allready installed. It just copies the *.deb package over to the -# destination and installs it. We could use __package_apt to check -# whether a *.deb package is allready installed and only install it -# if we're given a --force argument or similar (would be clever not -# to conflict with dpkg's --force options). But currently we don't -# do any checks or --force'ing. -# -state=$( cat "$__object/parameter/state" ) -package=$( basename "$__object_id" ) -state_is="$(cat "$__object/explorer/pkg_state")" -state_should="" - -[ "$state" = "absent" ] || state_should="$package" -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state" in - present) - echo "dpkg --install /var/cache/apt/archives/$__object_id" - echo "installed" >> "$__messages_out" - ;; - absent) - [ -f "$__object/parameter/purge-if-absent" ] \ - && action="--purge" \ - || action="--remove" - echo "dpkg $action ${__object_id%%_*}" - echo "removed ($action)" >> "$__messages_out" - ;; - *) echo "ERROR: unknown state '$state'" >&2 ;; -esac diff --git a/cdist/conf/type/__package_dpkg/man.rst b/cdist/conf/type/__package_dpkg/man.rst deleted file mode 100644 index 828d8cdd..00000000 --- a/cdist/conf/type/__package_dpkg/man.rst +++ /dev/null @@ -1,93 +0,0 @@ -cdist-type__package_dpkg(7) -=========================== - -NAME ----- -cdist-type__package_dpkg - Manage packages with dpkg - - -DESCRIPTION ------------ -This type is used on Debian and variants (like Ubuntu) to -install packages that are provided locally as \*.deb files. - -The object given to this type must be the name of the deb package. -The filename of the deb package has to follow Debian naming conventions, i.e. -`${binary:Package}_${Version}_${Architecture}.deb` (see `dpkg-query(1)` for -details). - - -OPTIONAL PARAMETERS -------------------- -state - `present` or `absent`, defaults to `present`. - -REQUIRED PARAMETERS -------------------- -source - path to the \*.deb package - - -BOOLEAN PARAMETERS ------------------- -purge-if-absent - If this parameter is given when state is `absent`, the package is - purged from the system (using `--purge`). - - -EXPLORER --------- -pkg_state - Returns the full package name if package is installed, empty otherwise. - - -MESSAGES --------- -installed - The deb-file was installed. - -removed (--remove) - The package was removed, keeping config. - -removed (--purge) - The package was removed including config (purged). - - -EXAMPLES --------- - -.. code-block:: sh - - # Install foo and bar packages - __package_dpkg foo_0.1_all.deb --source /tmp/foo_0.1_all.deb - __package_dpkg bar_1.4.deb --source $__type/files/bar_1.4.deb - - # uninstall baz: - __package_dpkg baz_1.4_amd64.deb \ - --source $__type/files/baz_1.4_amd64.deb \ - --state "absent" - # uninstall baz and also purge config-files: - __package_dpkg baz_1.4_amd64.deb \ - --source $__type/files/baz_1.4_amd64.deb \ - --purge-if-absent \ - --state "absent" - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7), :strong:`dpkg-query`\ (1) - - -AUTHORS -------- -| Tomas Pospisek -| Thomas Eckert - - -COPYING -------- -Copyright \(C) 2013 Tomas Pospisek. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. -This type is based on __package_apt. diff --git a/cdist/conf/type/__package_dpkg/manifest b/cdist/conf/type/__package_dpkg/manifest deleted file mode 100755 index 6d228d8e..00000000 --- a/cdist/conf/type/__package_dpkg/manifest +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -e -# -# 2013 Tomas Pospisek (tpo_deb sourcepole.ch) -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This __package_dpkg type does not check whether a *.deb package is -# allready installed. It just copies the *.deb package over to the -# destination and installs it. We could use __package_apt to check -# whether a *.deb package is allready installed and only install it -# if we're given a --force argument or similar (would be clever not -# to conflict with dpkg's --force options). But currently we don't -# do any checks or --force'ing. - - -state=$( cat "$__object/parameter/state" ) -package_path=$( cat "$__object/parameter/source" ) -package=$( basename "$__object_id" ) -state_is="$(cat "$__object/explorer/pkg_state")" -state_should="" - -[ "$state" = "absent" ] || state_should="$package" -[ "$state_is" = "$state_should" ] && exit 0 - -__file "/var/cache/apt/archives/$package" \ - --source "$package_path" \ - --state "$state" - diff --git a/cdist/conf/type/__package_dpkg/nonparallel b/cdist/conf/type/__package_dpkg/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_dpkg/parameter/boolean b/cdist/conf/type/__package_dpkg/parameter/boolean deleted file mode 100644 index f9a0f6b0..00000000 --- a/cdist/conf/type/__package_dpkg/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -purge-if-absent diff --git a/cdist/conf/type/__package_dpkg/parameter/default/state b/cdist/conf/type/__package_dpkg/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_dpkg/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_dpkg/parameter/required b/cdist/conf/type/__package_dpkg/parameter/required deleted file mode 100644 index 5a18cd2f..00000000 --- a/cdist/conf/type/__package_dpkg/parameter/required +++ /dev/null @@ -1 +0,0 @@ -source diff --git a/cdist/conf/type/__package_emerge/gencode-remote b/cdist/conf/type/__package_emerge/gencode-remote deleted file mode 100755 index e1b85ebb..00000000 --- a/cdist/conf/type/__package_emerge/gencode-remote +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh -e -# -# 2013 Thomas Oettli (otho at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages with Portage (mostly gentoo) -# - -if [ -f "$__object/parameter/name" ]; then - name="$__object/parameter/name" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -version="$(cat "$__object/parameter/version")" - -if [ -n "$version" ]; then - name="=$name-$version" -fi - -pkg_version="$(cat "$__object/explorer/pkg_version")" -if [ -z "$pkg_version" ]; then - state_is="absent" -elif [ -z "$version" ] && [ "$(echo "$pkg_version" | wc -l)" -gt 1 ]; then - echo "Package name is not unique! The following packages are installed:" >&2 - echo "$pkg_version" >&2 - exit 1 -elif [ -n "$version" ] && [ "$(echo "$pkg_version" | cut -d " " -f 1 | sort | uniq | wc -l)" -gt 1 ]; then - echo "Package name is not unique! The following packages are installed:" >&2 - echo "$pkg_version" >&2 - exit 1 -else - state_is="present" - if [ -n "$version" ] && echo "$pkg_version" | cut -d " " -f 2 | grep -q -x "$version"; then - installed_version="$(echo "$pkg_version" | cut -d " " -f 2 | grep -x "$version")" - else - installed_version="$(echo "$pkg_version" | cut -d " " -f 2 | tail -n 1)" - fi -fi - - -# Exit if nothing is needed to be done -[ "$state_is" = "$state_should" ] && { [ -z "$version" ] || [ "$installed_version" = "$version" ]; } && exit 0 -[ "$state_should" = "absent" ] && [ -n "$version" ] && [ "$installed_version" != "$version" ] && exit 0 - - -case "$state_should" in - present) - echo "emerge '$name' &>/dev/null || exit 1" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "emerge -C '$name' &>/dev/null || exit 1" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_emerge/man.rst b/cdist/conf/type/__package_emerge/man.rst deleted file mode 100644 index 88adaff0..00000000 --- a/cdist/conf/type/__package_emerge/man.rst +++ /dev/null @@ -1,63 +0,0 @@ -cdist-type__package_emerge(7) -============================= - -NAME ----- -cdist-type__package_emerge - Manage packages with portage - - -DESCRIPTION ------------ -Portage is usually used on the gentoo distribution to manage packages. -This type requires app-portage/gentoolkit installed on the target host. -cdist-type__package_emerge_dependencies is supposed to install the needed -packages on the target host. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present". - -version - If supplied, use to install or uninstall a specific version of the package named. - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure sys-devel/gcc is installed - __package_emerge sys-devel/gcc --state present - - # If you want a specific version of a package - __package_emerge app-portage/gentoolkit --state present --version 0.3.0.8-r2 - - # Remove package - __package_emerge sys-devel/gcc --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7), :strong:`cdist-type__package_emerge_dependencies`\ (7) - - -AUTHORS -------- -Thomas Oettli - - -COPYING -------- -Copyright \(C) 2013 Thomas Oettli. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_emerge/nonparallel b/cdist/conf/type/__package_emerge/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_emerge/parameter/default/state b/cdist/conf/type/__package_emerge/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_emerge/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_emerge/parameter/default/version b/cdist/conf/type/__package_emerge/parameter/default/version deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_emerge_dependencies/explorer/flaggie_installed b/cdist/conf/type/__package_emerge_dependencies/explorer/flaggie_installed deleted file mode 100644 index 1652ffc3..00000000 --- a/cdist/conf/type/__package_emerge_dependencies/explorer/flaggie_installed +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -if [ -x /usr/bin/flaggie ]; then - echo "true" -else - echo "false" -fi diff --git a/cdist/conf/type/__package_emerge_dependencies/explorer/gentoolkit_installed b/cdist/conf/type/__package_emerge_dependencies/explorer/gentoolkit_installed deleted file mode 100644 index 74c2378d..00000000 --- a/cdist/conf/type/__package_emerge_dependencies/explorer/gentoolkit_installed +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -if [ -x /usr/bin/q ]; then - echo "true" -else - echo "false" -fi diff --git a/cdist/conf/type/__package_emerge_dependencies/gencode-remote b/cdist/conf/type/__package_emerge_dependencies/gencode-remote deleted file mode 100755 index f3e6f76e..00000000 --- a/cdist/conf/type/__package_emerge_dependencies/gencode-remote +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -e - -gentoolkit_installed="$(cat "$__object/explorer/gentoolkit_installed")" -flaggie_installed="$(cat "$__object/explorer/flaggie_installed")" - -if [ "${gentoolkit_installed}" != "true" ]; then - # emerge app-portage/gentoolkit - echo "emerge app-portage/gentoolkit &> /dev/null || exit 1" - echo "installed app-portage/gentoolkit" >> "$__messages_out" -fi - -if [ "${flaggie_installed}" != "true" ]; then - # emerge app-portage/flaggie - echo "emerge app-portage/flaggie &> /dev/null || exit 1" - echo "installed app-portage/flaggie" >> "$__messages_out" -fi diff --git a/cdist/conf/type/__package_emerge_dependencies/man.rst b/cdist/conf/type/__package_emerge_dependencies/man.rst deleted file mode 100644 index 598d31f1..00000000 --- a/cdist/conf/type/__package_emerge_dependencies/man.rst +++ /dev/null @@ -1,52 +0,0 @@ -cdist-type__package_emerge_dependencies(7) -========================================== - -NAME ----- -cdist-type__package_emerge_dependencies - Install dependencies for __package_emerge - - -DESCRIPTION ------------ -Portage is usually used on the gentoo distribution to manage packages. -This type installs the following tools which are required by __package_emerge to work: - -* app-portage/flaggie -* app-portage/gentoolkit - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -None - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure app-portage/flaggie and app-portage/gentoolkit are installed - __package_emerge_dependencies - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7), :strong:`cdist-type__package_emerge`\ (7) - - -AUTHORS -------- -Thomas Oettli - - -COPYING -------- -Copyright \(C) 2013 Thomas Oettli. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_emerge_dependencies/nonparallel b/cdist/conf/type/__package_emerge_dependencies/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_emerge_dependencies/singleton b/cdist/conf/type/__package_emerge_dependencies/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_luarocks/explorer/pkg_status b/cdist/conf/type/__package_luarocks/explorer/pkg_status deleted file mode 100755 index e83e8ce6..00000000 --- a/cdist/conf/type/__package_luarocks/explorer/pkg_status +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# 2012 SwellPath, Inc. -# Christian G. Warden -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# Retrieve the status of a rock -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -# Accept luarocks failing if package is not known/installed -luarocks list "$name" | grep -E -A1 "^$name$" || exit 0 diff --git a/cdist/conf/type/__package_luarocks/gencode-remote b/cdist/conf/type/__package_luarocks/gencode-remote deleted file mode 100755 index d83b3c3a..00000000 --- a/cdist/conf/type/__package_luarocks/gencode-remote +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -e -# -# 2012 SwellPath, Inc. -# Christian G. Warden -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage LuaRocks packages -# - - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -if grep -q "(installed)" "$__object/explorer/pkg_status"; then - state_is="present" -else - state_is="absent" -fi - -# Leave if nothing is to be done -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - echo "luarocks install '$name'" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "luarocks remove '$name'" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_luarocks/man.rst b/cdist/conf/type/__package_luarocks/man.rst deleted file mode 100644 index 5dc10195..00000000 --- a/cdist/conf/type/__package_luarocks/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__package_luarocks(7) -=============================== - -NAME ----- -cdist-type__package_luarocks - Manage luarocks packages - - -DESCRIPTION ------------ -LuaRocks is a deployment and management system for Lua modules. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure luasocket is installed - __package_luarocks luasocket --state present - - # Remove package - __package_luarocks luasocket --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Christian G. Warden - - -COPYING -------- -Copyright \(C) 2012 SwellPath, Inc. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_luarocks/manifest b/cdist/conf/type/__package_luarocks/manifest deleted file mode 100755 index 7d8262ca..00000000 --- a/cdist/conf/type/__package_luarocks/manifest +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -e -# -# 2012 SwellPath, Inc. -# Christian G. Warden -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -__package luarocks --state installed -__package make --state installed diff --git a/cdist/conf/type/__package_luarocks/nonparallel b/cdist/conf/type/__package_luarocks/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_luarocks/parameter/default/state b/cdist/conf/type/__package_luarocks/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_luarocks/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_luarocks/parameter/optional b/cdist/conf/type/__package_luarocks/parameter/optional deleted file mode 100644 index 1b423dc4..00000000 --- a/cdist/conf/type/__package_luarocks/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -name -state diff --git a/cdist/conf/type/__package_opkg/gencode-remote b/cdist/conf/type/__package_opkg/gencode-remote deleted file mode 100755 index 269d5f49..00000000 --- a/cdist/conf/type/__package_opkg/gencode-remote +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -e -# -# 2011,2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2012 Giel van Schijndel (giel plus cdist at mortis dot eu) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages on OpenWRT and co. -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -state_is="$(cat "$__object/explorer/pkg_status")" -case "$state_is" in - absent*) - present="$(echo "$state_is" | cut -d ' ' -f 2)" - state_is="absent" - ;; -esac - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - if [ "$present" = "notpresent" ]; then - echo "opkg --verbosity=0 update" - fi - echo "opkg --verbosity=0 install '$name'" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "opkg --verbosity=0 remove '$name'" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: ${state_should}" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_opkg/man.rst b/cdist/conf/type/__package_opkg/man.rst deleted file mode 100644 index 0fd40b33..00000000 --- a/cdist/conf/type/__package_opkg/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__package_opkg(7) -=========================== - -NAME ----- -cdist-type__package_opkg - Manage packages with opkg - - -DESCRIPTION ------------ -opkg is usually used on OpenWRT to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure lsof is installed - __package_opkg lsof --state present - - # Remove obsolete package - __package_opkg dnsmasq --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Giel van Schijndel - - -COPYING -------- -Copyright \(C) 2012 Giel van Schijndel. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_opkg/nonparallel b/cdist/conf/type/__package_opkg/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_opkg/parameter/default/state b/cdist/conf/type/__package_opkg/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_opkg/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_opkg/parameter/optional b/cdist/conf/type/__package_opkg/parameter/optional deleted file mode 100644 index 1b423dc4..00000000 --- a/cdist/conf/type/__package_opkg/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -name -state diff --git a/cdist/conf/type/__package_pacman/man.rst b/cdist/conf/type/__package_pacman/man.rst deleted file mode 100644 index 2686202d..00000000 --- a/cdist/conf/type/__package_pacman/man.rst +++ /dev/null @@ -1,58 +0,0 @@ -cdist-type__package_pacman(7) -============================= - -NAME ----- -cdist-type__package_pacman - Manage packages with pacman - - -DESCRIPTION ------------ -Pacman is usually used on the Archlinux distribution to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh in installed - __package_pacman zsh --state present - - # If you don't want to follow pythonX packages, but always use python - __package_pacman python --state present --name python2 - - # Remove obsolete package - __package_pacman puppet --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_pacman/nonparallel b/cdist/conf/type/__package_pacman/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pacman/parameter/default/state b/cdist/conf/type/__package_pacman/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_pacman/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_pacman/parameter/optional b/cdist/conf/type/__package_pacman/parameter/optional deleted file mode 100644 index 1b423dc4..00000000 --- a/cdist/conf/type/__package_pacman/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -name -state diff --git a/cdist/conf/type/__package_pip/explorer/state b/cdist/conf/type/__package_pip/explorer/state deleted file mode 100644 index 5be07280..00000000 --- a/cdist/conf/type/__package_pip/explorer/state +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Development supported by Local AG (www.local.ch) -# - -nameparam="$__object/parameter/name" -if [ -f "$nameparam" ]; then - name=$(cat "$nameparam") -else - name="$__object_id" -fi - -pipparam="$__object/parameter/pip" -if [ -f "$pipparam" ]; then - pip=$(cat "$pipparam") -else - pip="pip" -fi - -# If there is no pip, it may get created from somebody else. -# If it will be created, there is probably no package installed. -if ! command -v "$pip" >/dev/null 2>&1; then - echo absent -else - - if "$pip" freeze | grep -i -q "^$name=="; then - echo present - else - echo absent - fi -fi diff --git a/cdist/conf/type/__package_pip/gencode-remote b/cdist/conf/type/__package_pip/gencode-remote deleted file mode 100755 index dcc4fdf9..00000000 --- a/cdist/conf/type/__package_pip/gencode-remote +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -e -# -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# 2016 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Development supported by Local AG (www.local.ch) -# - -state_is=$(cat "$__object/explorer/state") -state_should="$(cat "$__object/parameter/state")" - -[ "$state_is" = "$state_should" ] && exit 0 - -nameparam="$__object/parameter/name" -if [ -f "$nameparam" ]; then - name=$(cat "$nameparam") -else - name="$__object_id" -fi - -pipparam="$__object/parameter/pip" -if [ -f "$pipparam" ]; then - pip=$(cat "$pipparam") -else - pip="pip" -fi - -runasparam="$__object/parameter/runas" -if [ -f "$runasparam" ] -then - runas=$(cat "$runasparam") -else - runas="" -fi - -case "$state_should" in - present) - if [ "$runas" ] - then - echo "su -c '$pip install -q $name' $runas" - else - echo $pip install -q "$name" - fi - echo "installed" >> "$__messages_out" - ;; - absent) - if [ "$runas" ] - then - echo "su -c '$pip uninstall -q -y $name' $runas" - else - echo $pip uninstall -q -y "$name" - fi - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_pip/man.rst b/cdist/conf/type/__package_pip/man.rst deleted file mode 100644 index 234ceee2..00000000 --- a/cdist/conf/type/__package_pip/man.rst +++ /dev/null @@ -1,65 +0,0 @@ -cdist-type__package_pip(7) -========================== - -NAME ----- -cdist-type__package_pip - Manage packages with pip - - -DESCRIPTION ------------ -Pip is used in Python environments to install packages. -It is also included in the python virtualenv environment. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -pip - Instead of using pip from PATH, use the specific pip path. - -state - Either "present" or "absent", defaults to "present" - -runas - Run pip as specified user. By default it runs as root. - - -EXAMPLES --------- - -.. code-block:: sh - - # Install a package - __package_pip pyro --state present - - # Use pip in a virtualenv located at /root/shinken_virtualenv - __package_pip pyro --state present --pip /root/shinken_virtualenv/bin/pip - - # Use pip in a virtualenv located at /foo/shinken_virtualenv as user foo - __package_pip pyro --state present --pip /foo/shinken_virtualenv/bin/pip --runas foo - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_pip/nonparallel b/cdist/conf/type/__package_pip/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pip/parameter/default/state b/cdist/conf/type/__package_pip/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_pip/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_pip/parameter/optional b/cdist/conf/type/__package_pip/parameter/optional deleted file mode 100644 index d909e790..00000000 --- a/cdist/conf/type/__package_pip/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -name -pip -state -runas diff --git a/cdist/conf/type/__package_pkg_freebsd/explorer/pkg_version b/cdist/conf/type/__package_pkg_freebsd/explorer/pkg_version deleted file mode 100755 index 0a1ab75c..00000000 --- a/cdist/conf/type/__package_pkg_freebsd/explorer/pkg_version +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the status of a package - parsed dpkg output -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -# Don't produce "no pkgs installed" output -- breaks things -PKG_OUTPUT=$(pkg_info 2>&1) -if [ ! "$PKG_OUTPUT" = "pkg_info: no packages installed" ]; then - printf "%s" "$(echo "$PKG_OUTPUT" \ - | awk '{print $1}' \ - | sed 's/^\(.*\)-\([^-]*\)$/name:\1 ver:\2/g' \ - | grep "name:$name ver:" \ - | sed 's/^.*ver:\(.*\)/\1/g')" -fi - diff --git a/cdist/conf/type/__package_pkg_freebsd/gencode-remote b/cdist/conf/type/__package_pkg_freebsd/gencode-remote deleted file mode 100755 index 3f88f6bc..00000000 --- a/cdist/conf/type/__package_pkg_freebsd/gencode-remote +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages with pkg on FreeBSD -# - -assert () # If condition false, -{ #+ exit from script with error message. - E_PARAM_ERR=98 - E_ASSERT_FAILED=99 - - if [ -z "$2" ] # Not enough parameters passed. - then - return $E_PARAM_ERR # No damage done. - fi - - lineno=$2 - - if [ ! "$1" ] - then - echo "Assertion failed: \"$1\"" - # shellcheck disable=SC2039 - echo "File \"$0\", line $lineno, called by $(caller 0)" - exit $E_ASSERT_FAILED - fi -} - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -flavor="$(cat "$__object/parameter/flavor")" -version="$(cat "$__object/parameter/version")" -pkgsite="$(cat "$__object/parameter/pkgsite")" -state="$(cat "$__object/parameter/state")" -curr_version="$(cat "$__object/explorer/pkg_version")" -add_cmd="pkg_add" -rm_cmd="pkg_delete" -cmd="" - -# Print the command to be executed -# Parms: $1 -- mode, "remove" or "add" -# $2 -- the command to be echoed -# FIXME: This is ugly. -execcmd(){ - # Set the PACKAGESITE if we're ADDing a new package - if [ "$1" = "add" ] && [ -n "$pkgsite" ]; then - # Use http.../All/ if we know the exact version we want, use .../Latest/ otherwise - pkgsite="export PACKAGESITE=${pkgsite}" - [ -n "$version" ] && pkgsite="${pkgsite}/All/" || pkgsite="${pkgsite}/Latest/" - echo "${pkgsite}" - fi - echo "${2} 2>&- >&-" # Silence the output of the command - echo "status=\$?" - echo "if [ \"\$status\" -ne \"0\" ]; then" - echo " echo \"Error: ${cmd} exited nonzero with \$status\"'!' >&2" - echo " exit 1" - echo "fi" -} - -if [ -n "$curr_version" ]; then # PKG *is* installed - if [ "$state" = "absent" ]; then # Shouldn't be installed - if [ -n "$flavor" ]; then - cmd="${rm_cmd} ${name}-${flavor}-${curr_version}" - else - cmd="${rm_cmd} ${name}-${curr_version}" - fi - execcmd "remove" "${cmd}" - echo "removed" >> "$__messages_out" - exit 0 - else # Should be installed - if [ -n "$version" ]; then # Want a specific version - if [ "$version" = "$curr_version" ]; then # Current version is correct - exit 0 - else # Current version is wrong, fix - #updatepkg "$name" "$version" - # shellcheck disable=SC2039 - assert "! ${version} = ${curr_version}" $LINENO - cmd="${rm_cmd} ${name}-${curr_version}" - execcmd "remove" "${cmd}" - cmd="${add_cmd} -r ${name}-${version}" - execcmd "add" "${cmd}" - echo "installed" >> "$__messages_out" - fi - else # Don't care what version to use - exit 0 - fi - fi -else # PKG *isn't* installed - if [ "$state" = "absent" ]; then # Shouldn't be installed - exit 0 - elif [ "$state" = "present" ]; then # Is not currently installed, should be - if [ -n "$flavor" ]; then - cmd="${add_cmd} -r ${name}-${flavor}" - else - cmd="${add_cmd} -r ${name}" - fi - if [ -n "$version" ]; then - cmd="${cmd}-${version}" - fi - execcmd "add" "${cmd}" - echo "installed" >> "$__messages_out" - exit 0 - fi -fi - -# Debug -#set +x diff --git a/cdist/conf/type/__package_pkg_freebsd/man.rst b/cdist/conf/type/__package_pkg_freebsd/man.rst deleted file mode 100644 index b06c7faf..00000000 --- a/cdist/conf/type/__package_pkg_freebsd/man.rst +++ /dev/null @@ -1,70 +0,0 @@ -cdist-type__package_pkg_freebsd(7) -================================== - -NAME ----- -cdist-type__package_pkg_freebsd - Manage FreeBSD packages - - -DESCRIPTION ------------ -This type is usually used on FreeBSD to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -flavor - If supplied, use to avoid ambiguity. - -version - If supplied, use to install a specific version of the package named. - -pkgsite - If supplied, use to install from a specific package repository. - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh is installed - __package_pkg_freebsd zsh --state present - - # Ensure vim is installed, use flavor no_x11 - __package_pkg_freebsd vim --state present --flavor no_x11 - - # If you don't want to follow pythonX packages, but always use python - __package_pkg_freebsd python --state present --name python2 - - # Remove obsolete package - __package_pkg_freebsd puppet --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2012 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_pkg_freebsd/nonparallel b/cdist/conf/type/__package_pkg_freebsd/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkg_freebsd/parameter/default/flavor b/cdist/conf/type/__package_pkg_freebsd/parameter/default/flavor deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkg_freebsd/parameter/default/pkgsite b/cdist/conf/type/__package_pkg_freebsd/parameter/default/pkgsite deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkg_freebsd/parameter/default/state b/cdist/conf/type/__package_pkg_freebsd/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_pkg_freebsd/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_pkg_freebsd/parameter/default/version b/cdist/conf/type/__package_pkg_freebsd/parameter/default/version deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkg_freebsd/parameter/optional b/cdist/conf/type/__package_pkg_freebsd/parameter/optional deleted file mode 100644 index 8cb68f98..00000000 --- a/cdist/conf/type/__package_pkg_freebsd/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -name -flavor -version -pkgsite -state diff --git a/cdist/conf/type/__package_pkg_openbsd/explorer/pkg_state b/cdist/conf/type/__package_pkg_openbsd/explorer/pkg_state deleted file mode 100755 index 9cd17787..00000000 --- a/cdist/conf/type/__package_pkg_openbsd/explorer/pkg_state +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Copyright 2018, Takashi Yoshi -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the status of a package - parsed pkg_info output -# - -if [ -f "${__object}/parameter/name" ] -then - pkgid="$(cat "${__object}/parameter/name")" -else - pkgid="${__object_id}" -fi - -if [ -f "${__object}/parameter/version" ] -then - pkgid="${pkgid}-$(cat "${__object}/parameter/version")" -fi - -if [ -f "${__object}/parameter/flavor" ] -then - # If a flavor but no version is given we need to add another -, - # otherwise pkg_info confuses the flavor with the version. - [ -f "${__object}/parameter/version" ] || pkgid="${pkgid}-" - - pkgid="${pkgid}-$(cat "${__object}/parameter/flavor")" -fi - - -pkg_info -q -I "inst:${pkgid}" >/dev/null 2>&1 \ - && echo 'present' || echo 'absent' - -exit 0 diff --git a/cdist/conf/type/__package_pkg_openbsd/gencode-remote b/cdist/conf/type/__package_pkg_openbsd/gencode-remote deleted file mode 100755 index 5a21ce12..00000000 --- a/cdist/conf/type/__package_pkg_openbsd/gencode-remote +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -e -# -# 2011 Andi Brönnimann (andi-cdist at v-net.ch) -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# 2018 Takashi Yoshi -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages with pkg on OpenBSD -# - -os_version=$(cat "${__global}/explorer/os_version") -machine=$(cat "${__global}/explorer/machine") - -if [ -f "${__object}/parameter/version" ]; then - version=$(cat "${__object}/parameter/version") -fi - -if [ -f "${__object}/parameter/flavor" ]; then - flavor=$(cat "${__object}/parameter/flavor") -fi - -# Do not show progress bar -pkgopts='-x' - -name="${__object_id}" -if [ -f "${__object}/parameter/name" ]; then - name=$(cat "${__object}/parameter/name") -fi - -if [ -n "${version}" ] && [ -n "${flavor}" ]; then - pkgid="${name}-${version}-${flavor}" -elif [ -n "${version}" ]; then - pkgid="${name}-${version}" -elif [ -f "${__object}/parameter/flavor" ]; then - pkgid="${name}--${flavor}" -else - pkgid="${name}" -fi - -state_should=$(cat "${__object}/parameter/state") - -if [ -f "${__object}/parameter/pkg_path" ]; then - pkg_path=$(cat "${__object}/parameter/pkg_path") -else - has_installurl=$(cat "${__object}/explorer/has_installurl") - if [ 'yes' != "${has_installurl}" ]; then - # There is no default PKG_PATH, try to provide one - pkg_path="ftp://ftp.openbsd.org/pub/OpenBSD/${os_version}/packages/${machine}/" - fi -fi - -state_is=$(cat "${__object}/explorer/pkg_state") -[ "${state_is}" = "${state_should}" ] && exit 0 - -case "${state_should}" in - present) - if [ -n "${pkg_path}" ]; then - echo "export PKG_PATH='${pkg_path}'" - fi - - # Use this because pkg_add doesn't properly handle errors - cat <&1 || true) - -if ! pkg_info -q -I 'inst:${pkgid}' | grep -q '^${name}-${version}.*${flavor}$' 2>/dev/null -then - # We didn't find the package in the list of 'installed packages', so it failed. - # This is necessary because pkg_add doesn't return properly - - if [ -z "\${status}" ]; then - status='Failed to add package, uncaught exception.' - fi - echo "Error: \${status}" >&2 - exit 1 -fi -EOF - echo 'installed' >> "${__messages_out}" - ;; - - absent) - # Use this because pkg_delete doesn't properly handle errors - cat <&1 || true) - -if pkg_info -q -I 'inst:${pkgid}' | grep -q '^${name}-${version}.*${flavor}' 2>/dev/null -then - # We found the package in the list of 'installed packages'. - # This would indicate that pkg_delete failed, send the output of pkg_delete - - if [ -z "\${status}" ]; then - status='Failed to remove package, uncaught exception.' - fi - echo "Error: \${status}" >&2 - exit 1 -fi -EOF - echo 'removed' >> "${__messages_out}" - ;; - *) - echo "Unknown state: ${state_should}" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_pkg_openbsd/man.rst b/cdist/conf/type/__package_pkg_openbsd/man.rst deleted file mode 100644 index dcfd0719..00000000 --- a/cdist/conf/type/__package_pkg_openbsd/man.rst +++ /dev/null @@ -1,71 +0,0 @@ -cdist-type__package_pkg(7) -========================== - -NAME ----- -cdist-type__package_pkg - Manage OpenBSD packages - - -DESCRIPTION ------------ -This type is usually used on OpenBSD to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -flavor - If supplied, use to avoid ambiguity. - -version - If supplied, use to avoid ambiguity. - -state - Either "present" or "absent", defaults to "present" - -pkg_path - Manually specify a PKG_PATH to add packages from. - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh is installed - __package_pkg_openbsd zsh --state present - - # Ensure vim is installed, use flavor no_x11 - __package_pkg_openbsd vim --state present --flavor no_x11 - - # If you don't want to follow pythonX packages, but always use python - __package_pkg_openbsd python --state present --name python2 - - # Remove obsolete package - __package_pkg_openbsd puppet --state absent - - # Add a package using a particular mirror - __package_pkg_openbsd bash \ - --pkg_path http://openbsd.mirrorcatalogs.com/snapshots/packages/amd64 - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Andi Brönnimann - - -COPYING -------- -Copyright \(C) 2011 Andi Brönnimann. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__package_pkg_openbsd/nonparallel b/cdist/conf/type/__package_pkg_openbsd/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkg_openbsd/parameter/default/state b/cdist/conf/type/__package_pkg_openbsd/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_pkg_openbsd/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_pkg_openbsd/parameter/optional b/cdist/conf/type/__package_pkg_openbsd/parameter/optional deleted file mode 100644 index 6a5f9277..00000000 --- a/cdist/conf/type/__package_pkg_openbsd/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -name -version -flavor -state -pkg_path diff --git a/cdist/conf/type/__package_pkgng_freebsd/explorer/pkg_version b/cdist/conf/type/__package_pkgng_freebsd/explorer/pkg_version deleted file mode 100755 index 92ce0623..00000000 --- a/cdist/conf/type/__package_pkgng_freebsd/explorer/pkg_version +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# 2014 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the status of a package - parsed dpkg output -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -# Don't produce "no pkgs installed" output -- breaks things -PKG_OUTPUT=$(pkg info 2>&1) -printf "%s" "$(echo "$PKG_OUTPUT" \ - | awk '{print $1}' \ - | sed 's/^\(.*\)-\([^-]*\)$/name:\1 ver:\2/g' \ - | grep "name:$name ver:" \ - | sed 's/^.*ver:\(.*\)/\1/g')" - diff --git a/cdist/conf/type/__package_pkgng_freebsd/gencode-remote b/cdist/conf/type/__package_pkgng_freebsd/gencode-remote deleted file mode 100755 index dd36efda..00000000 --- a/cdist/conf/type/__package_pkgng_freebsd/gencode-remote +++ /dev/null @@ -1,130 +0,0 @@ -#!/bin/sh -e -# -# 2014 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages with pkg on FreeBSD -# - -# Debug -#exec >&2 -#set -x - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -flavor="$(cat "$__object/parameter/flavor")" -version="$(cat "$__object/parameter/version")" - -if [ -f "$__object/parameter/upgrade" ]; then - upgrade="true" -else - upgrade="false" -fi - -repo="$(cat "$__object/parameter/repo")" -state="$(cat "$__object/parameter/state")" -curr_version="$(cat "$__object/explorer/pkg_version")" -add_cmd="pkg install -y" -rm_cmd="pkg delete -y" -upg_cmd="pkg upgrade -y" -cmd="" - -# Print the command to be executed -# Parms: $1 -- mode, "rm", "add", or "upg" -# $2 -- the command to be echoed -execcmd(){ - _cmd="" - - case "$1" in - add) - _cmd="${add_cmd} $2" - echo "installed" >> "$__messages_out" - ;; - rm) - _cmd="${rm_cmd} $2" - echo "removed" >> "$__messages_out" - ;; - upg) - _cmd="${upg_cmd} $2" - echo "installed" >> "$__messages_out" - ;; - *) - printf "Error. Don't understand command: %s" "$1" >&2 - exit 1 - ;; - esac - - echo "$_cmd >/dev/null 2>&1" # Silence the output of the command - echo "status=\$?" - echo "if [ \"\$status\" -ne \"0\" ]; then" - echo " echo \"Error: ${_cmd} exited nonzero with \$status\"'!' >&2" - echo " exit 1" - echo "fi" -} - -if [ -n "$curr_version" ]; then # PKG *is* installed - if [ -n "$repo" ]; then - cmd="-r ${repo} ${name}" - else - cmd="${name}" - fi - if [ -n "$flavor" ]; then - cmd="${cmd}-${flavor}" - fi - # PKG is supposed to be removed - if [ "$state" = "absent" ]; then - execcmd "rm" "${cmd}" - # PKG is supposed to be installed to a particular version - elif [ -n "$version" ] && [ "$version" != "$curr_version" ]; then - if [ "$upgrade" = "true" ]; then - execcmd "upg" "${cmd}" - else - printf 'Version %s is already installed and pkg-ng cannot upgrade directly to version %s.\nTo upgrade to the latest version, use the --upgrade flag.\n' "$curr_version" "$version" >&2 - exit 1 - fi - # PKG is supposed to be installed to the latest version - else - : # Do nothing. - fi -else # PKG *isn't* installed - if [ "$state" = "absent" ]; then # Shouldn't be installed - exit 0 - else # Should be installed - if [ -n "$repo" ]; then - cmd="-r ${repo} ${name}" - else - cmd="${name}" - fi - if [ -n "$flavor" ]; then - cmd="${cmd}-${flavor}" - fi - if [ -n "$version" ]; then - cmd="${cmd}-${version}" - fi - - execcmd "add" "$cmd" - exit 0 - fi -fi - -# Debug -#set +x diff --git a/cdist/conf/type/__package_pkgng_freebsd/man.rst b/cdist/conf/type/__package_pkgng_freebsd/man.rst deleted file mode 100644 index 251e2c5f..00000000 --- a/cdist/conf/type/__package_pkgng_freebsd/man.rst +++ /dev/null @@ -1,101 +0,0 @@ -cdist-type__package_pkgng_freebsd(7) -==================================== - -NAME ----- -cdist-type__package_pkgng_freebsd - Manage FreeBSD packages with pkg-ng - - -DESCRIPTION ------------ -This type is usually used on FreeBSD to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -flavor - If supplied, use to avoid ambiguity. - -version - If supplied, use to install a specific version of the package named. - -repo - If supplied, use to install the package named from a particular repo. - -state - Either "present" or "absent", defaults to "present" - - -BOOLEAN PARAMETERS ------------------- -upgrade - If supplied, allow upgrading to the latest version of a package. - - -CAVEATS -------- -This type requires that repository definitions already exist in /etc/pkg/\*.conf. -Ensure that they exist prior to use of this type with __file. - -pkg-ng can't upgrade a package to a specific version. If this type needs to -upgrade a package, it can only ugprade to the latest available version. If the -"upgrade" parameter is not given and an upgrade needs to occur, an error will result. - - -MESSAGES --------- -install - The package was installed -remove - The package was removed -upgrade - The package was upgraded -exist - The package was already present and thus not installed - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh is installed - __package_pkgng_freebsd zsh --state present - - # Ensure vim is installed, use flavor no_x11 - __package_pkgng_freebsd vim --state present --flavor no_x11 - - # If you don't want to follow pythonX packages, but always use python - __package_pkgng_freebsd python --state present --name python2 - - # Install a package from a particular repository when multiples exist - __package_pkgng_freebsd bash --state present --repo myrepo - - # Remove obsolete package - __package_pkgng_freebsd puppet --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2014 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_pkgng_freebsd/nonparallel b/cdist/conf/type/__package_pkgng_freebsd/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkgng_freebsd/parameter/boolean b/cdist/conf/type/__package_pkgng_freebsd/parameter/boolean deleted file mode 100644 index 007ead00..00000000 --- a/cdist/conf/type/__package_pkgng_freebsd/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -upgrade \ No newline at end of file diff --git a/cdist/conf/type/__package_pkgng_freebsd/parameter/default/flavor b/cdist/conf/type/__package_pkgng_freebsd/parameter/default/flavor deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkgng_freebsd/parameter/default/repo b/cdist/conf/type/__package_pkgng_freebsd/parameter/default/repo deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkgng_freebsd/parameter/default/state b/cdist/conf/type/__package_pkgng_freebsd/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_pkgng_freebsd/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_pkgng_freebsd/parameter/default/version b/cdist/conf/type/__package_pkgng_freebsd/parameter/default/version deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_pkgng_freebsd/parameter/optional b/cdist/conf/type/__package_pkgng_freebsd/parameter/optional deleted file mode 100644 index 6e67f838..00000000 --- a/cdist/conf/type/__package_pkgng_freebsd/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -name -flavor -version -repo -state diff --git a/cdist/conf/type/__package_rubygem/gencode-remote b/cdist/conf/type/__package_rubygem/gencode-remote deleted file mode 100755 index abb40653..00000000 --- a/cdist/conf/type/__package_rubygem/gencode-remote +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -e -# -# 2011 Chase Allen James -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage Rubygem packages -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -if grep -q true "$__object/explorer/pkg_status"; then - state_is="present" -else - state_is="absent" -fi - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - echo "gem install '$name' --no-ri --no-rdoc" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "gem uninstall '$name'" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_rubygem/man.rst b/cdist/conf/type/__package_rubygem/man.rst deleted file mode 100644 index 96ad21f7..00000000 --- a/cdist/conf/type/__package_rubygem/man.rst +++ /dev/null @@ -1,56 +0,0 @@ -cdist-type__package_rubygem(7) -============================== - -NAME ----- -cdist-type__package_rubygem - Manage rubygem packages - - -DESCRIPTION ------------ -Rubygems is the default package management system for the Ruby programming language. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure sinatra is installed - __package_rubygem sinatra --state present - - # Remove package - __package_rubygem rails --state absent - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Chase Allen James - - -COPYING -------- - -Copyright \(C) 2011 Chase Allen James. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_rubygem/nonparallel b/cdist/conf/type/__package_rubygem/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_rubygem/parameter/default/state b/cdist/conf/type/__package_rubygem/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_rubygem/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_rubygem/parameter/optional b/cdist/conf/type/__package_rubygem/parameter/optional deleted file mode 100644 index 1b423dc4..00000000 --- a/cdist/conf/type/__package_rubygem/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -name -state diff --git a/cdist/conf/type/__package_update_index/explorer/currage b/cdist/conf/type/__package_update_index/explorer/currage deleted file mode 100644 index cfb778d5..00000000 --- a/cdist/conf/type/__package_update_index/explorer/currage +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# 2018 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -type="$("$__type_explorer/type")" - -case "$type" in - apt) - if [ -f "/var/cache/apt/pkgcache.bin" ]; then - echo $(($(date +"%s")-$(stat --format '%Y' /var/cache/apt/pkgcache.bin))) - else - echo 0 - fi - ;; - pacman) - if [ -d "/var/lib/pacman/sync" ]; then - echo $(($(date +"%s")-$(stat --format '%Y' /var/lib/pacman/sync))) - else - echo 0 - fi - ;; - alpine) - echo 0 - ;; - *) echo "Your specified type ($type) is currently not supported." >&2 - echo "Please contribute an implementation for it if you can." >&2 - ;; -esac diff --git a/cdist/conf/type/__package_update_index/explorer/type b/cdist/conf/type/__package_update_index/explorer/type deleted file mode 100644 index c98e1e67..00000000 --- a/cdist/conf/type/__package_update_index/explorer/type +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# -# 2018 Stu Zhao (z12y12l12 at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -if [ -f "$__object/parameter/type" ]; then - cat "$__object/parameter/type" -else - # By default determine package manager based on operating system - os="$("$__explorer/os")" - case "$os" in - amazon|scientific|centos|fedora|redhat) echo "yum" ;; - debian|ubuntu|devuan) echo "apt" ;; - archlinux) echo "pacman" ;; - alpine) echo "apk" ;; - *) - echo "Don't know how to manage packages on: $os" >&2 - exit 1 - ;; - esac -fi diff --git a/cdist/conf/type/__package_update_index/gencode-remote b/cdist/conf/type/__package_update_index/gencode-remote deleted file mode 100755 index 6c51cbed..00000000 --- a/cdist/conf/type/__package_update_index/gencode-remote +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -e -# -# 2014 Ricardo Catalinas Jiménez (jimenezrick at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Update the package index with the appropriate package manager -# - -type=$(cat "$__object/explorer/type") -currage="$(cat "$__object/explorer/currage")" -if [ -f "$__object/parameter/maxage" ]; then - maxage="$(cat "$__object/parameter/maxage")" -fi - -if [ -n "$maxage" ]; then - if [ "$type" != "apt" ] && [ "$type" != "pacman" ]; then - echo "ERROR: \"--maxage\" only supported for \"apt\" or \"pacman\" pkg-manager." >&2 - exit 1 - elif [ "$currage" -lt "$maxage" ]; then - exit 0 # no need to update - fi -fi - - -case "$type" in - yum) ;; - apt) - echo "apt-get --quiet update" - echo "apt-cache updated (age was: $currage)" >> "$__messages_out" - ;; - pacman) - echo "pacman --noprogressbar --sync --refresh" - echo "pacman package database synced (age was: $currage)" >> "$__messages_out" - ;; - apk) - echo "apk update" - echo "apk package database updated." >>"$__messages_out" - ;; - *) - echo "Don't know how to manage packages for type: $type" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_update_index/man.rst b/cdist/conf/type/__package_update_index/man.rst deleted file mode 100644 index 3cd787b9..00000000 --- a/cdist/conf/type/__package_update_index/man.rst +++ /dev/null @@ -1,71 +0,0 @@ -cdist-type__package_update_index(7) -=================================== - -NAME ----- -cdist-type__update_index - Update the package index - - -DESCRIPTION ------------ -This cdist type allows you to update the package index on the target. -It will automatically use the appropriate package manager. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -type - The package manager to use. Default is determined based on the $os - explorer variable. - e.g. - * apt for Debian - * yum for Red Hat - * pacman for Arch Linux - -maxage - Available for package manager apt and pacman, max time in seconds since - last update. Repo update is skipped if maxage is not reached yet. - -MESSAGES --------- -apt-cache updated (age was: currage) - apt-cache was updated (run of `apt-get update`). `currage` is the time - in seconds since the previous run. - - -EXAMPLES --------- - -.. code-block:: sh - - # Update the package index on the target - __package_update_index - - # Force use of a specific package manager - __package_update_index --type apt - - # Only update every hour: - __package_update_index --maxage 3600 --type apt - - # same as above (on apt-type systems): - __package_update_index --maxage 3600 - -AUTHORS -------- -| Ricardo Catalinas Jiménez -| Thomas Eckert -| Stu Zhao - - -COPYING -------- - -Copyright \(C) 2014 Ricardo Catalinas Jiménez. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_update_index/nonparallel b/cdist/conf/type/__package_update_index/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_update_index/parameter/optional b/cdist/conf/type/__package_update_index/parameter/optional deleted file mode 100644 index 7a0be716..00000000 --- a/cdist/conf/type/__package_update_index/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -type -maxage diff --git a/cdist/conf/type/__package_update_index/singleton b/cdist/conf/type/__package_update_index/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_upgrade_all/gencode-remote b/cdist/conf/type/__package_upgrade_all/gencode-remote deleted file mode 100755 index 38aa001e..00000000 --- a/cdist/conf/type/__package_upgrade_all/gencode-remote +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -e -# -# 2014 Ricardo Catalinas Jiménez (jimenezrick at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Upgrade all the already installed packages with the appropriate package -# manager -# - -type="$__object/parameter/type" - -apt_clean="$__object/parameter/apt-clean" - -apt_dist_upgrade="$__object/parameter/apt-dist-upgrade" - -if [ -f "$type" ]; then - type="$(cat "$type")" -else - # By default determine package manager based on operating system - os="$(cat "$__global/explorer/os")" - case "$os" in - amazon|scientific|centos|fedora|redhat) type="yum" ;; - debian|ubuntu|devuan) type="apt" ;; - archlinux) type="pacman" ;; - *) - echo "Don't know how to manage packages on: $os" >&2 - exit 1 - ;; - esac -fi - -aptget="DEBIAN_FRONTEND=noninteractive apt-get --quiet --yes --no-install-recommends -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\"" - -case "$type" in - yum) - echo "yum --quiet --assumeyes update" - echo "yum --quiet clean all" - ;; - apt) - if [ -f "$apt_dist_upgrade" ] - then echo "$aptget dist-upgrade" - else echo "$aptget upgrade" - fi - - if [ -f "$apt_clean" ] - then echo "apt-get --quiet clean" - else echo "apt-get --quiet autoclean" - fi - ;; - pacman) - echo "pacman --noprogressbar --noconfirm --sync --sysupgrade" - echo "pacman --noprogressbar --noconfirm --sync --clean" - ;; - *) - echo "Don't know how to manage packages on: $os" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_upgrade_all/man.rst b/cdist/conf/type/__package_upgrade_all/man.rst deleted file mode 100644 index e9e2b8ce..00000000 --- a/cdist/conf/type/__package_upgrade_all/man.rst +++ /dev/null @@ -1,62 +0,0 @@ -cdist-type__package_upgrade_all(7) -================================== - -NAME ----- -cdist-type__package_upgrade_all - Upgrade all the installed packages - - -DESCRIPTION ------------ -This cdist type allows you to upgrade all the installed packages on the -target. It will automatically use the appropriate package manager. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -type - The package manager to use. Default is determined based on the $os - explorer variable. - e.g. - * apt for Debian - * yum for Red Hat - * pacman for Arch Linux - - -BOOLEAN PARAMETERS ------------------- -apt-dist-upgrade - Do dist-upgrade instead of upgrade. - -apt-clean - Clean out the local repository of retrieved package files. - - -EXAMPLES --------- - -.. code-block:: sh - - # Upgrade all the installed packages on the target - __package_upgrade_all - - # Force use of a specific package manager - __package_upgrade_all --type apt - - -AUTHORS -------- -Ricardo Catalinas Jiménez - -COPYING -------- - -Copyright \(C) 2014 Ricardo Catalinas Jiménez. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_upgrade_all/nonparallel b/cdist/conf/type/__package_upgrade_all/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_upgrade_all/parameter/boolean b/cdist/conf/type/__package_upgrade_all/parameter/boolean deleted file mode 100644 index 7a56a34b..00000000 --- a/cdist/conf/type/__package_upgrade_all/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -apt-clean -apt-dist-upgrade diff --git a/cdist/conf/type/__package_upgrade_all/parameter/optional b/cdist/conf/type/__package_upgrade_all/parameter/optional deleted file mode 100644 index aa80e646..00000000 --- a/cdist/conf/type/__package_upgrade_all/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -type diff --git a/cdist/conf/type/__package_upgrade_all/singleton b/cdist/conf/type/__package_upgrade_all/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_yum/gencode-remote b/cdist/conf/type/__package_yum/gencode-remote deleted file mode 100755 index b52953f6..00000000 --- a/cdist/conf/type/__package_yum/gencode-remote +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -e -# -# 2011-2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages with yum (mostly Fedora) -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -# Support installing from an URL -if [ -f "$__object/parameter/url" ]; then - install_name="$(cat "$__object/parameter/url")" -else - install_name="$name" -fi - - -state_should="$(cat "$__object/parameter/state")" - -if grep -q -E "(scientific|centos|redhat|amazon)" "$__global/explorer/os"; then - opts="-y --quiet" -else - opts="--assumeyes --quiet" -fi - -not_provided="^no package provides" -not_installed='is not installed$' - -if grep -q "$not_provided" "$__object/explorer/pkg_version"; then - if grep -q "$not_installed" "$__object/explorer/pkg_version"; then - state_is="absent" - else - state_is="present" - fi -else - state_is="present" -fi - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - echo "yum $opts install '$install_name'" - echo "installed" >> "$__messages_out" - ;; - absent) - echo "yum $opts remove '$name'" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_yum/man.rst b/cdist/conf/type/__package_yum/man.rst deleted file mode 100644 index 45ad9a55..00000000 --- a/cdist/conf/type/__package_yum/man.rst +++ /dev/null @@ -1,65 +0,0 @@ -cdist-type__package_yum(7) -========================== - -NAME ----- -cdist-type__package_yum - Manage packages with yum - - -DESCRIPTION ------------ -Yum is usually used on the Fedora distribution to manage packages. -If you specify an unknown package, yum will display the -slightly confusing error message "Error: Nothing to do". - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" -url - URL to use for the package - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh in installed - __package_yum zsh --state present - - # If you don't want to follow pythonX packages, but always use python - __package_yum python --state present --name python2 - - # Remove obsolete package - __package_yum puppet --state absent - - __package epel-release-6-8 \ - --url http://mirror.switch.ch/ftp/mirror/epel/6/i386/epel-release-6-8.noarch.rpm - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2011-2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_yum/nonparallel b/cdist/conf/type/__package_yum/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_yum/parameter/default/state b/cdist/conf/type/__package_yum/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_yum/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_yum/parameter/optional b/cdist/conf/type/__package_yum/parameter/optional deleted file mode 100644 index 9293119d..00000000 --- a/cdist/conf/type/__package_yum/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -name -state -url diff --git a/cdist/conf/type/__package_zypper/gencode-remote b/cdist/conf/type/__package_zypper/gencode-remote deleted file mode 100755 index e45dd9ff..00000000 --- a/cdist/conf/type/__package_zypper/gencode-remote +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -e -# -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage packages with Zypper (mostly suse) -# - -# Debug -# exec >&2 -# set -x - -globalopts="--quiet --non-interactive" - -if [ -f "$__object/parameter/name" ]; then - name="$__object/parameter/name" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" -ptype="$(cat "$__object/parameter/ptype")" - -if [ -f "$__object/parameter/version" ]; then - version_should="$(cat "$__object/parameter/version")" - if [ "$ptype" != "package" ]; then - echo "version support only for type package implemented" >&2 - exit 2 - fi -else - version_should="" -fi - -pkg_version="$(cat "$__object/explorer/pkg_version")" -if [ -z "$pkg_version" ]; then - state_is="absent" - version_is="" -else - state_is="present" - version_is=${pkg_version##* } -fi - - -case "$state_should" in - present) - if [ -z "$version_should" ]; then - [ "$state_is" = "present" ] && exit 0 # if state is present, we dont need to do anything - echo "zypper $globalopts install --type '$ptype' --auto-agree-with-licenses '$name' >/dev/null" - echo "removed" >> "$__messages_out" - else - [ "$state_is" = "present" ] && [ "$version_should" = "$version_is" ] && exit 0 # if state is present and version is correct, we dont need to do anything - echo "zypper $globalopts install --oldpackage --type '$ptype' --auto-agree-with-licenses '$name' = '$version_should' >/dev/null" - echo "installed" >> "$__messages_out" - fi - ;; - absent) - [ "$state_is" = "absent" ] && exit 0 # if state is absent, we dont need to do anything - echo "zypper $globalopts remove --type '$ptype' '$name' >/dev/null" - echo "removed" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__package_zypper/man.rst b/cdist/conf/type/__package_zypper/man.rst deleted file mode 100644 index 0051359b..00000000 --- a/cdist/conf/type/__package_zypper/man.rst +++ /dev/null @@ -1,73 +0,0 @@ -cdist-type__package_zypper(7) -============================= - -NAME ----- -cdist-type__package_zypper - Manage packages with zypper - - -DESCRIPTION ------------ -Zypper is usually used on the SuSE distribution to manage packages. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -name - If supplied, use the name and not the object id as the package name. - -state - Either "present" or "absent", defaults to "present" - -version - The version of the package to install. Default is to install the version - chosen by the local package manager. For a list of available versions, - have a look at the output of "zypper se -s packagename" - -ptype - Either "package", "patch", "pattern", "product" or "srcpackage", defaults to "package". For a description see man zypper. - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure zsh is installed - __package_zypper zsh --state present - - # If you don't want to follow pythonX packages, but always use python - __package_zypper python --state present --name python2 - - # Ensure binutils is installed and the version is forced to be 2.23.1-0.19.2 - __package_zypper binutils --state present --version 2.23.1-0.19.2 - - # Remove package - __package_zypper cfengine --state absent - - # install all packages which belongs to pattern x11 - __package_zypper x11 --ptype pattern --state present - - -SEE ALSO --------- -:strong:`cdist-type__package`\ (7) - - -AUTHORS -------- -Daniel Heule - - -COPYING -------- -Copyright \(C) 2012 Nico Schottelius. -Copyright \(C) 2013 Daniel Heule. -You can redistribute it and/or modify it under the terms of the -GNU General Public License as published by the Free Software Foundation, -either version 3 of the License, or (at your option) any later version. diff --git a/cdist/conf/type/__package_zypper/nonparallel b/cdist/conf/type/__package_zypper/nonparallel deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__package_zypper/parameter/default/ptype b/cdist/conf/type/__package_zypper/parameter/default/ptype deleted file mode 100644 index ba3bd787..00000000 --- a/cdist/conf/type/__package_zypper/parameter/default/ptype +++ /dev/null @@ -1 +0,0 @@ -package diff --git a/cdist/conf/type/__package_zypper/parameter/default/state b/cdist/conf/type/__package_zypper/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__package_zypper/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__package_zypper/parameter/optional b/cdist/conf/type/__package_zypper/parameter/optional deleted file mode 100644 index bc8565fc..00000000 --- a/cdist/conf/type/__package_zypper/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -name -state -ptype -version diff --git a/cdist/conf/type/__pacman_conf/man.rst b/cdist/conf/type/__pacman_conf/man.rst deleted file mode 100644 index 6b8adfc9..00000000 --- a/cdist/conf/type/__pacman_conf/man.rst +++ /dev/null @@ -1,75 +0,0 @@ -cdist-type__pacman_conf(7) -========================== - -NAME ----- -cdist-type__pacman_conf - Manage pacman configuration - - -DESCRIPTION ------------ -The type allows you to configure options section, add or delete repositories and manage mirrorlists - - -REQUIRED PARAMETERS -------------------- -section - 'options' for configure options section - - Otherwise it specifies a repository or a plain file - -key - Specifies the key which will be set - - If section = 'options' or file is not set the key will - be checked against available keys from pacman.conf - -value - Specifies the value which will be set against the key - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - -file - Specifies the filename. - - The managed file will be named like 'plain_file_filename' - - If supplied the key will not be checked. - - -EXAMPLES --------- - -.. code-block:: sh - - # Manage options section in pacman.conf - __pacman_conf options_Architecture --section options --key Architecture --value auto - - # Add new repository - __pacman_conf localrepo_Server --section localrepo --key Server --value "file:///var/cache/pacman/pkg" - - # Add mirror to a mirrorlist - __pacman_conf customlist_Server --file customlist --section customlist --key Server\ - --value "file:///var/cache/pacman/pkg" - - -SEE ALSO --------- -:strong:`grep`\ (1) - - -AUTHORS -------- -Dominique Roux - - -COPYING -------- -Copyright \(C) 2015 Dominique Roux. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__pacman_conf/manifest b/cdist/conf/type/__pacman_conf/manifest deleted file mode 100755 index a43f18a1..00000000 --- a/cdist/conf/type/__pacman_conf/manifest +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/sh -e -# -# 2015 Dominique Roux (dominique.roux4 at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -#get params -section=$(cat "$__object/parameter/section") -key=$(cat "$__object/parameter/key") -value=$(cat "$__object/parameter/value") -file=$(cat "$__object/parameter/file" 2>/dev/null) -state=$(cat "$__object/parameter/state" 2>/dev/null) - -#path variable default /etc/pacman.d -sec_path="/etc/pacman.d" - -#allowed keys (from man pacman.conf) -allowed_option_keys="RootDir DBPath CacheDir GPGDir LogFile HoldPkg IgnorePkg IgnoreGroup Include Architecture XferCommand NoUpgrade NoExtract CleanMethod SigLevel LocalFileSigLevel RemoteFileSigLevel" -boolean_option_keys="UseSyslog Color UseDelta TotalDownload CheckSpace VerbosePkgLists" -allowed_repo_keys="Include Server SigLevel Usage" - -#set global variables -MATCH=0 - -#function for check if array contain string -contains_element() { - - MATCH=0 - - target=$1 - shift - - for key in "$@"; do - if [ "${key}" = "${target}" ]; then - MATCH=1 - return 0 - fi - done - MATCH=0 -} - -if [ "${file}" ]; then - __file "${sec_path}/plain_file_${file}"\ - --state exists --mode 666 - - if [ "${state}" = "present" ]; then - - require="__file/${sec_path}/plain_file_${file}" __key_value "${file}_${key}" \ - --file "${sec_path}/plain_file_${file}" --key "${key}" --value "${value}" --delimiter ' = ' - - exit 0 - - elif [ "${state}" = "absent" ]; then - require="__file/${sec_path}/plain_file_${file}" __key_value "${file}_${key}" \ - --state absent - exit 0 - - else - echo "ERROR: Unknown state: ${state}" >&2 - exit 0 - fi -fi - -if [ "${section}" = "options" ]; then - - __file "${sec_path}/${section}"\ - --state exists --mode 666 --source - << eof -[${section}] -eof - #check if key is valid - #check for boolean value - contains_element "${key}" "${boolean_option_keys}" - - if [ "${MATCH}" -eq 1 ]; then - if [ "${value}" = "on" ]; then - require="__file/${sec_path}/${section}" __line "${key}_${value}" \ - --file "${sec_path}/${section}" --line "${key}" - elif [ "${value}" = "off" ]; then - require="__file/${sec_path}/${section}" __line "${key}_${value}" \ - --file "${sec_path}/${section}" --line "${key}" --state absent - fi - - else - contains_element "${key}" "${allowed_option_keys}" - - if [ "${MATCH}" -eq 1 ]; then - require="__file/${sec_path}/${section}" __key_value "${section}_${key}" \ - --file "${sec_path}/${section}" --key "${key}" --value "${value}" --delimiter ' = ' - else - echo "Key: ${key} is not valid. Have a look at man pacman.conf" >&2 - fi - fi - -else - __file "${sec_path}/repo_${section}"\ - --state exists --mode 666 --source - << eof -[${section}] -eof - if [ "${state}" = "present" ]; then - - #check if key is valid - contains_element "${key}" "${allowed_repo_keys}" - if [ ${MATCH} -eq 0 ]; then - exit - fi - - require="__file/${sec_path}/repo_${section}" __key_value "${section}_${key}" \ - --file "${sec_path}/repo_${section}" --key "${key}" --value "${value}" --delimiter ' = ' - - elif [ "${state}" = "absent" ]; then - - require="__file/${sec_path}/repo_${section}" __key_value "${section}_${key}" \ - --state absent - - else - echo "ERROR: Unknown state: ${state}" >&2 - fi - -fi diff --git a/cdist/conf/type/__pacman_conf/parameter/default/file b/cdist/conf/type/__pacman_conf/parameter/default/file deleted file mode 100644 index 139597f9..00000000 --- a/cdist/conf/type/__pacman_conf/parameter/default/file +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/cdist/conf/type/__pacman_conf/parameter/default/state b/cdist/conf/type/__pacman_conf/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__pacman_conf/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__pacman_conf/parameter/optional b/cdist/conf/type/__pacman_conf/parameter/optional deleted file mode 100644 index 5d52aa2e..00000000 --- a/cdist/conf/type/__pacman_conf/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -file -state diff --git a/cdist/conf/type/__pacman_conf/parameter/required b/cdist/conf/type/__pacman_conf/parameter/required deleted file mode 100644 index 2f9d59e0..00000000 --- a/cdist/conf/type/__pacman_conf/parameter/required +++ /dev/null @@ -1,3 +0,0 @@ -section -key -value diff --git a/cdist/conf/type/__pacman_conf_integrate/files/mirrorlist b/cdist/conf/type/__pacman_conf_integrate/files/mirrorlist deleted file mode 100644 index a378fb50..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/files/mirrorlist +++ /dev/null @@ -1,344 +0,0 @@ -## -## Arch Linux repository mirrorlist -## Generated on 2015-03-15 -## - -## Worldwide -#Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch - -## Australia -#Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch -#Server = http://ftp.iinet.net.au/pub/archlinux/$repo/os/$arch -#Server = http://mirror.internode.on.net/pub/archlinux/$repo/os/$arch -#Server = http://mirror.rackcentral.com.au/archlinux/$repo/os/$arch -#Server = http://ftp.swin.edu.au/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.uber.com.au/$repo/os/$arch - -## Austria -#Server = http://mirror.easyname.at/archlinux/$repo/os/$arch -#Server = http://mirror1.htu.tugraz.at/archlinux/$repo/os/$arch - -## Bangladesh -#Server = http://mirrors.ispros.com.bd/archlinux/$repo/os/$arch - -## Belarus -#Server = http://ftp.byfly.by/pub/archlinux/$repo/os/$arch -#Server = http://mirror.datacenter.by/pub/archlinux/$repo/os/$arch - -## Belgium -#Server = http://archlinux.cu.be/$repo/os/$arch -#Server = http://archlinux.mirror.kangaroot.net/$repo/os/$arch - -## Brazil -#Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch -#Server = http://www.las.ic.unicamp.br/pub/archlinux/$repo/os/$arch -#Server = http://pet.inf.ufsc.br/mirrors/archlinux/$repo/os/$arch - -## Bulgaria -#Server = http://mirror.telepoint.bg/archlinux/$repo/os/$arch - -## Canada -#Server = http://archlinux.dropswitch.net/archlinux/$repo/os/$arch -#Server = http://mirror.clibre.uqam.ca/archlinux/$repo/os/$arch -#Server = http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch -#Server = http://mirror.its.dal.ca/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.rafal.ca/$repo/os/$arch -#Server = http://archlinux.mirror.vexxhost.com/$repo/os/$arch - -## Chile -#Server = http://mirror.archlinux.cl/$repo/os/$arch - -## China -#Server = http://mirrors.163.com/archlinux/$repo/os/$arch -#Server = http://mirror.bjtu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.hust.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.hustunique.com/archlinux/$repo/os/$arch -#Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch -#Server = http://run.hit.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch - -## Colombia -#Server = http://mirror.edatel.net.co/archlinux/$repo/os/$arch -#Server = http://www.laqee.unal.edu.co/archlinux/$repo/os/$arch - -## Croatia -#Server = http://archlinux.iskon.hr/$repo/os/$arch - -## Czech Republic -#Server = http://archlinux.mirror.dkm.cz/pub/archlinux/$repo/os/$arch -#Server = http://gluttony.sin.cvut.cz/arch/$repo/os/$arch -#Server = http://mirror.oss.maxcdn.com/archlinux/$repo/os/$arch -#Server = http://mirrors.nic.cz/archlinux/$repo/os/$arch -#Server = http://mirror.vpsfree.cz/archlinux/$repo/os/$arch - -## Denmark -#Server = http://mirrors.dotsrc.org/archlinux/$repo/os/$arch -#Server = http://mirror.one.com/archlinux/$repo/os/$arch - -## Ecuador -#Server = http://mirror.cedia.org.ec/archlinux/$repo/os/$arch -#Server = http://mirror.espoch.edu.ec/archlinux/$repo/os/$arch -#Server = http://mirror.uta.edu.ec/archlinux/$repo/os/$arch - -## Estonia -#Server = http://ftp.eenet.ee/pub/archlinux/$repo/os/$arch - -## France -#Server = http://archlinux.aubrac-medical.fr/$repo/os/$arch -#Server = http://mirror.archlinux.ikoula.com/archlinux/$repo/os/$arch -#Server = http://archlinux.vi-di.fr/$repo/os/$arch -#Server = http://mir.art-software.fr/arch/$repo/os/$arch -#Server = http://fooo.biz/archlinux/$repo/os/$arch -#Server = https://fooo.biz/archlinux/$repo/os/$arch -#Server = http://mirror.lastmikoi.net/archlinux/$repo/os/$arch -#Server = http://mirror.lightcone.eu/archlinux/$repo/os/$arch -#Server = http://archlinux.mailtunnel.eu/$repo/os/$arch -#Server = https://www.mailtunnel.eu/archlinux/$repo/os/$arch -#Server = http://mir.archlinux.fr/$repo/os/$arch -#Server = http://arch.nimukaito.net/$repo/os/$arch -#Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.pkern.at/$repo/os/$arch -#Server = https://archlinux.mirror.pkern.at/$repo/os/$arch -#Server = http://archlinux.polymorf.fr/$repo/os/$arch -#Server = http://arch.static.lu/$repo/os/$arch -#Server = https://arch.static.lu/$repo/os/$arch -#Server = http://arch.tamcore.eu/$repo/os/$arch -#Server = http://mirror.tyborek.pl/arch/$repo/os/$arch -#Server = http://ftp.u-strasbg.fr/linux/distributions/archlinux/$repo/os/$arch -#Server = http://arch.yourlabs.org/$repo/os/$arch - -## Germany -#Server = http://mirror.23media.de/archlinux/$repo/os/$arch -#Server = http://archlinux.limun.org/$repo/os/$arch -#Server = https://archlinux.limun.org/$repo/os/$arch -#Server = http://artfiles.org/archlinux.org/$repo/os/$arch -#Server = http://ftp.fau.de/archlinux/$repo/os/$arch -#Server = https://ftp.fau.de/archlinux/$repo/os/$arch -#Server = http://mirror.flipez.de/archlinux/$repo/os/$arch -#Server = http://mirror.fluxent.de/archlinux/$repo/os/$arch -#Server = http://mirror.gnomus.de/$repo/os/$arch -#Server = http://arch.packages.gnp-tec.net/$repo/os/$arch -#Server = http://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch -#Server = http://mirror.hactar.bz/$repo/os/$arch -#Server = http://ftp.hawo.stw.uni-erlangen.de/archlinux/$repo/os/$arch -#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch -#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch -#Server = http://mirror.js-webcoding.de/pub/archlinux/$repo/os/$arch -#Server = http://mirror.k42.ch/archlinux/$repo/os/$arch -#Server = http://mirror.de.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirror.metalgamer.eu/archlinux/$repo/os/$arch -#Server = http://mirror.michael-eckert.net/archlinux/$repo/os/$arch -#Server = http://archlinux.my-universe.com/$repo/os/$arch -#Server = https://archlinux.my-universe.com/$repo/os/$arch -#Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch -#Server = http://mirror.netcologne.de/archlinux/$repo/os/$arch -#Server = http://mirrors.niyawe.de/archlinux/$repo/os/$arch -#Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch -#Server = http://linux.rz.rub.de/archlinux/$repo/os/$arch -#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch -#Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch -#Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch -#Server = http://ftp.tuxdroid.org/archlinux/$repo/os/$arch -#Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch -#Server = http://ftp.uni-hannover.de/archlinux/$repo/os/$arch -#Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch -#Server = http://mirror.united-gameserver.de/archlinux/$repo/os/$arch - -## Greece -#Server = http://ftp.cc.uoc.gr/mirrors/linux/archlinux/$repo/os/$arch -#Server = http://foss.aueb.gr/mirrors/linux/archlinux/$repo/os/$arch -#Server = https://foss.aueb.gr/mirrors/linux/archlinux/$repo/os/$arch -#Server = http://mirrors.myaegean.gr/linux/archlinux/$repo/os/$arch -#Server = http://ftp.ntua.gr/pub/linux/archlinux/$repo/os/$arch -#Server = http://ftp.otenet.gr/linux/archlinux/$repo/os/$arch - -## Hungary -#Server = http://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/$repo/os/$arch - -## Iceland -#Server = http://mirror.system.is/arch/$repo/os/$arch -#Server = https://mirror.system.is/arch/$repo/os/$arch - -## India -#Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch -#Server = http://ftp.iitm.ac.in/archlinux/$repo/os/$arch - -## Indonesia -#Server = http://mirror.kavalinux.com/archlinux/$repo/os/$arch -#Server = http://mirror.poliwangi.ac.id/archlinux/$repo/os/$arch -#Server = http://suro.ubaya.ac.id/archlinux/$repo/os/$arch - -## Iran -#Server = http://mirror.yazd.ac.ir/arch/$repo/os/$arch - -## Ireland -#Server = http://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch - -## Israel -#Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch - -## Italy -#Server = http://archlinux.openlabto.org/archlinux/$repo/os/$arch -#Server = http://archlinux.beccacervello.it/archlinux/$repo/os/$arch -#Server = http://mirrors.prometeus.net/archlinux/$repo/os/$arch - -## Japan -#Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch -#Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch - -## Kazakhstan -#Server = http://mirror.neolabs.kz/archlinux/$repo/os/$arch - -## Latvia -#Server = http://archlinux.koyanet.lv/archlinux/$repo/os/$arch - -## Lithuania -#Server = http://archlinux.akmc.lt/$repo/os/$arch -#Server = http://atviras.lt/veidrodziai/archlinux/$repo/os/$arch - -## Luxembourg -#Server = http://archlinux.mirror.root.lu/$repo/os/$arch - -## Macedonia -#Server = http://arch.softver.org.mk/archlinux/$repo/os/$arch -#Server = http://mirror.t-home.mk/archlinux/$repo/os/$arch - -## Netherlands -#Server = http://arch.apt-get.eu/$repo/os/$arch -#Server = http://mirror.i3d.net/pub/archlinux/$repo/os/$arch -#Server = https://mirror.i3d.net/pub/archlinux/$repo/os/$arch -#Server = http://mirror.nl.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://ftp.nluug.nl/os/Linux/distr/archlinux/$repo/os/$arch -#Server = http://ftp.snt.utwente.nl/pub/os/linux/archlinux/$repo/os/$arch - -## New Caledonia -#Server = http://mirror.lagoon.nc/pub/archlinux/$repo/os/$arch -#Server = http://archlinux.nautile.nc/archlinux/$repo/os/$arch - -## New Zealand -#Server = http://mirror.xnet.co.nz/pub/archlinux/$repo/os/$arch - -## Norway -#Server = http://mirror.archlinux.no/$repo/os/$arch -#Server = http://archlinux.uib.no/$repo/os/$arch -#Server = http://archlinux.neuf.no/$repo/os/$arch - -## Philippines -#Server = http://mirror.pregi.net/pub/Linux/archlinux/$repo/os/$arch - -## Poland -#Server = http://mirror.chmuri.net/archmirror/$repo/os/$arch -#Server = http://arch.midov.pl/arch/$repo/os/$arch -#Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/$arch -#Server = http://ftp.vectranet.pl/archlinux/$repo/os/$arch - -## Portugal -#Server = http://archlinux.dcc.fc.up.pt/$repo/os/$arch -#Server = http://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch - -## Romania -#Server = http://mirror.archlinux.ro/archlinux/$repo/os/$arch -#Server = http://archlinux.mirrors.linux.ro/$repo/os/$arch - -## Russia -#Server = http://mirror.rol.ru/archlinux/$repo/os/$arch -#Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch - -## Serbia -#Server = http://mirror.pmf.kg.ac.rs/archlinux/$repo/os/$arch - -## Singapore -#Server = http://download.nus.edu.sg/mirror/arch/$repo/os/$arch -#Server = http://mirror.nus.edu.sg/archlinux/$repo/os/$arch - -## Slovakia -#Server = http://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch -#Server = http://tux.rainside.sk/archlinux/$repo/os/$arch - -## South Africa -#Server = http://ftp.wa.co.za/pub/archlinux/$repo/os/$arch - -## South Korea -#Server = http://ftp.kaist.ac.kr/ArchLinux/$repo/os/$arch -#Server = http://mirror.premi.st/archlinux/$repo/os/$arch - -## Spain -#Server = http://osl.ugr.es/archlinux/$repo/os/$arch -#Server = http://sunsite.rediris.es/mirror/archlinux/$repo/os/$arch - -## Sweden -#Server = http://ftp.df.lth.se/pub/archlinux/$repo/os/$arch -#Server = http://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch -#Server = https://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch -#Server = http://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch -#Server = http://ftp.portlane.com/pub/os/linux/archlinux/$repo/os/$arch - -## Switzerland -#Server = http://archlinux.puzzle.ch/$repo/os/$arch - -## Taiwan -#Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch -#Server = http://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch -#Server = http://ftp.tku.edu.tw/Linux/ArchLinux/$repo/os/$arch -#Server = http://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch - -## Turkey -#Server = http://ftp.linux.org.tr/archlinux/$repo/os/$arch - -## Ukraine -#Server = http://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch - -## United Kingdom -#Server = http://mirror.bytemark.co.uk/archlinux/$repo/os/$arch -#Server = http://mirror.cinosure.com/archlinux/$repo/os/$arch -#Server = http://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch -#Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch -#Server = http://arch.serverspace.co.uk/arch/$repo/os/$arch -#Server = http://archlinux.mirrors.uk2.net/$repo/os/$arch - -## United States -#Server = http://mirrors.abscission.net/archlinux/$repo/os/$arch -#Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch -#Server = http://mirrors.aggregate.org/archlinux/$repo/os/$arch -#Server = http://archlinux.surlyjake.com/archlinux/$repo/os/$arch -#Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch -#Server = http://mirror.cc.columbia.edu/pub/linux/archlinux/$repo/os/$arch -#Server = http://mirrors.cdndepo.com/archlinux/$repo/os/$arch -#Server = https://mirrors.cdndepo.com/archlinux/$repo/os/$arch -#Server = http://mirrors.cecsresearch.org/archlinux/$repo/os/$arch -#Server = http://cosmos.cites.illinois.edu/pub/archlinux/$repo/os/$arch -#Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch -#Server = http://mirror.es.its.nyu.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch -#Server = http://mirror.grig.io/archlinux/$repo/os/$arch -#Server = http://www.gtlib.gatech.edu/pub/archlinux/$repo/os/$arch -#Server = http://mirror.ancl.hawaii.edu/linux/archlinux/$repo/os/$arch -#Server = http://mirror.jmu.edu/pub/archlinux/$repo/os/$arch -#Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch -#Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch -#Server = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirrors.liquidweb.com/archlinux/$repo/os/$arch -#Server = http://arch.localmsp.org/arch/$repo/os/$arch -#Server = https://arch.localmsp.org/arch/$repo/os/$arch -#Server = http://lug.mtu.edu/archlinux/$repo/os/$arch -#Server = http://mirror.metrocast.net/archlinux/$repo/os/$arch -#Server = http://mirror.nexcess.net/archlinux/$repo/os/$arch -#Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch -#Server = http://archlinux.pallissard.net/archlinux/$repo/os/$arch -#Server = http://mirror.rit.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.rutgers.edu/archlinux/$repo/os/$arch -#Server = http://mirror.umd.edu/archlinux/$repo/os/$arch -#Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch -#Server = http://mirror.yellowfiber.net/archlinux/$repo/os/$arch - -## Vietnam -#Server = http://f.archlinuxvn.org/archlinux/$repo/os/$arch -#Server = http://mirror-fpt-telecom.fpt.net/archlinux/$repo/os/$arch - diff --git a/cdist/conf/type/__pacman_conf_integrate/files/options b/cdist/conf/type/__pacman_conf_integrate/files/options deleted file mode 100644 index 68273e49..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/files/options +++ /dev/null @@ -1,6 +0,0 @@ -[options] -HoldPkg = pacman glibc -Architecture = auto -CheckSpace -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional diff --git a/cdist/conf/type/__pacman_conf_integrate/files/pacman.conf.cdist b/cdist/conf/type/__pacman_conf_integrate/files/pacman.conf.cdist deleted file mode 100644 index 88e6e623..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/files/pacman.conf.cdist +++ /dev/null @@ -1,6 +0,0 @@ -# -# cdist managed - do not change -# -Include = /etc/pacman.d/options -Include = /etc/pacman.d/repo_* -Include = /etc/pacman.d/plain_file_* diff --git a/cdist/conf/type/__pacman_conf_integrate/files/pacman.conf.pacman b/cdist/conf/type/__pacman_conf_integrate/files/pacman.conf.pacman deleted file mode 100644 index f43fe397..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/files/pacman.conf.pacman +++ /dev/null @@ -1,99 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -C - -f %u > %o -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -#UseDelta = 0.7 -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -#TotalDownload -CheckSpace -#VerbosePkgLists - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Arch Linux -# packagers with `pacman-key --populate archlinux`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The testing repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[testing] -#Include = /etc/pacman.d/mirrorlist - -[core] -Include = /etc/pacman.d/mirrorlist - -[extra] -Include = /etc/pacman.d/mirrorlist - -#[community-testing] -#Include = /etc/pacman.d/mirrorlist - -[community] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the multilib repositories as required here. - -#[multilib-testing] -#Include = /etc/pacman.d/mirrorlist - -#[multilib] -#Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs diff --git a/cdist/conf/type/__pacman_conf_integrate/man.rst b/cdist/conf/type/__pacman_conf_integrate/man.rst deleted file mode 100644 index c21b56d8..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/man.rst +++ /dev/null @@ -1,51 +0,0 @@ -cdist-type__pacman_conf_integrate(7) -==================================== - -NAME ----- -cdist-type__pacman_conf_integrate - Integrate default pacman.conf to cdist conform and vice versa - - -DESCRIPTION ------------ -The type allows you to convert the default pacman.conf to a cdist conform one and vice versa - - -REQUIRED PARAMETERS -------------------- -None. - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent', defaults to 'present' - - -EXAMPLES --------- - -.. code-block:: sh - - # Convert normal to cdist conform - __pacman_conf_integrate convert - - # Convert cdist conform to normal - __pacman_conf_integrate convert --state absent - - -SEE ALSO --------- -:strong:`grep`\ (1) - - -AUTHORS -------- -Dominique Roux - - -COPYING -------- -Copyright \(C) 2015 Dominique Roux. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__pacman_conf_integrate/manifest b/cdist/conf/type/__pacman_conf_integrate/manifest deleted file mode 100755 index 0ce0bee5..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/manifest +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -e -# -# 2015 Dominique Roux (dominique.roux4 at gmail.com -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state=$(cat "$__object/parameter/state" 2>/dev/null) - -if [ "${state}" = "present" ]; then - __file /etc/pacman.conf\ - --owner root --group root --mode 644 --source "$__type/files/pacman.conf.cdist" - - __file /etc/pacman.d/options\ - --owner root --group root --mode 644 --source "$__type/files/options" - - __file /etc/pacman.d/repo_empty_placeholder\ - --owner root --group root --mode 644 - - __file /etc/pacman.d/plain_file_empty_placeholder\ - --owner root --group root --mode 644 - -elif [ "${state}" = "absent" ]; then - - __file /etc/pacman.conf\ - --owner root --group root --mode 644 --source "$__type/files/pacman.conf.pacman" - - __file /etc/pacman.d/mirrorlist\ - --owner root --group root --mode 644 --source "$__type/files/mirrorlist" - - __file /etc/pacman.d/options\ - --state absent - - __file /etc/pacman.d/repo_empty_placeholder\ - --state absent - - __file /etc/pacman.d/plain_file_empty_placeholder\ - --state absent - -else - - echo "ERROR: Unknown state: ${state}" >&2 - -fi diff --git a/cdist/conf/type/__pacman_conf_integrate/parameter/default/state b/cdist/conf/type/__pacman_conf_integrate/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__pacman_conf_integrate/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__pf_apply/gencode-remote b/cdist/conf/type/__pf_apply/gencode-remote deleted file mode 100755 index c8f7a25a..00000000 --- a/cdist/conf/type/__pf_apply/gencode-remote +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Apply pf(4) ruleset on *BSD -# - -# Debug -#exec >&2 -#set -x - -rcvar=$(cat "$__object/explorer/rcvar") - -cat <&2 - fi -fi -EOF - -# Debug -#set +x - diff --git a/cdist/conf/type/__pf_apply/man.rst b/cdist/conf/type/__pf_apply/man.rst deleted file mode 100644 index eee345e7..00000000 --- a/cdist/conf/type/__pf_apply/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__pf_apply(7) -======================= - -NAME ----- -cdist-type__pf_apply - Apply pf(4) ruleset on \*BSD - - -DESCRIPTION ------------ -This type is used on \*BSD systems to manage the pf firewall's active ruleset. - - -REQUIRED PARAMETERS -------------------- -NONE - - -OPTIONAL PARAMETERS -------------------- -NONE - - -EXAMPLES --------- - -.. code-block:: sh - - # Modify the ruleset on $__target_host: - __pf_ruleset --state present --source /my/pf/ruleset.conf - require="__pf_ruleset" \ - __pf_apply - - # Remove the ruleset on $__target_host (implies disabling pf(4): - __pf_ruleset --state absent - require="__pf_ruleset" \ - __pf_apply - - -SEE ALSO --------- -:strong:`pf`\ (4), :strong:`cdist-type__pf_ruleset`\ (7) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2012 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__pf_apply/singleton b/cdist/conf/type/__pf_apply/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__pf_ruleset/explorer/cksum b/cdist/conf/type/__pf_ruleset/explorer/cksum deleted file mode 100755 index 9be6c901..00000000 --- a/cdist/conf/type/__pf_ruleset/explorer/cksum +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Get the 256 bit SHA2 checksum of the pf ruleset on the target host. -# - -# Debug -#exec >&2 -#set -x - -# Check /etc/rc.conf for pf's configuration file name. Default to /etc/pf.conf -# See if file exists and if so, get checksum - -RC="/etc/rc.conf" -TMP="$(grep '^pf_rules=' ${RC} | cut -d= -f2 | sed 's/"//g')" -PFCONF="${TMP:-"/etc/pf.conf"}" - -if [ -f "${PFCONF}" ]; then # The pf config file exists, find its cksum. - cksum -o 1 "${PFCONF}" | cut -d= -f2 | awk '{print $1}' -fi - -# Debug -#set +x - diff --git a/cdist/conf/type/__pf_ruleset/explorer/rcvar b/cdist/conf/type/__pf_ruleset/explorer/rcvar deleted file mode 100755 index 7c8d535f..00000000 --- a/cdist/conf/type/__pf_ruleset/explorer/rcvar +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Get the location of the pf ruleset on the target host. -# - -# Debug -#exec >&2 -#set -x - -# Check /etc/rc.conf for pf's configuration file name. Default to /etc/pf.conf - -RC="/etc/rc.conf" -PFCONF="$(grep '^pf_rules=' ${RC} | cut -d= -f2 | sed 's/"//g')" -echo "${PFCONF:-"/etc/pf.conf"}" - -# Debug -#set +x - diff --git a/cdist/conf/type/__pf_ruleset/gencode-local b/cdist/conf/type/__pf_ruleset/gencode-local deleted file mode 100755 index 11bfb0b1..00000000 --- a/cdist/conf/type/__pf_ruleset/gencode-local +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage pf(4) on *BSD -# - -# Debug -#exec >&2 -#set -x - -# Send files to $__target_host via $__remote_copy - -uname=$(uname) # Need to know what the cdist host is running so we know how to compute the ruleset's checksum -state=$(cat "$__object/parameter/state") - -if [ "$state" = "absent" ]; then # There is nothing more for a *local* script to do - exit 0 -fi - -if [ -f "$__object/parameter/source" ]; then - source=$(cat "$__object/parameter/source") -fi - -rcvar=$(cat "$__object/explorer/rcvar") -cksum=$(cat "$__object/explorer/cksum") - - -cat <&2 - exit 1 - ;; -esac - -# IPv6 fix -if $(echo "${__target_host}" | grep -q -E '^[0-9a-fA-F:]+$') -then - my_target_host="[${__target_host}]" -else - my_target_host="${__target_host}" -fi - -if [ -n "${cksum}" ]; then - if [ ! "\${currentSum}" = "${cksum}" ]; then - $__remote_copy "${source}" "\${my_target_host}:${rcvar}.new" - fi -else # File just doesn't exist yet - $__remote_copy "${source}" "\${my_target_host}:${rcvar}.new" -fi -EOF - -# Debug -#exec +x - diff --git a/cdist/conf/type/__pf_ruleset/gencode-remote b/cdist/conf/type/__pf_ruleset/gencode-remote deleted file mode 100755 index 12760fdf..00000000 --- a/cdist/conf/type/__pf_ruleset/gencode-remote +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -e -# -# 2012 Jake Guffey (jake.guffey at eprotex.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage pf(4) on *BSD -# - -# Debug -#exec >&2 -#set -x - -# Remove ${rcvar} in the case of --state absent - -state=$(cat "$__object/parameter/state") -rcvar=$(cat "$__object/explorer/rcvar") - -if [ "$state" = "present" ]; then # There is nothing more for a *remote* script to do - exit 0 -elif [ "$state" = "absent" ]; then - # --state absent, so ensure that .new doesn't exist and that conf is renamed to .old - cat <&2 - exit 1 -fi - diff --git a/cdist/conf/type/__pf_ruleset/man.rst b/cdist/conf/type/__pf_ruleset/man.rst deleted file mode 100644 index 5719e94e..00000000 --- a/cdist/conf/type/__pf_ruleset/man.rst +++ /dev/null @@ -1,55 +0,0 @@ -cdist-type__pf_ruleset(7) -========================= - -NAME ----- -cdist-type__pf_ruleset - Copy a pf(4) ruleset to $__target_host - - -DESCRIPTION ------------ -This type is used on \*BSD systems to manage the pf firewall's ruleset. - - -REQUIRED PARAMETERS -------------------- -state - Either "absent" (no ruleset at all) or "present", defaults to "present". - - -OPTIONAL PARAMETERS -------------------- -source - If supplied, use to define the ruleset to load onto the $__target_host for pf(4). - Note that this type is almost useless without a ruleset defined, but it's technically not - needed, e.g. for the case of disabling the firewall temporarily. - - -EXAMPLES --------- - -.. code-block:: sh - - # Remove the current ruleset in place - __pf_ruleset --state absent - - # Enable the firewall with the ruleset defined in $__manifest/files/pf.conf - __pf_ruleset --state present --source $__manifest/files/pf.conf - - -SEE ALSO --------- -:strong:`pf`\ (4) - - -AUTHORS -------- -Jake Guffey - - -COPYING -------- -Copyright \(C) 2012 Jake Guffey. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__pf_ruleset/parameter/default/state b/cdist/conf/type/__pf_ruleset/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__pf_ruleset/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__pf_ruleset/parameter/optional b/cdist/conf/type/__pf_ruleset/parameter/optional deleted file mode 100644 index d77f3048..00000000 --- a/cdist/conf/type/__pf_ruleset/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -source -state diff --git a/cdist/conf/type/__pf_ruleset/singleton b/cdist/conf/type/__pf_ruleset/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__ping/gencode-remote b/cdist/conf/type/__ping/gencode-remote deleted file mode 100644 index 1341b954..00000000 --- a/cdist/conf/type/__ping/gencode-remote +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -e -# -# Copyright (C) 2018 Olliver Schinagl -# -# SPDX-License-Identifier: GPL-3.0+ -# - -set -eu - -echo "echo 'pong'" - -exit 0 diff --git a/cdist/conf/type/__ping/man.rst b/cdist/conf/type/__ping/man.rst deleted file mode 100644 index e08643dc..00000000 --- a/cdist/conf/type/__ping/man.rst +++ /dev/null @@ -1,43 +0,0 @@ -cdist-type__ping(7) -================================== - -NAME ----- -cdist-type__ping - Try to connect to host and return 'pong' on success - - -DESCRIPTION ------------ -A simple type which tries to connect to a remote host and runs a simple command -to ensure everything is working. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __ping - - -AUTHORS -------- -Olliver Schinagl - - -COPYING -------- -Copyright \(C) 2018 Schinagl. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ping/singleton b/cdist/conf/type/__ping/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__postfix/man.rst b/cdist/conf/type/__postfix/man.rst deleted file mode 100644 index 43b158e0..00000000 --- a/cdist/conf/type/__postfix/man.rst +++ /dev/null @@ -1,42 +0,0 @@ -cdist-type__postfix(7) -====================== - -NAME ----- -cdist-type__postfix - Install postfix - - -DESCRIPTION ------------ -This space intentionally left blank. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __postfix - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postfix/manifest b/cdist/conf/type/__postfix/manifest deleted file mode 100755 index f3616979..00000000 --- a/cdist/conf/type/__postfix/manifest +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - alpine|ubuntu|debian|archlinux|suse|scientific|centos|devuan) - __package postfix --state present - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__postfix/singleton b/cdist/conf/type/__postfix/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__postfix_master/explorer/entry b/cdist/conf/type/__postfix_master/explorer/entry deleted file mode 100755 index 9d6b1514..00000000 --- a/cdist/conf/type/__postfix_master/explorer/entry +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# -# 2011 - 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -config="/etc/postfix/master.cf" - -# no master.cf, nothing we could do -[ -f "$config" ] || exit 0 - -# NOTE: keep variables in sync in manifest,explorer,gencode-* -prefix="#cdist:$__object_name" -suffix="#/cdist:$__object_name" -awk -v prefix="$prefix" -v suffix="$suffix" '{ - if (index($0,prefix)) { - triggered=1 - } - if (triggered) { - if (index($0,suffix)) { - triggered=0 - } - print - } -}' "$config" diff --git a/cdist/conf/type/__postfix_master/gencode-remote b/cdist/conf/type/__postfix_master/gencode-remote deleted file mode 100755 index 7c109a69..00000000 --- a/cdist/conf/type/__postfix_master/gencode-remote +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -config="/etc/postfix/master.cf" -entry="$__object/files/entry" -state_should="$(cat "$__object/parameter/state")" -if [ ! -s "$__object/explorer/entry" ]; then - state_is='absent' -else - state_is=$(diff -q "$entry" "$__object/explorer/entry" >/dev/null \ - && echo present \ - || echo changed - ) -fi - -if [ "$state_should" = "$state_is" ]; then - # Nothing to do, move along - exit 0 -fi - - -remove_entry() { - # NOTE: keep variables in sync in manifest/explorer/gencode-* - prefix="#cdist:$__object_name" - suffix="#/cdist:$__object_name" - cat << DONE -tmpfile=\$(mktemp ${config}.cdist.XXXXXXXXXX) -# preserve ownership and permissions of existing file -cp -p "$config" "\$tmpfile" -awk -v prefix="$prefix" -v suffix="$suffix" ' -{ - if (index(\$0,prefix)) { - triggered=1 - } - if (triggered) { - if (index(\$0,suffix)) { - triggered=0 - } - } else { - print - } -}' "$config" > "\$tmpfile" -mv -f "\$tmpfile" "$config" -DONE -} - -case "$state_should" in - present) - if [ "$state_is" = "changed" ]; then - remove_entry - fi - cat << DONE -cat >> "$config" << ${__type##*/}_DONE -$(cat "$entry") -${__type##*/}_DONE -DONE - ;; - absent) - remove_entry - ;; -esac diff --git a/cdist/conf/type/__postfix_master/man.rst b/cdist/conf/type/__postfix_master/man.rst deleted file mode 100644 index 07756f74..00000000 --- a/cdist/conf/type/__postfix_master/man.rst +++ /dev/null @@ -1,84 +0,0 @@ -cdist-type__postfix_master(7) -============================= - -NAME ----- -cdist-type__postfix_master - Configure postfix master.cf - - -DESCRIPTION ------------ -See master(5) for more information. - - -REQUIRED PARAMETERS -------------------- -type - See master(5) -command - See master(5) - - -BOOLEAN PARAMETERS ------------------- -noreload - don't reload postfix after changes - - -OPTIONAL PARAMETERS -------------------- -state - present or absent, defaults to present - -service - -private - -unpriv - -chroot - -wakeup - -maxproc - -option - Pass an option to a service. Same as using -o in master.cf. - Can be specified multiple times. - -comment - a textual comment to add with the master.cf entry - - -EXAMPLES --------- - -.. code-block:: sh - - __postfix_master smtp --type inet --command smtpd - - __postfix_master smtp --type inet --chroot y --command smtpd \ - --option smtpd_enforce_tls=yes \ - --option smtpd_sasl_auth_enable=yes \ - --option smtpd_client_restrictions=permit_sasl_authenticated,reject - - __postfix_master submission --type inet --command smtpd \ - --comment "Run alternative smtp on submission port" - - -SEE ALSO --------- -:strong:`master`\ (5) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postfix_master/manifest b/cdist/conf/type/__postfix_master/manifest deleted file mode 100755 index 0960ea41..00000000 --- a/cdist/conf/type/__postfix_master/manifest +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - ubuntu|debian|archlinux|scientific|centos|devuan) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -__postfix - -# Default to object_id -service="$(cat "$__object/parameter/service" 2>/dev/null || echo "$__object_id")" - -# NOTE: keep variables in sync in manifest,explorer,gencode-* -prefix="#cdist:$__object_name" -suffix="#/cdist:$__object_name" - -# Generate entry for inclusion in master.cf -mkdir "$__object/files" -entry="$__object/files/entry" -( - echo "$prefix" - if [ -f "$__object/parameter/comment" ]; then - echo "# $(cat "$__object/parameter/comment")" - fi - printf "%s " "$service" - for parameter in type private unpriv chroot wakeup maxproc; do - printf "%s " "$(cat "$__object/parameter/$parameter")" - done - command="$(cat "$__object/parameter/command")" - # ensure we have a trailing newline - echo "$command" - options="$(cat "$__object/parameter/option" 2>/dev/null || true)" - for option in $options; do - echo " -o $option" - done - echo "$suffix" -) > "$entry" - -# Reload postfix after changes -if [ ! -f "$__object/parameter/noreload" ]; then - state_should="$(cat "$__object/parameter/state")" - if [ ! -s "$__object/explorer/entry" ]; then - state_is='absent' - else - state_is=$(diff -q "$entry" "$__object/explorer/entry" >/dev/null \ - && echo present \ - || echo changed - ) - fi - if [ "$state_is" != "$state_should" ]; then - require="$__object_name" __postfix_reload - fi -fi diff --git a/cdist/conf/type/__postfix_master/parameter/boolean b/cdist/conf/type/__postfix_master/parameter/boolean deleted file mode 100644 index 862edc87..00000000 --- a/cdist/conf/type/__postfix_master/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -noreload diff --git a/cdist/conf/type/__postfix_master/parameter/default/chroot b/cdist/conf/type/__postfix_master/parameter/default/chroot deleted file mode 100644 index 39cdd0de..00000000 --- a/cdist/conf/type/__postfix_master/parameter/default/chroot +++ /dev/null @@ -1 +0,0 @@ -- diff --git a/cdist/conf/type/__postfix_master/parameter/default/maxproc b/cdist/conf/type/__postfix_master/parameter/default/maxproc deleted file mode 100644 index 39cdd0de..00000000 --- a/cdist/conf/type/__postfix_master/parameter/default/maxproc +++ /dev/null @@ -1 +0,0 @@ -- diff --git a/cdist/conf/type/__postfix_master/parameter/default/private b/cdist/conf/type/__postfix_master/parameter/default/private deleted file mode 100644 index 39cdd0de..00000000 --- a/cdist/conf/type/__postfix_master/parameter/default/private +++ /dev/null @@ -1 +0,0 @@ -- diff --git a/cdist/conf/type/__postfix_master/parameter/default/state b/cdist/conf/type/__postfix_master/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__postfix_master/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__postfix_master/parameter/default/unpriv b/cdist/conf/type/__postfix_master/parameter/default/unpriv deleted file mode 100644 index 39cdd0de..00000000 --- a/cdist/conf/type/__postfix_master/parameter/default/unpriv +++ /dev/null @@ -1 +0,0 @@ -- diff --git a/cdist/conf/type/__postfix_master/parameter/default/wakeup b/cdist/conf/type/__postfix_master/parameter/default/wakeup deleted file mode 100644 index 39cdd0de..00000000 --- a/cdist/conf/type/__postfix_master/parameter/default/wakeup +++ /dev/null @@ -1 +0,0 @@ -- diff --git a/cdist/conf/type/__postfix_master/parameter/optional b/cdist/conf/type/__postfix_master/parameter/optional deleted file mode 100644 index 792b42c5..00000000 --- a/cdist/conf/type/__postfix_master/parameter/optional +++ /dev/null @@ -1,9 +0,0 @@ -service -private -unpriv -chroot -wakeup -maxproc -option -comment -state diff --git a/cdist/conf/type/__postfix_master/parameter/required b/cdist/conf/type/__postfix_master/parameter/required deleted file mode 100644 index 24c14146..00000000 --- a/cdist/conf/type/__postfix_master/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -type -command diff --git a/cdist/conf/type/__postfix_postconf/explorer/value b/cdist/conf/type/__postfix_postconf/explorer/value deleted file mode 100755 index 67dacad8..00000000 --- a/cdist/conf/type/__postfix_postconf/explorer/value +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$("$__explorer/os") - -case "$os" in - alpine|ubuntu|debian|archlinux|suse|scientific|centos|devuan) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -key="$(cat "$__object/parameter/key" 2>/dev/null || echo "$__object_id")" - -postconf -h "$key" diff --git a/cdist/conf/type/__postfix_postconf/gencode-remote b/cdist/conf/type/__postfix_postconf/gencode-remote deleted file mode 100755 index 279dddd4..00000000 --- a/cdist/conf/type/__postfix_postconf/gencode-remote +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -os=$(cat "$__global/explorer/os") - -case "$os" in - alpine|archlinux|centos|debian|devuan|suse|scientific|ubuntu) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -state_should="$(cat "$__object/parameter/state")" -if [ ! -s "$__object/explorer/value" ]; then - state_is='absent' -else - state_is=$(diff -q "$__object/parameter/value" "$__object/explorer/value" >/dev/null \ - && echo present \ - || echo changed - ) -fi - -if [ "$state_should" = "$state_is" ]; then - # Nothing to do, move along - exit 0 -fi - -key="$(cat "$__object/parameter/key" 2>/dev/null || echo "$__object_id")" -value="$(cat "$__object/parameter/value")" - -case "$state_should" in - absent) - # revert parameter to its default value - echo "postconf -# $key" - ;; - present) - echo "postconf -e '$key=$value'" - ;; -esac diff --git a/cdist/conf/type/__postfix_postconf/man.rst b/cdist/conf/type/__postfix_postconf/man.rst deleted file mode 100644 index 3222d4a7..00000000 --- a/cdist/conf/type/__postfix_postconf/man.rst +++ /dev/null @@ -1,54 +0,0 @@ -cdist-type__postfix_postconf(7) -=============================== - -NAME ----- -cdist-type__postfix_postconf - Configure postfix main.cf - - -DESCRIPTION ------------ -See postconf(5) for possible keys and values. - -Note that this type directly runs the postconf executable. -It does not make changes to /etc/postfix/main.cf itself. - - -REQUIRED PARAMETERS -------------------- -value - the value for the postfix parameter - - -OPTIONAL PARAMETERS -------------------- -key - the name of the parameter. Defaults to __object_id - - -EXAMPLES --------- - -.. code-block:: sh - - __postfix_postconf mydomain --value somedomain.com - - __postfix_postconf bind-to-special-ip --key smtp_bind_address --value 127.0.0.5 - - -SEE ALSO --------- -:strong:`postconf`\ (5) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postfix_postconf/manifest b/cdist/conf/type/__postfix_postconf/manifest deleted file mode 100755 index a82e13d7..00000000 --- a/cdist/conf/type/__postfix_postconf/manifest +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -__postfix diff --git a/cdist/conf/type/__postfix_postconf/parameter/default/state b/cdist/conf/type/__postfix_postconf/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__postfix_postconf/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__postfix_postconf/parameter/optional b/cdist/conf/type/__postfix_postconf/parameter/optional deleted file mode 100644 index 6ada755a..00000000 --- a/cdist/conf/type/__postfix_postconf/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -key -state diff --git a/cdist/conf/type/__postfix_postconf/parameter/required b/cdist/conf/type/__postfix_postconf/parameter/required deleted file mode 100644 index 6d4e1507..00000000 --- a/cdist/conf/type/__postfix_postconf/parameter/required +++ /dev/null @@ -1 +0,0 @@ -value diff --git a/cdist/conf/type/__postfix_postmap/gencode-remote b/cdist/conf/type/__postfix_postmap/gencode-remote deleted file mode 100755 index edb7711f..00000000 --- a/cdist/conf/type/__postfix_postmap/gencode-remote +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -echo "postmap /$__object_id" diff --git a/cdist/conf/type/__postfix_postmap/man.rst b/cdist/conf/type/__postfix_postmap/man.rst deleted file mode 100644 index 2a82b44a..00000000 --- a/cdist/conf/type/__postfix_postmap/man.rst +++ /dev/null @@ -1,42 +0,0 @@ -cdist-type__postfix_postmap(7) -============================== - -NAME ----- -cdist-type__postfix_postmap - Run postmap on the given file - - -DESCRIPTION ------------ -This space intentionally left blank. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __postfix_postmap /etc/postfix/generic - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postfix_postmap/manifest b/cdist/conf/type/__postfix_postmap/manifest deleted file mode 100755 index a82e13d7..00000000 --- a/cdist/conf/type/__postfix_postmap/manifest +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -__postfix diff --git a/cdist/conf/type/__postfix_reload/gencode-remote b/cdist/conf/type/__postfix_reload/gencode-remote deleted file mode 100755 index 7720dc49..00000000 --- a/cdist/conf/type/__postfix_reload/gencode-remote +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - ubuntu|debian|archlinux|scientific|centos|devuan) - echo "postfix reload" - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__postfix_reload/man.rst b/cdist/conf/type/__postfix_reload/man.rst deleted file mode 100644 index 944e22fa..00000000 --- a/cdist/conf/type/__postfix_reload/man.rst +++ /dev/null @@ -1,42 +0,0 @@ -cdist-type__postfix_reload(7) -============================= - -NAME ----- -cdist-type__postfix_reload - Tell postfix to reload its configuration - - -DESCRIPTION ------------ -This space intentionally left blank. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -None. - - -EXAMPLES --------- - -.. code-block:: sh - - __postfix_reload - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postfix_reload/manifest b/cdist/conf/type/__postfix_reload/manifest deleted file mode 100755 index a82e13d7..00000000 --- a/cdist/conf/type/__postfix_reload/manifest +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -__postfix diff --git a/cdist/conf/type/__postfix_reload/singleton b/cdist/conf/type/__postfix_reload/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__postgres_database/man.rst b/cdist/conf/type/__postgres_database/man.rst deleted file mode 100644 index acceec9b..00000000 --- a/cdist/conf/type/__postgres_database/man.rst +++ /dev/null @@ -1,46 +0,0 @@ -cdist-type__postgres_database(7) -================================ - -NAME ----- -cdist-type__postgres_database - Create/drop postgres databases - - -DESCRIPTION ------------ -This cdist type allows you to create or drop postgres databases. - - -OPTIONAL PARAMETERS -------------------- -state - either 'present' or 'absent', defaults to 'present'. - -owner - the role owning this database - - -EXAMPLES --------- - -.. code-block:: sh - - __postgres_database mydbname --owner mydbusername - - -SEE ALSO --------- -:strong:`cdist-type__postgres_role`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postgres_database/parameter/default/state b/cdist/conf/type/__postgres_database/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__postgres_database/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__postgres_database/parameter/optional b/cdist/conf/type/__postgres_database/parameter/optional deleted file mode 100644 index d86b6469..00000000 --- a/cdist/conf/type/__postgres_database/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -owner diff --git a/cdist/conf/type/__postgres_extension/gencode-remote b/cdist/conf/type/__postgres_extension/gencode-remote deleted file mode 100755 index af9c97f1..00000000 --- a/cdist/conf/type/__postgres_extension/gencode-remote +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2013 Tomas Pospisek (tpo_deb at sourcepole.ch) -# -# This type was created by Tomas Pospisek based on the -#__postgres_role type by Steven Armstrong -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -case "$(cat "${__global}/explorer/os")" -in - netbsd) - postgres_user='pgsql' - ;; - openbsd) - postgres_user='_postgresql' - ;; - *) - postgres_user='postgres' - ;; -esac - - -dbname=$( echo "$__object_id" | cut -d":" -f1 ) -extension=$( echo "$__object_id" | cut -d":" -f2 ) - -state_should=$( cat "$__object/parameter/state" ) - -case "$state_should" in - present) - cmd="CREATE EXTENSION IF NOT EXISTS $extension" - echo "su - '$postgres_user' -c 'psql -c \"$cmd\" \"$dbname\"'" - ;; - absent) - cmd="DROP EXTENSION IF EXISTS $extension" - echo "su - '$postgres_user' -c 'psql -c \"$cmd\" \"$dbname\"'" - ;; -esac diff --git a/cdist/conf/type/__postgres_extension/man.rst b/cdist/conf/type/__postgres_extension/man.rst deleted file mode 100644 index 79645b2b..00000000 --- a/cdist/conf/type/__postgres_extension/man.rst +++ /dev/null @@ -1,59 +0,0 @@ -cdist-type__postgres_extension(7) -================================= - -NAME ----- -cdist-type__postgres_extension - manage postgres extensions - - -DESCRIPTION ------------ -This cdist type allows you to create or drop postgres extensions. - -The object you need to pass to __postgres_extension consists of -the database name and the extension name joined by a colon in the -following form: - -.. code-block:: sh - - dbname:extension - -f.ex. - -.. code-block:: sh - - rails_test:unaccent - - -OPTIONAL PARAMETERS -------------------- -state - either "present" or "absent", defaults to "present" - - -EXAMPLES --------- - -.. code-block:: sh - - __postgres_extension rails_test:unaccent - __postgres_extension --present rails_test:unaccent - __postgres_extension --absent rails_test:unaccent - - -SEE ALSO --------- -:strong:`cdist-type__postgre_database`\ (7) - -Postgres "Create Extension" documentation at: . - -AUTHOR -------- -Tomas Pospisek - -COPYING -------- -Copyright \(C) 2014 Tomas Pospisek. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postgres_extension/parameter/default/state b/cdist/conf/type/__postgres_extension/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__postgres_extension/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__postgres_role/gencode-remote b/cdist/conf/type/__postgres_role/gencode-remote deleted file mode 100755 index 977832c9..00000000 --- a/cdist/conf/type/__postgres_role/gencode-remote +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -case "$(cat "${__global}/explorer/os")" -in - netbsd) - postgres_user='pgsql' - ;; - openbsd) - postgres_user='_postgresql' - ;; - *) - postgres_user='postgres' - ;; -esac - - -name="$__object_id" -state_is="$(cat "$__object/explorer/state")" -state_should="$(cat "$__object/parameter/state")" - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - if [ -f "$__object/parameter/password" ]; then - password="$(cat "$__object/parameter/password")" - fi - booleans="" - for boolean in login createdb createrole superuser; do - if [ ! -f "$__object/parameter/$boolean" ]; then - boolean="no${boolean}" - fi - upper=$(echo $boolean | tr '[:lower:]' '[:upper:]') - booleans="$booleans $upper" - done - - [ -n "$password" ] && password="PASSWORD '$password'" - cat << EOF -su - '$postgres_user' -c "psql postgres -wc 'CREATE ROLE \"$name\" WITH $password $booleans;'" -EOF - ;; - absent) - cat << EOF -su - '$postgres_user' -c "dropuser \"$name\"" -EOF - ;; -esac diff --git a/cdist/conf/type/__postgres_role/man.rst b/cdist/conf/type/__postgres_role/man.rst deleted file mode 100644 index 11fd73d5..00000000 --- a/cdist/conf/type/__postgres_role/man.rst +++ /dev/null @@ -1,67 +0,0 @@ -cdist-type__postgres_role(7) -============================ - -NAME ----- -cdist-type__postgres_role - Manage postgres roles - - -DESCRIPTION ------------ -This cdist type allows you to create or drop postgres roles. - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" - -All other parameters map directly to the corresponding postgres createrole -parameters. - -password - -BOOLEAN PARAMETERS ------------------- -All parameter map directly to the corresponding postgres createrole -parameters. - -login -createdb -createrole -superuser -inherit - -EXAMPLES --------- - -.. code-block:: sh - - __postgres_role myrole - - __postgres_role myrole --password 'secret' - - __postgres_role admin --password 'very-secret' --superuser - - __postgres_role dbcustomer --password 'bla' --createdb - - -SEE ALSO --------- -:strong:`cdist-type__postgres_database`\ (7) - -postgresql documentation at: -. - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__postgres_role/parameter/default/state b/cdist/conf/type/__postgres_role/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__postgres_role/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__postgres_role/parameter/optional b/cdist/conf/type/__postgres_role/parameter/optional deleted file mode 100644 index cb9b2c48..00000000 --- a/cdist/conf/type/__postgres_role/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -password diff --git a/cdist/conf/type/__process/gencode-remote b/cdist/conf/type/__process/gencode-remote deleted file mode 100755 index ec9691b9..00000000 --- a/cdist/conf/type/__process/gencode-remote +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -e -# -# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org) -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2017 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/name" ]; then - name="$(cat "$__object/parameter/name")" -else - name="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -if [ -s "$__object/explorer/runs" ]; then - state_is="present" -else - state_is="absent" -fi - -if [ "$state_is" = "$state_should" ]; then - # nothing to do - exit 0 -fi - -case "$state_should" in - present) - if [ -f "$__object/parameter/start" ]; then - cat "$__object/parameter/start" - else - echo "$name" - fi - echo "started" >> "$__messages_out" - ;; - absent) - if [ -f "$__object/parameter/stop" ]; then - cat "$__object/parameter/stop" - else - echo kill "$(cat "$__object/parameter/runs")" - fi - echo "stopped" >> "$__messages_out" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__process/man.rst b/cdist/conf/type/__process/man.rst deleted file mode 100644 index e7303c55..00000000 --- a/cdist/conf/type/__process/man.rst +++ /dev/null @@ -1,84 +0,0 @@ -cdist-type__process(7) -====================== - -NAME ----- -cdist-type__process - Start or stop process - - -DESCRIPTION ------------ -This cdist type allows you to define the state of a process. - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" - -name - Process name to match on when using pgrep -f -x. - - This is useful, if the name starts with a "/", - because the leading slash is stripped away from - the object id by cdist. - -stop - Executable to use for stopping the process. - -start - Executable to use for starting the process. - - -MESSAGES --------- -started - The process was started. - -stopped - The process was stopped. - - -EXAMPLES --------- - -.. code-block:: sh - - # Start if not running - __process /usr/sbin/syslog-ng --state present - - # Start if not running with a different binary - __process /usr/sbin/nginx --state present --start "/etc/rc.d/nginx start" - - # Stop the process using kill (the type default) - DO NOT USE THIS - __process /usr/sbin/sshd --state absent - - # Stop the process using /etc/rc.d/sshd stop - THIS ONE NOT AS WELL - __process /usr/sbin/sshd --state absent --stop "/etc/rc.d/sshd stop" - - # Ensure cups is running, which runs with -C ...: - __process cups --start "/etc/rc.d/cups start" --state present \ - --name "/usr/sbin/cupsd -C /etc/cups/cupsd.conf" - - # Ensure rpc.statd is running (which usually runs with -L) using a regexp - __process rpcstatd --state present --start "/etc/init.d/statd start" \ - --name "rpc.statd.*" - - -SEE ALSO --------- -:strong:`cdist-type__start_on_boot`\ (7) - - -AUTHORS -------- -| Nico Schottelius -| Thomas Eckert - - -COPYING -------- -Copyright \(C) 2011-2012 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__process/parameter/default/state b/cdist/conf/type/__process/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__process/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__prometheus_alertmanager/man.rst b/cdist/conf/type/__prometheus_alertmanager/man.rst deleted file mode 100644 index 67e97eaf..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/man.rst +++ /dev/null @@ -1,61 +0,0 @@ -cdist-type__prometheus_alertmanager(7) -====================================== - -NAME ----- -cdist-type__prometheus_alertmanager - install Alertmanager - - -DESCRIPTION ------------ -Install and configure Prometheus Alertmanager (https://prometheus.io/docs/alerting/alertmanager/). - -Note that due to significant differences between Prometheus 1.x and 2.x, only 2.x is supported. It is your responsibility to make sure that your package manager installs 2.x. (On Devuan Ascii, the parameter `--install-from-backports` helps.) - - -REQUIRED PARAMETERS -------------------- -config - Alertmanager configuration file. It will be saved as /etc/alertmanager/alertmanager.yml on the target. - - -OPTIONAL PARAMETERS -------------------- -storage-path - Where to put data. Default: /data/alertmanager. (Directory will be created if needed.) -retention-days - How long to retain data. Default: 90 days. - - -BOOLEAN PARAMETERS ------------------- -install-from-backports - Valid on Devuan only. Will enable the backports apt source and install the package from there. Useful for getting a newer version. - - -EXAMPLES --------- - -.. code-block:: sh - - __prometheus_alertmanager \ - --install-from-backports \ - --config "$__manifest/files/alertmanager.yml" \ - --storage-path /data/alertmanager - - -SEE ALSO --------- -:strong:`cdist-type__prometheus_server`\ (7), :strong:`cdist-type__grafana_dashboard`\ (7), -Prometheus alerting documentation: https://prometheus.io/docs/alerting/overview/ - -AUTHORS -------- -Kamila Součková - -COPYING -------- -Copyright \(C) 2018 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__prometheus_alertmanager/manifest b/cdist/conf/type/__prometheus_alertmanager/manifest deleted file mode 100755 index cf410c44..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/manifest +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -e - -##### HARD-CODED CONFIG ##################################################### - -CONF_DIR=/etc/prometheus -CONF=$CONF_DIR/alertmanager.yml - -##### GET SETTINGS ########################################################## - -config="$(cat "$__object/parameter/config")" -retention_days="$(cat "$__object/parameter/retention-days")" -storage_path="$(cat "$__object/parameter/storage-path")" -# listen_address="$(cat "$__object/parameter/listen-address")" - -##### INSTALL THE PACKAGE ################################################### - -require_pkg="" # what to require if I want to require "the package" -require="" -if [ -f "$__object/parameter/install-from-backports" ]; then - os=$(cat "$__global/explorer/os") - os_version=$(cat "$__global/explorer/os_version") - - case $os in - devuan) - [ "$os_version" = "ascii/ceres" ] && os_version='ascii' # "ascii" used in the repo URLs - __apt_source backports --uri http://auto.mirror.devuan.org/merged --distribution $os_version-backports --component main - require="$require __apt_source/backports" __package_apt prometheus-alertmanager --target-release $os_version-backports - require_pkg="__package_apt/prometheus-alertmanager" - ;; - *) - echo "--install-from-backports is only supported on Devuan -- ignoring." >&2 - echo "Send a pull request if you require it." >&2 - exit 1 - ;; - esac -else - __package prometheus-alertmanager - require_pkg="__package/prometheus-alertmanager" -fi - -##### PREPARE PATHS AND SUCH ################################################ - -require="$require $require_pkg" __directory "$storage_path" --owner prometheus --parents - -# TODO this is a bug in the init script, patching it like this is awful and it should be reported -require="$require $require_pkg" \ -__key_value alertmanager_fix_init_script --file /etc/init.d/prometheus-alertmanager \ - --key "NAME" --value "prometheus-alertmanager" --delimiter "=" \ - --onchange "service prometheus-alertmanager restart" - -##### CONFIGURE ############################################################# - -FLAGS="--storage.path $storage_path --data.retention $((retention_days*24))h --web.listen-address [::]:9093 --cluster.advertise-address [::]:9093" - -require="$require $require_pkg" \ -__key_value alertmanager_args --file /etc/default/prometheus-alertmanager \ - --key "ARGS" --value "\"$FLAGS\"" --delimiter "=" \ - --onchange "service prometheus-alertmanager restart" - -require="$require __directory/$storage_path $require_pkg" \ -__config_file $CONF \ - --source "$config" \ - --group prometheus --mode 640 \ - --onchange "service prometheus-alertmanager restart" # TODO when a config-check tool is available, check config here - diff --git a/cdist/conf/type/__prometheus_alertmanager/parameter/boolean b/cdist/conf/type/__prometheus_alertmanager/parameter/boolean deleted file mode 100644 index 5d15e93d..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -install-from-backports diff --git a/cdist/conf/type/__prometheus_alertmanager/parameter/default/retention-days b/cdist/conf/type/__prometheus_alertmanager/parameter/default/retention-days deleted file mode 100644 index d61f00d8..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/parameter/default/retention-days +++ /dev/null @@ -1 +0,0 @@ -90 diff --git a/cdist/conf/type/__prometheus_alertmanager/parameter/default/storage-path b/cdist/conf/type/__prometheus_alertmanager/parameter/default/storage-path deleted file mode 100644 index 4f3e7559..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/parameter/default/storage-path +++ /dev/null @@ -1 +0,0 @@ -/data/alertmanager diff --git a/cdist/conf/type/__prometheus_alertmanager/parameter/optional b/cdist/conf/type/__prometheus_alertmanager/parameter/optional deleted file mode 100644 index 7fe79009..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -storage-path -retention-days diff --git a/cdist/conf/type/__prometheus_alertmanager/parameter/required b/cdist/conf/type/__prometheus_alertmanager/parameter/required deleted file mode 100644 index 04204c7c..00000000 --- a/cdist/conf/type/__prometheus_alertmanager/parameter/required +++ /dev/null @@ -1 +0,0 @@ -config diff --git a/cdist/conf/type/__prometheus_alertmanager/singleton b/cdist/conf/type/__prometheus_alertmanager/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__prometheus_exporter/files/blackbox.yml b/cdist/conf/type/__prometheus_exporter/files/blackbox.yml deleted file mode 100644 index e567c127..00000000 --- a/cdist/conf/type/__prometheus_exporter/files/blackbox.yml +++ /dev/null @@ -1,63 +0,0 @@ -modules: - http_2xx: - prober: http - timeout: 3s - http: - method: GET - no_follow_redirects: false - fail_if_ssl: false - fail_if_not_ssl: false - # http_post_2xx: - # prober: http - # timeout: 5s - # http: - # method: POST - # headers: - # Content-Type: application/json - # body: '{}' - # tcp_connect_v4_example: - # prober: tcp - # timeout: 5s - # tcp: - # protocol: "tcp4" - # irc_banner_example: - # prober: tcp - # timeout: 5s - # tcp: - # query_response: - # - send: "NICK prober" - # - send: "USER prober prober prober :prober" - # - expect: "PING :([^ ]+)" - # send: "PONG ${1}" - # - expect: "^:[^ ]+ 001" - # icmp_example: - # prober: icmp - # timeout: 5s - # icmp: - # protocol: "icmp" - # preferred_ip_protocol: "ip4" - # dns_udp_example: - # prober: dns - # timeout: 5s - # dns: - # query_name: "www.prometheus.io" - # query_type: "A" - # valid_rcodes: - # - NOERROR - # validate_answer_rrs: - # fail_if_matches_regexp: - # - ".*127.0.0.1" - # fail_if_not_matches_regexp: - # - "www.prometheus.io.\t300\tIN\tA\t127.0.0.1" - # validate_authority_rrs: - # fail_if_matches_regexp: - # - ".*127.0.0.1" - # validate_additional_rrs: - # fail_if_matches_regexp: - # - ".*127.0.0.1" - # dns_tcp_example: - # prober: dns - # dns: - # protocol: "tcp" # accepts "tcp/tcp4/tcp6/udp/udp4/udp6", defaults to "udp" - # preferred_ip_protocol: "ip4" # used for "udp/tcp", defaults to "ip6" - # query_name: "www.prometheus.io" diff --git a/cdist/conf/type/__prometheus_exporter/man.rst b/cdist/conf/type/__prometheus_exporter/man.rst deleted file mode 100644 index 3b1ee4d7..00000000 --- a/cdist/conf/type/__prometheus_exporter/man.rst +++ /dev/null @@ -1,70 +0,0 @@ -cdist-type__prometheus_exporter(7) -================================== - -NAME ----- -cdist-type__prometheus_exporter - install some Prometheus exporters - - -DESCRIPTION ------------ -Install and configure some exporters to be used by the Prometheus monitoring system (https://prometheus.io/). - -This type creates a daemontools-compatible service directory under /service/$__object_id. -Daemontools (or something compatible) must be installed (in particular, the command `svc` must be executable). - -This type installs and builds the latest version from git, using go get. A recent version of golang as well -as build tools (make, g++, etc.) must be available. - -Currently supported exporters: - -- node -- blackbox -- ceph - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -exporter - Which exporter to install and configure. Default: $__object_id. - Currently supported: node, blackbox, ceph. - - -BOOLEAN PARAMETERS ------------------- -add-consul-service - Add this exporter as a Consul service for automatic service discovery. - - -EXAMPLES --------- - -.. code-block:: sh - - __daemontools - __golang_from_vendor --version 1.9 # required for prometheus and many exporters - - require="__daemontools __golang_from_vendor" __prometheus_exporter node - - -SEE ALSO --------- -:strong:`cdist-type__daemontools`\ (7), :strong:`cdist-type__golang_from_vendor`\ (7), -:strong:`cdist-type__prometheus_server`\ (7), -Prometheus documentation: https://prometheus.io/docs/introduction/overview/ - -AUTHORS -------- -Kamila Součková - -COPYING -------- -Copyright \(C) 2017 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__prometheus_exporter/manifest b/cdist/conf/type/__prometheus_exporter/manifest deleted file mode 100644 index f3930ac6..00000000 --- a/cdist/conf/type/__prometheus_exporter/manifest +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -export GOBIN=/opt/gocode/bin # where to find go binaries - -exporter="$(cat "$__object/parameter/exporter")" -[ -z "$exporter" ] && exporter="$__object_id" - -__user prometheus -require="__user/prometheus" __group prometheus -require="__group/prometheus" __user_groups prometheus --group prometheus - -require="__user_groups/prometheus" -case $exporter in - node) - TEXTFILES=/service/node-exporter/textfiles # path for the textfiles collector - __directory $TEXTFILES --parents --mode 777 - require="$require __golang_from_vendor" __go_get github.com/prometheus/node_exporter - - port=9100 - run="setuidgid prometheus $GOBIN/node_exporter -web.listen-address :$port -collector.textfile.directory=$TEXTFILES" - ;; - blackbox) - require="$require __daemontools_service/${exporter}-exporter __user/prometheus" __config_file "/service/${exporter}-exporter/blackbox.yml" \ - --source "$__type/files/blackbox.yml" \ - --group prometheus --mode 640 \ - --onchange "svc -h /service/${exporter}-exporter" - require="$require __golang_from_vendor" __go_get github.com/prometheus/blackbox_exporter - - port=9115 - run="setuidgid prometheus $GOBIN/blackbox_exporter -config.file=/service/${exporter}-exporter/blackbox.yml" - ;; - ceph) - __package librados-dev # dependency of ceph_exporter - require="$require __golang_from_vendor __package/librados-dev" __go_get github.com/digitalocean/ceph_exporter - - port=9128 - run="setuidgid ceph $GOBIN/ceph_exporter -ceph.config /etc/ceph/ceph.conf -telemetry.addr :$port" - ;; - *) - echo "Unsupported exporter: $exporter." >&2 - exit 1 - ;; -esac - -require="$require __daemontools" __daemontools_service "${exporter}-exporter" --run "$run" -if [ -f "$__object/parameter/add-consul-service" ]; then - __consul_service "${exporter}-exporter" --port "$port" --check-http "http://localhost:$port/metrics" --check-interval 10s -fi - -#__daemontools --install-init-script -__daemontools -__golang_from_vendor --version 1.9 # required for many exporters diff --git a/cdist/conf/type/__prometheus_exporter/parameter/boolean b/cdist/conf/type/__prometheus_exporter/parameter/boolean deleted file mode 100644 index 004af844..00000000 --- a/cdist/conf/type/__prometheus_exporter/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -add-consul-service diff --git a/cdist/conf/type/__prometheus_exporter/parameter/default/exporter b/cdist/conf/type/__prometheus_exporter/parameter/default/exporter deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__prometheus_exporter/parameter/optional b/cdist/conf/type/__prometheus_exporter/parameter/optional deleted file mode 100644 index 9cfaec5a..00000000 --- a/cdist/conf/type/__prometheus_exporter/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -exporter diff --git a/cdist/conf/type/__prometheus_server/man.rst b/cdist/conf/type/__prometheus_server/man.rst deleted file mode 100644 index ab6a3c9b..00000000 --- a/cdist/conf/type/__prometheus_server/man.rst +++ /dev/null @@ -1,67 +0,0 @@ -cdist-type__prometheus_server(7) -================================ - -NAME ----- -cdist-type__prometheus_server - install Prometheus - - -DESCRIPTION ------------ -Install and configure Prometheus (https://prometheus.io/). - -Note that due to significant differences between Prometheus 1.x and 2.x, only 2.x is supported. It is your responsibility to make sure that your package manager installs 2.x. (On Devuan Ascii, the parameter `--install-from-backports` helps.) - -REQUIRED PARAMETERS -------------------- -config - Prometheus configuration file. It will be saved as /etc/prometheus/prometheus.yml on the target. - - -OPTIONAL PARAMETERS -------------------- -retention-days - How long to keep data. Default: 30 -rule-files - Path to rule files. They will be installed under /etc/prometheus/. You need to include `rule_files: [/etc/prometheus/]` in the config file if you use this. -storage-path - Where to put data. Default: /data/prometheus. (Directory will be created if needed.) - - -BOOLEAN PARAMETERS ------------------- -install-from-backports - Valid on Devuan only. Will enable the backports apt source and install the package from there. Useful for getting a newer version. - - -EXAMPLES --------- - -.. code-block:: sh - - PROMPORT=9090 - ALERTPORT=9093 - - __prometheus_server \ - --install-from-backports \ - --config "$__manifest/files/prometheus.yml" \ - --retention-days 14 \ - --storage-path /data/prometheus \ - --rule-files "$__manifest/files/*.rules" - - -SEE ALSO --------- -:strong:`cdist-type__prometheus_alertmanager`\ (7), :strong:`cdist-type__grafana_dashboard`\ (7), -Prometheus documentation: https://prometheus.io/docs/introduction/overview/ - -AUTHORS -------- -Kamila Součková - -COPYING -------- -Copyright \(C) 2018 Kamila Součková. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__prometheus_server/manifest b/cdist/conf/type/__prometheus_server/manifest deleted file mode 100755 index 9756169e..00000000 --- a/cdist/conf/type/__prometheus_server/manifest +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -e - -##### HARD-CODED CONFIG ##################################################### - -CONF_DIR=/etc/prometheus -CONF=$CONF_DIR/prometheus.yml - -##### GET SETTINGS ########################################################## - -config="$(cat "$__object/parameter/config")" -retention_days="$(cat "$__object/parameter/retention-days")" -storage_path="$(cat "$__object/parameter/storage-path")" -rule_files="$(cat "$__object/parameter/rule-files")" - -# explorer in kB => convert; by default we go with 1/2 RAM -[ "$target_heap_size" = "auto" ] && target_heap_size=$(($(cat "$__global/explorer/memory")*1024/2)) - -##### INSTALL THE PACKAGE ################################################### - -require_pkg="" # what to require if I want to require "the package" -require="" -if [ -f "$__object/parameter/install-from-backports" ]; then - os=$(cat "$__global/explorer/os") - os_version=$(cat "$__global/explorer/os_version") - - case $os in - devuan) - [ "$os_version" = "ascii/ceres" ] && os_version='ascii' # "ascii" used in the repo URLs - __apt_source backports --uri http://auto.mirror.devuan.org/merged --distribution $os_version-backports --component main - require="$require __apt_source/backports" __package_apt prometheus --target-release $os_version-backports - require_pkg="__package_apt/prometheus" - ;; - *) - echo "--install-from-backports is only supported on Devuan -- ignoring." >&2 - echo "Send a pull request if you require it." >&2 - exit 1 - ;; - esac -else - __package prometheus - __package prometheus-blackbox-exporter - require_pkg="__package/prometheus __package/prometheus-blackbox-exporter" -fi - -##### PREPARE PATHS AND SUCH ################################################ - -require="$require $require_pkg" __directory "$storage_path" --owner prometheus --parents - -##### CONFIGURE ############################################################# - -FLAGS="--storage.tsdb.path $storage_path --storage.tsdb.retention $((retention_days*24))h --web.listen-address [::]:9090" - -# TODO it would be neat to restart prometheus on change -- __key_value really should have an --onchange parameter -require="$require $require_pkg" \ -__key_value prometheus_args --file /etc/default/prometheus \ - --key "ARGS" --value "\"$FLAGS\"" --delimiter "=" \ - --onchange "service prometheus restart" - -require="$require __directory/$storage_path $require_pkg" \ -__config_file $CONF \ - --source "$config" \ - --group prometheus --mode 640 \ - --onchange "promtool check config $CONF && service prometheus restart" - -for file in $rule_files; do - dest=$CONF_DIR/$(basename "$file") - require="$require $require_pkg" \ - __config_file "$dest" \ - --source "$file" \ - --owner prometheus \ - --onchange "promtool check rules '$dest' && service prometheus restart" -done - diff --git a/cdist/conf/type/__prometheus_server/parameter/boolean b/cdist/conf/type/__prometheus_server/parameter/boolean deleted file mode 100644 index 5d15e93d..00000000 --- a/cdist/conf/type/__prometheus_server/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -install-from-backports diff --git a/cdist/conf/type/__prometheus_server/parameter/default/retention-days b/cdist/conf/type/__prometheus_server/parameter/default/retention-days deleted file mode 100644 index 64bb6b74..00000000 --- a/cdist/conf/type/__prometheus_server/parameter/default/retention-days +++ /dev/null @@ -1 +0,0 @@ -30 diff --git a/cdist/conf/type/__prometheus_server/parameter/default/rule-files b/cdist/conf/type/__prometheus_server/parameter/default/rule-files deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__prometheus_server/parameter/default/storage-path b/cdist/conf/type/__prometheus_server/parameter/default/storage-path deleted file mode 100644 index fc05f8f3..00000000 --- a/cdist/conf/type/__prometheus_server/parameter/default/storage-path +++ /dev/null @@ -1 +0,0 @@ -/data/prometheus diff --git a/cdist/conf/type/__prometheus_server/parameter/optional b/cdist/conf/type/__prometheus_server/parameter/optional deleted file mode 100644 index cb437211..00000000 --- a/cdist/conf/type/__prometheus_server/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -retention-days -rule-files -storage-path diff --git a/cdist/conf/type/__prometheus_server/parameter/required b/cdist/conf/type/__prometheus_server/parameter/required deleted file mode 100644 index 04204c7c..00000000 --- a/cdist/conf/type/__prometheus_server/parameter/required +++ /dev/null @@ -1 +0,0 @@ -config diff --git a/cdist/conf/type/__prometheus_server/singleton b/cdist/conf/type/__prometheus_server/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__pyvenv/explorer/group b/cdist/conf/type/__pyvenv/explorer/group deleted file mode 100755 index a655bda7..00000000 --- a/cdist/conf/type/__pyvenv/explorer/group +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -destination="/$__object_id" - -stat --print "%G" "${destination}" 2>/dev/null || exit 0 diff --git a/cdist/conf/type/__pyvenv/explorer/owner b/cdist/conf/type/__pyvenv/explorer/owner deleted file mode 100755 index 8b3c7f8e..00000000 --- a/cdist/conf/type/__pyvenv/explorer/owner +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -destination="/$__object_id" - -stat --print "%U" "${destination}" 2>/dev/null || exit 0 diff --git a/cdist/conf/type/__pyvenv/explorer/state b/cdist/conf/type/__pyvenv/explorer/state deleted file mode 100755 index ffe3cbbd..00000000 --- a/cdist/conf/type/__pyvenv/explorer/state +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -destination="/$__object_id" - -if [ -d "$destination" ]; then - echo present -else - echo absent -fi diff --git a/cdist/conf/type/__pyvenv/gencode-remote b/cdist/conf/type/__pyvenv/gencode-remote deleted file mode 100755 index 04700683..00000000 --- a/cdist/conf/type/__pyvenv/gencode-remote +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -e -# -# 2016 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -state_is="$(cat "$__object/explorer/state")" -owner_is="$(cat "$__object/explorer/owner")" -group_is="$(cat "$__object/explorer/group")" - -state_should="$(cat "$__object/parameter/state")" - -owner="$(cat "$__object/parameter/owner")" -group="$(cat "$__object/parameter/group")" -mode="$(cat "$__object/parameter/mode")" - -[ "$state_should" = "$state_is" ] && \ -[ "$owner" = "$owner_is" ] && \ -[ "$group" = "$group_is" ] && \ -[ -n "$mode" ] && exit 0 - -destination="/$__object_id" -venvparams="$(cat "$__object/parameter/venvparams")" -pyvenvparam="$__object/parameter/pyvenv" -if [ -f "$pyvenvparam" ] -then - pyvenv=$(cat "$pyvenvparam") -else - pyvenv="pyvenv" -fi - -case $state_should in - present) - if [ "$state_should" != "$state_is" ]; then - echo "$pyvenv $venvparams $destination" - fi - if { [ -n "$owner" ] && [ "$owner_is" != "$owner" ]; } || \ - { [ -n "$group" ] && [ "$group_is" != "$group" ]; }; then - echo chown -R "${owner}:${group}" "$destination" - fi - if [ -n "$mode" ]; then - echo chmod -R "$mode" "$destination" - fi - ;; - absent) - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__pyvenv/man.rst b/cdist/conf/type/__pyvenv/man.rst deleted file mode 100644 index d7de92fa..00000000 --- a/cdist/conf/type/__pyvenv/man.rst +++ /dev/null @@ -1,79 +0,0 @@ -cdist-type__pyvenv(7) -===================== - -NAME ----- -cdist-type__pyvenv - Create or remove python virtual environment - - -DESCRIPTION ------------ -This cdist type allows you to create or remove python virtual -environment using pyvenv. -It assumes pyvenv is already installed. Concrete package depends -on concrete OS and/or OS version/distribution. -Ensure this for e.g. in your init manifest as in the following example: - -.. code-block sh - - case "$__target_host" in - localhost) - __package python3-venv --state present - require="__package/python3-venv" __pyvenv /home/darko/testenv --pyvenv "pyvenv-3.4" --owner darko --group darko --mode 740 --state present - require="__pyvenv/home/darko/testenv" __package_pip docopt --pip /home/darko/testenv/bin/pip --runas darko --state present - ;; - esac - - -REQUIRED PARAMETERS -------------------- -None - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" - -group - Group to chgrp to - -mode - Unix permissions, suitable for chmod - -owner - User to chown to - -pyvenv - Use this specific pyvenv - -venvparams - Specific parameters to pass to pyvenv invocation - - -EXAMPLES --------- - -.. code-block:: sh - - __pyvenv /home/services/djangoenv - - # Use specific pyvenv - __pyvenv /home/foo/fooenv --pyvenv /usr/local/bin/pyvenv-3.4 - - # Create python virtualenv for user foo. - __pyvenv /home/foo/fooenv --group foo --user foo - - # Create python virtualenv with specific parameters. - __pyvenv /home/services/djangoenv --venvparams "--copies --system-site-packages" - - -AUTHORS -------- -Darko Poljak - - -COPYING -------- -Copyright \(C) 2016 Darko Poljak. Free use of this software is -granted under the terms of the GNU General Public License v3 or later (GPLv3+). - diff --git a/cdist/conf/type/__pyvenv/manifest b/cdist/conf/type/__pyvenv/manifest deleted file mode 100755 index 5d6a12e8..00000000 --- a/cdist/conf/type/__pyvenv/manifest +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -e -# -# 2016 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# It assumes pyvenv is already installed. Concrete packages -# or installation procedures depend on concrete OS and/or OS -# version/distribution. - -state_should="$(cat "$__object/parameter/state")" -owner="$(cat "$__object/parameter/owner")" -group="$(cat "$__object/parameter/group")" -mode="$(cat "$__object/parameter/mode")" - -case "$state_should" in - present) - : - ;; - - absent) - __directory "$__object_id" --state absent \ - --owner "$owner" \ - --group "$group" \ - --mode "$mode" - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__pyvenv/parameter/default/group b/cdist/conf/type/__pyvenv/parameter/default/group deleted file mode 100755 index 8b137891..00000000 --- a/cdist/conf/type/__pyvenv/parameter/default/group +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__pyvenv/parameter/default/mode b/cdist/conf/type/__pyvenv/parameter/default/mode deleted file mode 100755 index 8b137891..00000000 --- a/cdist/conf/type/__pyvenv/parameter/default/mode +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__pyvenv/parameter/default/owner b/cdist/conf/type/__pyvenv/parameter/default/owner deleted file mode 100755 index 8b137891..00000000 --- a/cdist/conf/type/__pyvenv/parameter/default/owner +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__pyvenv/parameter/default/state b/cdist/conf/type/__pyvenv/parameter/default/state deleted file mode 100755 index e7f6134f..00000000 --- a/cdist/conf/type/__pyvenv/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__pyvenv/parameter/default/venvparams b/cdist/conf/type/__pyvenv/parameter/default/venvparams deleted file mode 100644 index 8b137891..00000000 --- a/cdist/conf/type/__pyvenv/parameter/default/venvparams +++ /dev/null @@ -1 +0,0 @@ - diff --git a/cdist/conf/type/__pyvenv/parameter/optional b/cdist/conf/type/__pyvenv/parameter/optional deleted file mode 100755 index ed2218b1..00000000 --- a/cdist/conf/type/__pyvenv/parameter/optional +++ /dev/null @@ -1,6 +0,0 @@ -state -group -owner -mode -venvparams -pyvenv diff --git a/cdist/conf/type/__qemu_img/gencode-remote b/cdist/conf/type/__qemu_img/gencode-remote deleted file mode 100755 index 94816f58..00000000 --- a/cdist/conf/type/__qemu_img/gencode-remote +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -e -# -################################################################################ -# State: absent is handled by manifest - we need only to do stuff if image is -# not existing and state != absent -# -state="$(cat "$__object/parameter/state")" -[ "$state" = "absent" ] && exit 0 - -exists="$(cat "$__object/explorer/exists")" -[ "$exists" ] && exit 0 - -################################################################################ -# Still there? Create image -# - -format="$(cat "$__object/parameter/format")" -size="$(cat "$__object/parameter/size")" -diskimage="/$__object_id" - -echo "qemu-img create -f '$format' '$diskimage' '$size'" diff --git a/cdist/conf/type/__qemu_img/man.rst b/cdist/conf/type/__qemu_img/man.rst deleted file mode 100644 index 210c7f5f..00000000 --- a/cdist/conf/type/__qemu_img/man.rst +++ /dev/null @@ -1,53 +0,0 @@ -cdist-type__qemu_img(7) -======================= - -NAME ----- -cdist-type__qemu_img - Manage VM disk images - - -DESCRIPTION ------------ -The qemu-img program is used to create qemu images for -qemu and (qemu-)kvm. - - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" -size - Size of the image in qemu-img compatible units. - - Required if state is "present". - - -EXAMPLES --------- - -.. code-block:: sh - - # Create a 50G size image - __qemu_img /home/services/kvm/vm/myvmname/system-disk --size 50G - - # Remove image - __qemu_img /home/services/kvm/vm/myoldvm/system-disk --state absent - - -SEE ALSO --------- -:strong:`qemu-img`\ (1) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2012-2014 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__qemu_img/manifest b/cdist/conf/type/__qemu_img/manifest deleted file mode 100755 index 55f3bf16..00000000 --- a/cdist/conf/type/__qemu_img/manifest +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -################################################################################ -# Default settings -# - -state_should="$(cat "$__object/parameter/state")" - -diskimage="/$__object_id" - -case "$state_should" in - present) - if [ ! -f "$__object/parameter/size" ]; then - echo "Size is required when state is present" >&2 - exit 1 - fi - ;; - absent) - # Absent is ensured by __file, present by gencode-remote - __file "$diskimage" --state absent - ;; - *) - echo "Unsupported state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__qemu_img/parameter/default/format b/cdist/conf/type/__qemu_img/parameter/default/format deleted file mode 100644 index e0a90ab9..00000000 --- a/cdist/conf/type/__qemu_img/parameter/default/format +++ /dev/null @@ -1 +0,0 @@ -qcow2 diff --git a/cdist/conf/type/__qemu_img/parameter/default/state b/cdist/conf/type/__qemu_img/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__qemu_img/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__qemu_img/parameter/optional b/cdist/conf/type/__qemu_img/parameter/optional deleted file mode 100644 index 21aa421b..00000000 --- a/cdist/conf/type/__qemu_img/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -format -state -size diff --git a/cdist/conf/type/__rbenv/man.rst b/cdist/conf/type/__rbenv/man.rst deleted file mode 100644 index 607019cf..00000000 --- a/cdist/conf/type/__rbenv/man.rst +++ /dev/null @@ -1,49 +0,0 @@ -cdist-type__rbenv(7) -==================== - -NAME ----- -cdist-type__rbenv - Manage rbenv installation - - -DESCRIPTION ------------ -This cdist type allows you to manage rbenv installations. -It also installs ruby-build. - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" - -owner - Which user should own the rbenv installation, defaults to root - - -EXAMPLES --------- - -.. code-block:: sh - - # Install rbenv including ruby-build for nico - __rbenv /home/nico - - # Install rbenv including ruby-build for nico - __rbenv /home/nico --owner nico - - # Bastian does not need rbenv anymore, he began to code C99 - __rbenv /home/bastian --state absent - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2012-2014 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__rbenv/manifest b/cdist/conf/type/__rbenv/manifest deleted file mode 100755 index e5c3d2f8..00000000 --- a/cdist/conf/type/__rbenv/manifest +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -homedir="$__object_id" - -state_should="$(cat "$__object/parameter/state")" -owner="$(cat "$__object/parameter/owner")" - -rbenvdir="$homedir/.rbenv" -rubybuilddir="$rbenvdir/plugins/ruby-build" - -__git "$rbenvdir" \ - --source git://github.com/sstephenson/rbenv.git \ - --owner "$owner" \ - --state "$state_should" - -require="__git/$rbenvdir" __git "$rubybuilddir" \ - --source git://github.com/sstephenson/ruby-build.git \ - --owner "$owner" \ - --state "$state_should" diff --git a/cdist/conf/type/__rbenv/parameter/default/state b/cdist/conf/type/__rbenv/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__rbenv/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__rbenv/parameter/optional b/cdist/conf/type/__rbenv/parameter/optional deleted file mode 100644 index ff72b5c7..00000000 --- a/cdist/conf/type/__rbenv/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -state diff --git a/cdist/conf/type/__rsync/gencode-local b/cdist/conf/type/__rsync/gencode-local deleted file mode 100755 index e36ded2f..00000000 --- a/cdist/conf/type/__rsync/gencode-local +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -e -# -# 2015 Dominique Roux (dominique.roux4 at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -source=$(cat "$__object/parameter/source") -remote_user=$(cat "$__object/parameter/remote-user") - -if [ -f "$__object/parameter/destination" ]; then - destination=$(cat "$__object/parameter/destination") -else - destination="/$__object_id" -fi - -set -- -if [ -f "$__object/parameter/rsync-opts" ]; then - while read -r opts; do - set -- "$@" "--$opts" - done < "$__object/parameter/rsync-opts" -fi - -echo rsync -a \ - --no-owner --no-group \ - -q "$@" "${source}/" "${remote_user}@${__target_host}:${destination}" diff --git a/cdist/conf/type/__rsync/man.rst b/cdist/conf/type/__rsync/man.rst deleted file mode 100644 index 94b06d63..00000000 --- a/cdist/conf/type/__rsync/man.rst +++ /dev/null @@ -1,114 +0,0 @@ -cdist-type__rsync(7) -==================== - -NAME ----- -cdist-type__rsync - Mirror directories using rsync - - -DESCRIPTION ------------ -WARNING: This type is of BETA quality: - -- it has not been tested widely -- interfaces *may* change -- if there is a better approach to solve the problem -> the type may even vanish - -If you are fine with these constraints, please read on. - - -This cdist type allows you to mirror local directories to the -target host using rsync. Rsync will be installed in the manifest of the type. -If group or owner are giveng, a recursive chown will be executed on the -target host. - -A slash will be appended to the source directory so that only the contents -of the directory are taken and not the directory name itself. - - -REQUIRED PARAMETERS -------------------- -source - Where to take files from - - -OPTIONAL PARAMETERS -------------------- -group - Group to chgrp to. - -owner - User to chown to. - -destination - Use this as the base destination instead of the object id - -remote-user - Use this user instead of the default "root" for rsync operations. - - -OPTIONAL MULTIPLE PARAMETERS ----------------------------- -rsync-opts - Use this option to give rsync options with. - See rsync(1) for available options. - Only "--" options are supported. - Write the options without the beginning "--" - Can be specified multiple times. - - -MESSAGES --------- -NONE - - -EXAMPLES --------- - -.. code-block:: sh - - # You can use any source directory - __rsync /tmp/testdir \ - --source /etc - - # Use source from type - __rsync /etc \ - --source "$__type/files/package" - - # Allow multiple __rsync objects to write to the same dir - __rsync mystuff \ - --destination /usr/local/bin \ - --source "$__type/files/package" - - __rsync otherstuff \ - --destination /usr/local/bin \ - --source "$__type/files/package2" - - # Use rsync option --exclude - __rsync /tmp/testdir \ - --source /etc \ - --rsync-opts exclude=sshd_conf - - # Use rsync with multiple options --exclude --dry-run - __rsync /tmp/testing \ - --source /home/tester \ - --rsync-opts exclude=id_rsa \ - --rsync-opts dry-run - - -SEE ALSO --------- -:strong:`rsync`\ (1) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2015 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__rsync/parameter/default/remote-user b/cdist/conf/type/__rsync/parameter/default/remote-user deleted file mode 100644 index d8649da3..00000000 --- a/cdist/conf/type/__rsync/parameter/default/remote-user +++ /dev/null @@ -1 +0,0 @@ -root diff --git a/cdist/conf/type/__rsync/parameter/optional b/cdist/conf/type/__rsync/parameter/optional deleted file mode 100644 index ac2b2390..00000000 --- a/cdist/conf/type/__rsync/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -destination -owner -group -remote-user diff --git a/cdist/conf/type/__rsync/parameter/optional_multiple b/cdist/conf/type/__rsync/parameter/optional_multiple deleted file mode 100644 index fdb7cd88..00000000 --- a/cdist/conf/type/__rsync/parameter/optional_multiple +++ /dev/null @@ -1 +0,0 @@ -rsync-opts diff --git a/cdist/conf/type/__rsync/parameter/required b/cdist/conf/type/__rsync/parameter/required deleted file mode 100644 index 5a18cd2f..00000000 --- a/cdist/conf/type/__rsync/parameter/required +++ /dev/null @@ -1 +0,0 @@ -source diff --git a/cdist/conf/type/__rvm/explorer/state b/cdist/conf/type/__rvm/explorer/state deleted file mode 100755 index 74d17048..00000000 --- a/cdist/conf/type/__rvm/explorer/state +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# 2012 Evax Software -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -user="$__object_id" - -# RVM behaves differently if root is the username / uid == 0 -if [ "$user" = "root" ]; then - if [ -d /usr/local/rvm ]; then - echo present - else - echo absent - fi -else - if su - "$user" -c "[ -d \"\$HOME/.rvm\" ]" ; then - echo "present" - else - echo "absent" - fi -fi diff --git a/cdist/conf/type/__rvm/gencode-remote b/cdist/conf/type/__rvm/gencode-remote deleted file mode 100755 index 993191c1..00000000 --- a/cdist/conf/type/__rvm/gencode-remote +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -e -# -# 2012 Evax Software -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -user="$__object_id" -state_is="$(cat "$__object/explorer/state")" -state_should="$(cat "$__object/parameter/state")" - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - cat << DONE -su - $user -c "unset rvm_path; unset rvm_bin_path; unset rvm_prefix; unset rvm_version; curl -L get.rvm.io | bash -s stable" -DONE - ;; - absent) - cat << DONE -su - $user -c "rm -Rf \"\\\$HOME/.rvm\"; -sed '/rvm\\/scripts\\/rvm/d' \"\\\$HOME/.bashrc\" > \"\\\$HOME/.bashrc.cdist-tmp\" -mv \"\\\$HOME/.bashrc.cdist-tmp\" \"\\\$HOME/.bashrc\"" -DONE - ;; -esac diff --git a/cdist/conf/type/__rvm/man.rst b/cdist/conf/type/__rvm/man.rst deleted file mode 100644 index 3a914304..00000000 --- a/cdist/conf/type/__rvm/man.rst +++ /dev/null @@ -1,46 +0,0 @@ -cdist-type__rvm(7) -================== - -NAME ----- -cdist-type__rvm - Install rvm for a given user - - -DESCRIPTION ------------ -RVM is the Ruby enVironment Manager for the Ruby programming language. - - -REQUIRED PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present". - - -EXAMPLES --------- - -.. code-block:: sh - - # Install rvm for user billie - __rvm billie --state present - - # Remove rvm - __rvm billie --state absent - - -SEE ALSO --------- -:strong:`cdist-type__rvm_gem`\ (7), :strong:`cdist-type__rvm_gemset`\ (7), -:strong:`cdist-type__rvm_ruby`\ (7) - - -AUTHORS -------- -Evax Software - - -COPYING -------- -Copyright \(C) 2012 Evax Software. Free use of this software is granted under -the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__rvm/manifest b/cdist/conf/type/__rvm/manifest deleted file mode 100755 index 0230156b..00000000 --- a/cdist/conf/type/__rvm/manifest +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e -# -# 2012 Evax Software -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# rvm core dependencies -__package bash --state present -__package curl --state present -__package git-core --state present -__package patch --state present diff --git a/cdist/conf/type/__rvm/parameter/default/state b/cdist/conf/type/__rvm/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__rvm/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__rvm/parameter/optional b/cdist/conf/type/__rvm/parameter/optional deleted file mode 100644 index ff72b5c7..00000000 --- a/cdist/conf/type/__rvm/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -state diff --git a/cdist/conf/type/__rvm_gem/explorer/state b/cdist/conf/type/__rvm_gem/explorer/state deleted file mode 100755 index 4146d666..00000000 --- a/cdist/conf/type/__rvm_gem/explorer/state +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# -# 2012 Evax Software -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -gem="$__object_id" -gemset="$(cat "$__object/parameter/gemset")" -ruby="$(echo "$gemset" | cut -d '@' -f 1)" -gemsetname="$(echo "$gemset" | cut -d '@' -f2)" -user="$(cat "$__object/parameter/user")" -if su - "$user" -c "[ ! -d \"\$HOME/.rvm\" ]" ; then - echo "absent" - exit 0 -fi -if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" -rvm list | grep -q $ruby"; then - if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" -rvm use $ruby > /dev/null 2>&1; rvm gemset list | grep -q $gemsetname && -rvm use $gemset > /dev/null 2>&1 && gem list | grep -q $gem"; then - echo "present" - exit 0 - fi -fi -echo "absent" diff --git a/cdist/conf/type/__rvm_gem/gencode-remote b/cdist/conf/type/__rvm_gem/gencode-remote deleted file mode 100755 index 9212de91..00000000 --- a/cdist/conf/type/__rvm_gem/gencode-remote +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh # -# 2012 Evax Software -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -gem="$__object_id" -gemset="$(cat "$__object/parameter/gemset")" -state_is="$(cat "$__object/explorer/state")" -user="$(cat "$__object/parameter/user")" -state_should="$(cat "$__object/parameter/state")" - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - cat << DONE -su - "$user" -c 'source ~/.rvm/scripts/rvm; rvm use "$gemset"; gem install "$gem"' -DONE - ;; - absent) - cat << DONE -su - "$user" -c 'source ~/.rvm/scripts/rvm; rvm use "$gemset"; gem uninstall "$gem"' -DONE - ;; -esac diff --git a/cdist/conf/type/__rvm_gem/man.rst b/cdist/conf/type/__rvm_gem/man.rst deleted file mode 100644 index 5f3fba97..00000000 --- a/cdist/conf/type/__rvm_gem/man.rst +++ /dev/null @@ -1,58 +0,0 @@ -cdist-type__rvm_gemset(7) -========================== - -NAME ----- -cdist-type__rvm_gemset - Manage Ruby gems through rvm - - -DESCRIPTION ------------ -RVM is the Ruby enVironment Manager for the Ruby programming language. - - -REQUIRED PARAMETERS -------------------- -user - The remote user account to use -gemset - The gemset to use -state - Either "present" or "absent", defaults to "present". - -OPTIONAL PARAMETERS -------------------- -default - Make the selected gemset the default - -EXAMPLES --------- - -.. code-block:: sh - - # Install the rails gem in gemset ruby-1.9.3-p0@myset for user bill - __rvm_gemset rails --gemset ruby-1.9.3-p0@myset --user bill --state present - - # Do the same and also make ruby-1.9.3-p0@myset the default gemset - __rvm_gemset rails --gemset ruby-1.9.3-p0@myset --user bill \ - --state present --default - - # Remove it - __rvm_ruby rails --gemset ruby-1.9.3-p0@myset --user bill --state absent - - -SEE ALSO --------- -:strong:`cdist-type__rvm`\ (7), :strong:`cdist-type__rvm_gemset`\ (7), -:strong:`cdist-type__rvm_ruby`\ (7) - - -AUTHORS -------- -Evax Software - - -COPYING -------- -Copyright \(C) 2012 Evax Software. Free use of this software is granted under -the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__rvm_gem/parameter/default/state b/cdist/conf/type/__rvm_gem/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__rvm_gem/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__rvm_gem/parameter/optional b/cdist/conf/type/__rvm_gem/parameter/optional deleted file mode 100644 index 96983811..00000000 --- a/cdist/conf/type/__rvm_gem/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -default -state diff --git a/cdist/conf/type/__rvm_gem/parameter/required b/cdist/conf/type/__rvm_gem/parameter/required deleted file mode 100644 index 58243a95..00000000 --- a/cdist/conf/type/__rvm_gem/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -gemset -user diff --git a/cdist/conf/type/__rvm_gemset/explorer/state b/cdist/conf/type/__rvm_gemset/explorer/state deleted file mode 100755 index e300453b..00000000 --- a/cdist/conf/type/__rvm_gemset/explorer/state +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# 2012 Evax Software -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -user="$(cat "$__object/parameter/user")" - -if [ ! -e "~$user/.rvm/scripts/rvm" ] ; then - echo "absent" - exit 0 -fi - -# shellcheck disable=SC2016 -if su - "$user" -c 'source ~/.rvm/scripts/rvm; rvm list strings | grep -q "^$ruby\$"'; then - # shellcheck disable=SC2016 - if su - "$user" -c 'source ~/.rvm/scripts/rvm; rvm use "$ruby" > /dev/null; rvm gemset list strings | cut -f 1 -d " " | grep -q "^$gemsetname\$"'; then - echo "present" - exit 0 - fi -fi -echo "absent" diff --git a/cdist/conf/type/__rvm_gemset/gencode-remote b/cdist/conf/type/__rvm_gemset/gencode-remote deleted file mode 100755 index 3cdc66a6..00000000 --- a/cdist/conf/type/__rvm_gemset/gencode-remote +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -e -# -# 2012 Evax Software -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -gemset="$__object_id" -ruby="$(echo "$gemset" | cut -d '@' -f 1)" -gemsetname="$(echo "$gemset" | cut -d '@' -f 2)" -state_is="$(cat "$__object/explorer/state")" -user="$(cat "$__object/parameter/user")" -state_should="$(cat "$__object/parameter/state")" - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - cat << DONE -su - "$user" -c "source ~/.rvm/scripts/rvm; rvm $gemset --create" -DONE - if [ -f "$__object/parameter/default" ]; then - cat << DONE -su - "$user" -c "source ~/.rvm/scripts/rvm; rvm use --default $gemset" -DONE - fi - - ;; - absent) - cat << DONE -su - "$user" -c "source ~/.rvm/scripts/rvm; rvm use $ruby; rvm --force gemset delete $gemsetname" -DONE - ;; -esac diff --git a/cdist/conf/type/__rvm_gemset/man.rst b/cdist/conf/type/__rvm_gemset/man.rst deleted file mode 100644 index fca4c36a..00000000 --- a/cdist/conf/type/__rvm_gemset/man.rst +++ /dev/null @@ -1,56 +0,0 @@ -cdist-type__rvm_gemset(7) -========================== - -NAME ----- -cdist-type__rvm_gemset - Manage gemsets through rvm - - -DESCRIPTION ------------ -RVM is the Ruby enVironment Manager for the Ruby programming language. - - -REQUIRED PARAMETERS -------------------- -user - The remote user account to use -state - Either "present" or "absent", defaults to "present". - -BOOLEAN PARAMETERS -------------------- -default - If present, set the given gemset as default. - - -EXAMPLES --------- - -.. code-block:: sh - - # Install the gemset @myset for user charles on based on ruby-1.9.3-0 - __rvm_gemset ruby-1.9.3-p0@myset --user charles --state present - - # Do the same and make ruby-1.9.3-p0@myset the default gemset - __rvm_gemset ruby-1.9.3-p0@myset --user charles --state present --default - - # Remove the gemset @myset for user john - __rvm_ruby ruby-1.9.3-p0@myset --user john --state absent - - -SEE ALSO --------- -:strong:`cdist-type__rvm`\ (7), :strong:`cdist-type__rvm_gem`\ (7), -:strong:`cdist-type__rvm_ruby`\ (7) - - -AUTHORS -------- -Evax Software - - -COPYING -------- -Copyright \(C) 2012 Evax Software. Free use of this software is granted under -the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__rvm_gemset/parameter/boolean b/cdist/conf/type/__rvm_gemset/parameter/boolean deleted file mode 100644 index 4ad96d51..00000000 --- a/cdist/conf/type/__rvm_gemset/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/cdist/conf/type/__rvm_gemset/parameter/default/state b/cdist/conf/type/__rvm_gemset/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__rvm_gemset/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__rvm_gemset/parameter/optional b/cdist/conf/type/__rvm_gemset/parameter/optional deleted file mode 100644 index ff72b5c7..00000000 --- a/cdist/conf/type/__rvm_gemset/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -state diff --git a/cdist/conf/type/__rvm_gemset/parameter/required b/cdist/conf/type/__rvm_gemset/parameter/required deleted file mode 100644 index 4eb8387f..00000000 --- a/cdist/conf/type/__rvm_gemset/parameter/required +++ /dev/null @@ -1 +0,0 @@ -user diff --git a/cdist/conf/type/__rvm_ruby/explorer/state b/cdist/conf/type/__rvm_ruby/explorer/state deleted file mode 100755 index 43dafd4f..00000000 --- a/cdist/conf/type/__rvm_ruby/explorer/state +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# -# 2012 Evax Software -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -ruby="$__object_id" -user="$(cat "$__object/parameter/user")" -if su - "$user" -c "[ ! -d \"\$HOME/.rvm\" ]" ; then - echo "absent" - exit 0 -fi -if su - "$user" -c "source \"\$HOME/.rvm/scripts/rvm\" -rvm list | grep -q $ruby"; then - echo "present" -else - echo "absent" -fi diff --git a/cdist/conf/type/__rvm_ruby/gencode-remote b/cdist/conf/type/__rvm_ruby/gencode-remote deleted file mode 100755 index f2fd41ef..00000000 --- a/cdist/conf/type/__rvm_ruby/gencode-remote +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -e -# -# 2012 Evax Software -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -ruby="$__object_id" -state_is="$(cat "$__object/explorer/state")" -user="$(cat "$__object/parameter/user")" -state_should="$(cat "$__object/parameter/state")" - -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - echo "su - \"$user\" -c \"source \\\$HOME/.rvm/scripts/rvm;"\ - "rvm install $ruby\"" - if [ -f "$__object/parameter/default" ]; then - echo "su - \"$user\" -c \"source \\\$HOME/.rvm/scripts/rvm;"\ - "rvm use --default $ruby\"" - fi - ;; - absent) - echo "su - \"$user\" -c \"source \\\$HOME/.rvm/scripts/rvm;"\ - "rvm remove $ruby\"" - ;; - - *) - echo "Unknown state $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__rvm_ruby/man.rst b/cdist/conf/type/__rvm_ruby/man.rst deleted file mode 100644 index f6e71e12..00000000 --- a/cdist/conf/type/__rvm_ruby/man.rst +++ /dev/null @@ -1,57 +0,0 @@ -cdist-type__rvm_ruby(7) -======================= - -NAME ----- -cdist-type__rvm_ruby - Manage ruby installations through rvm - - -DESCRIPTION ------------ -RVM is the Ruby enVironment Manager for the Ruby programming language. - - -REQUIRED PARAMETERS -------------------- -user - The remote user account to use -state - Either "present" or "absent", defaults to "present". - - -BOOLEAN PARAMETERS ------------------- -default - Set the given version as default - - -EXAMPLES --------- - -.. code-block:: sh - - # Install ruby 1.9.3 through rvm for user thelonious - __rvm_ruby ruby-1.9.3-p0 --user thelonious --state present - - # Install ruby 1.9.3 through rvm for user ornette and make it the default - __rvm_ruby ruby-1.9.3-p0 --user ornette --state present --default - - # Remove ruby 1.9.3 for user john - __rvm_ruby ruby-1.9.3-p0 --user john --state absent - - -SEE ALSO --------- -:strong:`cdist-type__rvm`\ (7), :strong:`cdist-type__rvm_gem`\ (7), -:strong:`cdist-type__rvm_gemset`\ (7) - - -AUTHORS -------- -Evax Software - - -COPYING -------- -Copyright \(C) 2012 Evax Software. Free use of this software is granted under -the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__rvm_ruby/manifest b/cdist/conf/type/__rvm_ruby/manifest deleted file mode 100755 index 3f63eb11..00000000 --- a/cdist/conf/type/__rvm_ruby/manifest +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -e -# -# 2012 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -# Required packages for building ruby -for package in bzip2 gcc make; do - __package "$package" --state present -done diff --git a/cdist/conf/type/__rvm_ruby/parameter/boolean b/cdist/conf/type/__rvm_ruby/parameter/boolean deleted file mode 100644 index 4ad96d51..00000000 --- a/cdist/conf/type/__rvm_ruby/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/cdist/conf/type/__rvm_ruby/parameter/default/state b/cdist/conf/type/__rvm_ruby/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__rvm_ruby/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__rvm_ruby/parameter/optional b/cdist/conf/type/__rvm_ruby/parameter/optional deleted file mode 100644 index ff72b5c7..00000000 --- a/cdist/conf/type/__rvm_ruby/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -state diff --git a/cdist/conf/type/__rvm_ruby/parameter/required b/cdist/conf/type/__rvm_ruby/parameter/required deleted file mode 100644 index 4eb8387f..00000000 --- a/cdist/conf/type/__rvm_ruby/parameter/required +++ /dev/null @@ -1 +0,0 @@ -user diff --git a/cdist/conf/type/__sensible_editor/explorer/editor_path b/cdist/conf/type/__sensible_editor/explorer/editor_path deleted file mode 100644 index dcf63c9b..00000000 --- a/cdist/conf/type/__sensible_editor/explorer/editor_path +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh -e -# -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Check if the given editor is present on the target system and determine its -# absolute path. -# - -die() { - echo "$@" >&2 - exit 1 -} - -editor_missing() { die "Editor '$1' is missing on the target system."; } -editor_no_alternative() { - die "Editor '$1' is not in the alternatives list of the target system." \ - "$(test -n "${editors}" && printf '\nPlease choose one of:\n\n%s\n' "${editors}")" -} - -# No need to check for the path if the file is supposed to be removed. -test "$(cat "${__object}/parameter/state")" != 'absent' || exit 0 - - -case $("${__explorer}/os") -in - debian|devuan|ubuntu) - has_alternatives=true - - # NOTE: Old versions do not support `--list`, in this case ignore the errors. - # This will require an absolute path to be provided, though. - editors=$(update-alternatives --list editor 2>/dev/null) - ;; - *) - # NOTE: RedHat has an alternatives system but it doesn't usually track - # editors and it is a pain to extract the list. - has_alternatives=false - ;; -esac - -# Read --editor parameter and check its value since it is "optional" -editor=$(cat "${__object}/parameter/editor" 2>/dev/null) || true -test -n "${editor}" || die 'Please provide an --editor to configure.' - -case $editor -in - /*) - is_abspath=true - ;; - */*) - die 'Relative editor paths are not supported' - ;; - *) - is_abspath=false - ;; -esac - - -if $has_alternatives && test -n "${editors}" -then - IFS=' -' - if ! $is_abspath - then - # First, try to resolve the absolute path using $editors. - while true - do - for e in $editors - do - if test "$(basename "${e}")" = "${editor}" - then - editor="${e}" - break 2 # break out of both loops - fi - done - - # Iterating through alternatives did not yield a result - editor_no_alternative "${editor}" - break - done - fi - - # Check if editor is present - test -f "${editor}" || editor_missing "${editor}" - - for e in $editors - do - if test "${editor}" = "${e}" - then - # Editor is part of the alternatives list -> use it! - echo "${editor}" - exit 0 - fi - done - - editor_no_alternative "${editor}" -else - # NOTE: This branch is mostly for RedHat-based systems which do - # not track editor alternatives. To make this type useful - # on RedHat at all we allow an absoloute path to be provided - # in any case. - - if $is_abspath - then - test -x "${editor}" || editor_missing "${editor}" - - echo "${editor}" - exit 0 - else - die "The target doesn't list any editor alternatives. " \ - "Please specify an absolute path or populate the alternatives list." - fi -fi - -# The script should never reach this statement! -exit 1 diff --git a/cdist/conf/type/__sensible_editor/explorer/group b/cdist/conf/type/__sensible_editor/explorer/group deleted file mode 100644 index 5d288189..00000000 --- a/cdist/conf/type/__sensible_editor/explorer/group +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Determines the primary group of the user. -# - -user=$__object_id - -id -gn "${user}" 2>/dev/null diff --git a/cdist/conf/type/__sensible_editor/explorer/user_home b/cdist/conf/type/__sensible_editor/explorer/user_home deleted file mode 100644 index b88243f7..00000000 --- a/cdist/conf/type/__sensible_editor/explorer/user_home +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -e -# -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Determines the home folder of the target user. -# - -user=$__object_id -home=$(getent passwd "${user}" | cut -d':' -f6) - -if ! test -d "${home}" -then - echo "Cannot find home directory of user ${user}" >&2 - exit 1 -fi - -echo "${home}" diff --git a/cdist/conf/type/__sensible_editor/man.rst b/cdist/conf/type/__sensible_editor/man.rst deleted file mode 100644 index 9b805e06..00000000 --- a/cdist/conf/type/__sensible_editor/man.rst +++ /dev/null @@ -1,78 +0,0 @@ -cdist-type__sensible_editor(7) -============================== - -NAME ----- -cdist-type__sensible_editor - Select the sensible-editor - - -DESCRIPTION ------------ -This cdist type allows you to select the :strong:`sensible-editor` for -a given user. - - -REQUIRED PARAMETERS -------------------- -editor - Name or path of the editor to be selected. - On systems other than Debian derivatives an absolute path is required. - - It is permissible to omit this parameter if --state is absent. - - -OPTIONAL PARAMETERS -------------------- -state - 'present', 'absent', or 'exists'. Defaults to 'present', where: - - present - the sensible-editor is exactly what is specified in --editor. - absent - no sensible-editor configuration is present. - exists - the sensible-editor will be set to what is specified in --editor, - unless there already is a configuration on the target system. - - -EXAMPLES --------- - -.. code-block:: sh - - __sensible_editor root --editor /bin/ed # ed(1) is the standard - __sensible_editor noob --editor nano - - -LIMITATIONS ------------ - -This type depends upon the :strong:`sensible-editor`\ (1) script which -is part of the sensible-utils package. - -Therefore, the following operating systems are supported: - * Debian 8 (jessie) or later - * Devuan - * Ubuntu 8.10 (intrepid) or later - * RHEL/CentOS 7 or later (EPEL repo required) - * Fedora 21 or later - -Note: on old versions of Ubuntu the sensible-* utils are part of the -debianutils package. - -SEE ALSO --------- -:strong:`select-editor`\ (1), :strong:`sensible-editor`\ (1). - - -AUTHOR -------- -Dennis Camera - - -COPYING -------- -Copyright \(C) 2019 Dennis Camera. -You can redistribute it and/or modify it under the terms of the GNU General -Public License as published by the Free Software Foundation, either version 3 of -the License, or (at your option) any later version. diff --git a/cdist/conf/type/__sensible_editor/manifest b/cdist/conf/type/__sensible_editor/manifest deleted file mode 100644 index 1cdb0c2c..00000000 --- a/cdist/conf/type/__sensible_editor/manifest +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -e -# -*- mode: sh; indent-tabs-mode: t -*- -# -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -version_ge() { - awk -F '[^0-9.]' -v target="${1:?}" ' - function max(x, y) { return x > y ? x : y; } - BEGIN { - getline; - nx = split($1, x, "."); - ny = split(target, y, "."); - for (i = 1; i <= max(nx, ny); ++i) { - diff = int(x[i]) - int(y[i]); - if (diff < 0) exit 1; - else if (diff > 0) exit 0; - else continue; - } - }' -} - -not_supported() { - echo "OS ${os} does not support __sensible_editor." >&2 - echo 'If it does, please provide a patch.' >&2 - exit 1 -} - -os=$(cat "${__global}/explorer/os") -os_version=$(cat "${__global}/explorer/os_version") - -state=$(cat "${__object}/parameter/state") -user=$__object_id - -if test "${state}" != 'present' && test "${state}" != 'exists' && test "${state}" != 'absent' -then - echo 'Only "present", "exists", and "absent" are allowed for --state' >&2 - exit 1 -fi - -package_name='sensible-utils' - -case $os -in - debian) - pkg_type='apt' - ;; - devuan) - pkg_type='apt' - ;; - ubuntu) - (echo "${os_version}" | version_ge 10.04) || package_name='debianutils' - pkg_type='apt' - ;; - centos|fedora|redhat|scientific) - pkg_type='yum' - ;; - *) - not_supported - ;; -esac - -if test "${state}" != 'absent' -then - __package "${package_name}" --state present \ - --type "${pkg_type}" - export require="__package/${package_name}" -fi - -editor_path=$(cat "${__object}/explorer/editor_path") -user_home=$(cat "${__object}/explorer/user_home") -group=$(cat "${__object}/explorer/group") - -__file "${user_home}/.selected_editor" --state "${state}" \ - --owner "${user}" --group "${group}" --mode 0644 \ - --source - <. -# - -# extract the keytype and base64 encoded key ignoring any options and comment -type_and_key="$(tr ' ' '\n' < "$__object/parameter/key"| awk '/^(ssh|ecdsa)-[^ ]+/ { printf $1" "; getline; printf $1 }')" -# If type_and_key is empty, which is the case with an invalid key, do not grep $file because it results -# in greping everything in file and all entries from file are removed. -if [ -n "${type_and_key}" ] -then - file="$(cat "$__object/parameter/file")" - - # get any entries that match the type and key - - # NOTE: Do not match from the beginning of the line as there may be options - # preceeding the key. - grep "${type_and_key}\\([ \\n].*\\)*$" "$file" || true -fi diff --git a/cdist/conf/type/__ssh_authorized_key/gencode-remote b/cdist/conf/type/__ssh_authorized_key/gencode-remote deleted file mode 100755 index f37aa565..00000000 --- a/cdist/conf/type/__ssh_authorized_key/gencode-remote +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -set -u - -the_key="$(cat "$__object/parameter/key")" -# validate key -validated_key="$(echo "${the_key}" | tr ' ' '\n' | awk '/^(ssh|ecdsa)-[^ ]+/ { printf $1" "; getline; printf $1 }')" -if [ -z "${validated_key}" ] -then - echo "Key is invalid: \"${the_key}\"" >&2 - exit 1 -fi - -remove_line() { - file="$1" - line="$2" - cat << DONE -tmpfile=\$(mktemp ${file}.cdist.XXXXXXXXXX) -# preserve ownership and permissions of existing file -if [ -f "$file" ]; then - cp -p "$file" "\$tmpfile" -fi -grep -v -F -x '$line' '$file' > \$tmpfile || true -mv -f "\$tmpfile" "$file" -DONE -} - -add_line() { - file="$1" - line="$2" - # escape single quotes - line_sanitised=$(echo "$line" | sed -e "s/'/'\"'\"'/g") - printf '%s' "printf '%s\\n' '$line_sanitised' >> $file" -} - - -file="$(cat "$__object/parameter/file")" -mkdir "$__object/files" - -# Generate the entry as it should be -( - if [ -f "$__object/parameter/option" ]; then - # comma seperated list of options - options="$(tr '\n' ',' < "$__object/parameter/option")" - printf '%s ' "${options%*,}" - fi - if [ -f "$__object/parameter/comment" ]; then - # extract the keytype and base64 encoded key ignoring any options and comment - printf '%s ' "$(echo "${the_key}" | tr ' ' '\n' | awk '/^(ssh|ecdsa)-[^ ]+/ { printf $1" "; getline; printf $1 }')" - # override the comment with the one explicitly given - printf '%s' "$(cat "$__object/parameter/comment")" - else - printf '%s' "${the_key}" - fi - printf '\n' -) > "$__object/files/should" - -# Remove conflicting entries if any -if [ -s "$__object/explorer/entry" ]; then - # Note that the files have to be sorted for comparison with `comm`. - sort "$__object/explorer/entry" > "$__object/files/is" - comm -13 "$__object/files/should" "$__object/files/is" | { - while read -r entry; do - remove_line "$file" "$entry" - done - } -fi - -# Determine the current state -entry="$(cat "$__object/files/should")" -state_should="$(cat "$__object/parameter/state")" -num_existing_entries=$(grep -c -F -x "$entry" "$__object/explorer/entry" || true) -if [ "$num_existing_entries" -eq 1 ]; then - state_is="present" -else - # Posix grep does not define the -m option, so we can not remove a single - # occurence of a string from a file in the `remove_line` function. Instead - # _all_ occurences are removed. - # By using `comm` to detect conflicting entries this could lead to the - # situation that the key we want to add is actually removed. - # To workaround this we must treat 0 or more then 1 existing entries to - # mean current state is 'absent'. By doing this, the key is readded - # again after cleaning up conflicting entries. - state_is="absent" -fi - -# Manage the actual entry as it should be -if [ "$state_should" = "$state_is" ]; then - # Nothing to do - exit 0 -fi - -case "$state_should" in - present) - add_line "$file" "$entry" - echo "added to $file ($entry)" >> "$__messages_out" - ;; - absent) - remove_line "$file" "$entry" - echo "removed from $file ($entry)" >> "$__messages_out" - ;; -esac diff --git a/cdist/conf/type/__ssh_authorized_key/man.rst b/cdist/conf/type/__ssh_authorized_key/man.rst deleted file mode 100644 index 087a3dae..00000000 --- a/cdist/conf/type/__ssh_authorized_key/man.rst +++ /dev/null @@ -1,80 +0,0 @@ -cdist-type__ssh_authorized_key(7) -================================= - -NAME ----- -cdist-type__ssh_authorized_key - Manage a single ssh authorized key entry - - -DESCRIPTION ------------ -Manage a single authorized key entry in an authorized_key file. -This type was created to be used by the __ssh_authorized_keys type. - - -REQUIRED PARAMETERS -------------------- -file - the authorized_keys file to which the given key should be added - -key - a string containing the ssh keytype, base 64 encoded key and optional - trailing comment which shall be added to the given authorized_keys file. - - -OPTIONAL PARAMETERS -------------------- -comment - explicit comment instead of the one which may be trailing the given key - -option - an option to set for this authorized_key entry. - Can be specified multiple times. - See sshd(8) for available options. - -state - if the given keys should be 'present' or 'absent', defaults to 'present'. - - -MESSAGES --------- -added to `file` (`entry`) - The key `entry` (with optional comment) was added to `file`. - -removed from `file` (`entry`) - The key `entry` (with optional comment) was removed from `file`. - - -EXAMPLES --------- - -.. code-block:: sh - - __ssh_authorized_key some-id \ - --file "/home/user/.ssh/autorized_keys" \ - --key "$(cat ~/.ssh/id_rsa.pub)" - - __ssh_authorized_key some-id \ - --file "/home/user/.ssh/autorized_keys" \ - --key "$(cat ~/.ssh/id_rsa.pub)" \ - --option 'command="/path/to/script"' \ - --option 'environment="FOO=bar"' \ - --comment 'one to rule them all' - - -SEE ALSO --------- -:strong:`cdist__ssh_authorized_keys`\ (7), :strong:`sshd`\ (8) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ssh_authorized_key/parameter/default/state b/cdist/conf/type/__ssh_authorized_key/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__ssh_authorized_key/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__ssh_authorized_key/parameter/optional b/cdist/conf/type/__ssh_authorized_key/parameter/optional deleted file mode 100644 index 89e8d966..00000000 --- a/cdist/conf/type/__ssh_authorized_key/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -comment -state diff --git a/cdist/conf/type/__ssh_authorized_key/parameter/optional_multiple b/cdist/conf/type/__ssh_authorized_key/parameter/optional_multiple deleted file mode 100644 index 01925a15..00000000 --- a/cdist/conf/type/__ssh_authorized_key/parameter/optional_multiple +++ /dev/null @@ -1 +0,0 @@ -option diff --git a/cdist/conf/type/__ssh_authorized_keys/explorer/file b/cdist/conf/type/__ssh_authorized_keys/explorer/file deleted file mode 100755 index 017bcb38..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/explorer/file +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -f "$__object/parameter/file" ]; then - cat "$__object/parameter/file" -else - if [ -s "$__object/parameter/owner" ] - then - owner=$(cat "$__object/parameter/owner") - else - owner="$__object_id" - fi - - if command -v getent >/dev/null - then - owner_line=$(getent passwd "$owner") - elif [ -f /etc/passwd ] - then - case $owner - in - [0-9][0-9]*) - owner_line=$(awk -F: "\$3 == \"${owner}\" { print }" /etc/passwd) - ;; - *) - owner_line=$(awk -F: "\$1 == \"${owner}\" { print }" /etc/passwd) - ;; - esac - fi - - if [ "$owner_line" ] - then - home=$(echo "$owner_line" | cut -d':' -f6) - fi - - if [ ! -d "$home" ] - then - # Don't know how to determine user's home directory, fall back to ~ - home="~$owner" - command -v realpath >/dev/null && home=$(realpath "$home") - fi - - [ -d "$home" ] && echo "$home/.ssh/authorized_keys" -fi diff --git a/cdist/conf/type/__ssh_authorized_keys/explorer/group b/cdist/conf/type/__ssh_authorized_keys/explorer/group deleted file mode 100755 index d259050f..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/explorer/group +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -s "$__object/parameter/owner" ] -then - owner=$(cat "$__object/parameter/owner") -else - owner="$__object_id" -fi - -if command -v getent >/dev/null -then - gid=$(getent passwd "$owner" | cut -d':' -f4) - getent group "$gid" || true -else - # Fallback to local file scanning - case $owner - in - [0-9][0-9]*) - gid=$(awk -F: "\$3 == \"${owner}\" { print \$4 }" /etc/passwd) - ;; - *) - gid=$(awk -F: "\$1 == \"${owner}\" { print \$4 }" /etc/passwd) - ;; - esac - - awk -F: "\$3 == \"$gid\" { print }" /etc/group -fi diff --git a/cdist/conf/type/__ssh_authorized_keys/man.rst b/cdist/conf/type/__ssh_authorized_keys/man.rst deleted file mode 100644 index ba310ff9..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/man.rst +++ /dev/null @@ -1,121 +0,0 @@ -cdist-type__ssh_authorized_keys(7) -================================== - -NAME ----- -cdist-type__ssh_authorized_keys - Manage ssh authorized_keys files - - -DESCRIPTION ------------ -Adds or removes ssh keys from a authorized_keys file. - -This type uses the __ssh_dot_ssh type to manage the directory containing -the authorized_keys file. You can disable this feature with the --noparent -boolean parameter. - -The existence, ownership and permissions of the authorized_keys file itself are -also managed. This can be disabled with the --nofile boolean parameter. It is -then left to the user to ensure that the file exists and that ownership and -permissions work with ssh. - - -REQUIRED PARAMETERS -------------------- -key - the ssh key which shall be added to this authorized_keys file. - Must be a string and can be specified multiple times. - - -OPTIONAL PARAMETERS -------------------- -comment - explicit comment instead of the one which may be trailing the given key - -file - an alternative destination file, defaults to ~$owner/.ssh/authorized_keys - -option - an option to set for all created authorized_key entries. - Can be specified multiple times. - See sshd(8) for available options. - -owner - the user owning the authorized_keys file, defaults to object_id. - -state - if the given keys should be 'present' or 'absent', defaults to 'present'. - - -BOOLEAN PARAMETERS ------------------- -noparent - don't create or change ownership and permissions of the directory containing - the authorized_keys file - -nofile - don't manage existence, ownership and permissions of the the authorized_keys - file - - -EXAMPLES --------- - -.. code-block:: sh - - # add your ssh key to remote root's authorized_keys file - __ssh_authorized_keys root \ - --key "$(cat ~/.ssh/id_rsa.pub)" - - # allow key to login as user-name - __ssh_authorized_keys user-name \ - --key "ssh-rsa AXYZAAB3NzaC1yc2..." - - # allow key to login as user-name with options and expicit comment - __ssh_authorized_keys user-name \ - --key "ssh-rsa AXYZAAB3NzaC1yc2..." \ - --option no-agent-forwarding \ - --option 'from="*.example.com"' \ - --comment 'backup server' - - # same as above, but with explicit owner and two keys - # note that the options are set for all given keys - __ssh_authorized_keys some-fancy-id \ - --owner user-name \ - --key "ssh-rsa AXYZAAB3NzaC1yc2..." \ - --key "ssh-rsa AZXYAAB3NzaC1yc2..." \ - --option no-agent-forwarding \ - --option 'from="*.example.com"' \ - --comment 'backup server' - - # authorized_keys file in non standard location - __ssh_authorized_keys some-fancy-id \ - --file /etc/ssh/keys/user-name/authorized_keys \ - --owner user-name \ - --key "ssh-rsa AXYZAAB3NzaC1yc2..." - - # same as above, but directory and authorized_keys file is created elswhere - __ssh_authorized_keys some-fancy-id \ - --file /etc/ssh/keys/user-name/authorized_keys \ - --owner user-name \ - --noparent \ - --nofile \ - --key "ssh-rsa AXYZAAB3NzaC1yc2..." - - -SEE ALSO --------- -:strong:`sshd`\ (8) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012-2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ssh_authorized_keys/manifest b/cdist/conf/type/__ssh_authorized_keys/manifest deleted file mode 100755 index b9f0582e..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/manifest +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -owner="$(cat "$__object/parameter/owner" 2>/dev/null || echo "$__object_id")" -state="$(cat "$__object/parameter/state" 2>/dev/null)" -file="$(cat "$__object/explorer/file")" - -if [ ! -f "$__object/parameter/nofile" ] && [ -z "$file" ] -then - echo "Cannot determine path of authorized_keys file" >&2 - exit 1 -fi - -if [ ! -f "$__object/parameter/noparent" ] || [ ! -f "$__object/parameter/nofile" ]; then - group="$(cut -d':' -f 1 "$__object/explorer/group")" - if [ -z "$group" ]; then - echo "Failed to get owners group from explorer." >&2 - exit 1 - fi - - if [ ! -f "$__object/parameter/noparent" ]; then - __ssh_dot_ssh "$owner" - export require="__ssh_dot_ssh/$owner" - fi - if [ ! -f "$__object/parameter/nofile" ]; then - # Ensure that authorized_keys file exists and has the right permissions. - __file "$file" \ - --owner "$owner" \ - --group "$group" \ - --mode 0600 \ - --state exists - export require="__file/$file" - fi -fi - -_cksum() { - echo "$1" | cksum | cut -d' ' -f 1 -} - -while read -r key; do - type_and_key="$(echo "$key" | tr ' ' '\n' | awk '/^(ssh|ecdsa)-[^ ]+/ { printf $1" "; getline; printf $1 }')" - object_id="$(_cksum "$file")-$(_cksum "$type_and_key")" - set -- "$object_id" - set -- "$@" --file "$file" - set -- "$@" --key "$key" - set -- "$@" --state "$state" - if [ -f "$__object/parameter/option" ]; then - # shellcheck disable=SC2046 - set -- "$@" $(printf -- '--option %s ' $(cat "$__object/parameter/option")) - fi - if [ -f "$__object/parameter/comment" ]; then - set -- "$@" --comment "$(cat "$__object/parameter/comment")" - fi - # Ensure __ssh_authorized_key does not read stdin - __ssh_authorized_key "$@" < /dev/null -done < "$__object/parameter/key" diff --git a/cdist/conf/type/__ssh_authorized_keys/parameter/boolean b/cdist/conf/type/__ssh_authorized_keys/parameter/boolean deleted file mode 100644 index 4bb126fe..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -noparent -nofile diff --git a/cdist/conf/type/__ssh_authorized_keys/parameter/default/state b/cdist/conf/type/__ssh_authorized_keys/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__ssh_authorized_keys/parameter/optional b/cdist/conf/type/__ssh_authorized_keys/parameter/optional deleted file mode 100644 index 21f9bc29..00000000 --- a/cdist/conf/type/__ssh_authorized_keys/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -comment -file -option -owner -state diff --git a/cdist/conf/type/__ssh_dot_ssh/explorer/group b/cdist/conf/type/__ssh_dot_ssh/explorer/group deleted file mode 100755 index faf44cb8..00000000 --- a/cdist/conf/type/__ssh_dot_ssh/explorer/group +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -gid=$("$__type_explorer/passwd" | cut -d':' -f4) - -if command -v getent >/dev/null -then - getent group "$gid" || true -else - awk -F: "\$3 == \"$gid\" { print }" /etc/group -fi diff --git a/cdist/conf/type/__ssh_dot_ssh/explorer/passwd b/cdist/conf/type/__ssh_dot_ssh/explorer/passwd deleted file mode 100755 index 42686b20..00000000 --- a/cdist/conf/type/__ssh_dot_ssh/explorer/passwd +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# 2019 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -owner="$__object_id" - -if command -v getent >/dev/null -then - getent passwd "$owner" || true -else - case $owner in - [0-9][0-9]*) - awk -F: "\$3 == \"$owner\" { print }" /etc/passwd - ;; - *) - grep "^$owner:" /etc/passwd || true - ;; - esac -fi diff --git a/cdist/conf/type/__ssh_dot_ssh/man.rst b/cdist/conf/type/__ssh_dot_ssh/man.rst deleted file mode 100644 index 7d35affa..00000000 --- a/cdist/conf/type/__ssh_dot_ssh/man.rst +++ /dev/null @@ -1,49 +0,0 @@ -cdist-type__ssh_dot_ssh(7) -========================== - -NAME ----- -cdist-type__ssh_dot_ssh - Manage .ssh directory - - -DESCRIPTION ------------ -Adds or removes .ssh directory to a user home. - -This type is being used by __ssh_authorized_keys. - - -OPTIONAL PARAMETERS -------------------- -state - if the directory should be 'present' or 'absent', defaults to 'present'. - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure root has ~/.ssh with the right permissions - __ssh_dot_ssh root - - # Nico does not need ~/.ssh anymore - __ssh_dot_ssh nico --state absent - - -SEE ALSO --------- -:strong:`cdist-type__ssh_authorized_keys`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2014 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ssh_dot_ssh/manifest b/cdist/conf/type/__ssh_dot_ssh/manifest deleted file mode 100755 index bc3a3952..00000000 --- a/cdist/conf/type/__ssh_dot_ssh/manifest +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -e -# -# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# Hacked in Kalamata, Greece -# - -owner="$__object_id" -state="$(cat "$__object/parameter/state")" - -group="$(cut -d':' -f 1 "$__object/explorer/group")" -if [ -z "$group" ]; then - echo "Failed to get owners group from explorer." >&2 - exit 1 -fi - -home="$(cut -d':' -f 6 "$__object/explorer/passwd")" -if [ -z "$home" ]; then - echo "Failed to get home directory from explorer." >&2 - exit 1 -fi -ssh_directory="${home}/.ssh" - -# Ensure that the directory in which the authorized_keys shall be exists and -# has the right permissions. -__directory "$ssh_directory" \ - --state "$state" \ - --owner "$owner" --group "$group" --mode 0700 diff --git a/cdist/conf/type/__ssh_dot_ssh/parameter/default/state b/cdist/conf/type/__ssh_dot_ssh/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__ssh_dot_ssh/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__ssh_dot_ssh/parameter/optional b/cdist/conf/type/__ssh_dot_ssh/parameter/optional deleted file mode 100644 index ff72b5c7..00000000 --- a/cdist/conf/type/__ssh_dot_ssh/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -state diff --git a/cdist/conf/type/__staged_file/gencode-local b/cdist/conf/type/__staged_file/gencode-local deleted file mode 100755 index ba9e8798..00000000 --- a/cdist/conf/type/__staged_file/gencode-local +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2015 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -#set -x - -destination="$__object_id" -source="$(cat "$__object/parameter/source")" -stage_dir="$(cat "$__object/parameter/stage-dir")" -state="$(cat "$__object/parameter/state")" -fetch_command="$(cat "$__object/parameter/fetch-command")" -stage_file="${stage_dir}/${destination}" -stage_file_dir="${stage_file%/*}" -source_file_name="${source##*/}" - -if [ "$state" = "absent" ]; then - # nothing to do - exit 0 -fi - -#printf 'set -x\n' - -if [ ! -d "$stage_dir" ]; then - printf 'mkdir -p "%s"\n' "$stage_dir" - printf 'chmod 700 "%s"\n' "$stage_dir" -fi - -if [ ! -d "$stage_file_dir" ]; then - printf 'mkdir -p "%s"\n' "$stage_file_dir" -fi - - -get_file() { - if [ -f "$__object/parameter/prepare-command" ]; then - fetch_and_prepare_file - else - fetch_file - fi -} - -fetch_file() { - # shellcheck disable=SC2059 - printf "$fetch_command" "$source" - printf ' > "%s"\n' "$stage_file" -} - -fetch_and_prepare_file() { - # shellcheck disable=SC2016 - printf 'tmpdir="$(mktemp -d -p "/tmp" "%s")"\n' "${__type##*/}.XXXXXXXXXX" - # shellcheck disable=SC2016 - printf 'cd "$tmpdir"\n' - # shellcheck disable=SC2059 - printf "$fetch_command > \"%s\"\\n" "$source" "$source_file_name" - prepare_command="$(cat "$__object/parameter/prepare-command")" - # shellcheck disable=SC2059 - printf "$prepare_command > \"%s\"\\n" "$source_file_name" "$stage_file" - printf 'cd - >/dev/null\n' - # shellcheck disable=SC2016 - printf 'rm -rf "$tmpdir"\n' -} - -cat << DONE -verify_cksum() { - cksum_is="\$(cksum "$stage_file" | cut -d' ' -f1,2)" - cksum_should="$(cut -d' ' -f1,2 "$__object/parameter/cksum")" - if [ "\$cksum_is" = "\$cksum_should" ]; then - return 0 - else - return 1 - fi -} -DONE - -if [ ! -f "$stage_file" ]; then - get_file -else - printf 'verify_cksum || {\n' - get_file - printf '}\n' -fi - -cat << DONE -verify_cksum || { - echo "Failed to verify checksum for $__object_name" >&2 - exit 1 -} -DONE diff --git a/cdist/conf/type/__staged_file/man.rst b/cdist/conf/type/__staged_file/man.rst deleted file mode 100644 index 9a6ba732..00000000 --- a/cdist/conf/type/__staged_file/man.rst +++ /dev/null @@ -1,115 +0,0 @@ -cdist-type__staged_file(7) -========================== - -NAME ----- -cdist-type__staged_file - Manage staged files - - -DESCRIPTION ------------ -Manages a staged file that is downloaded on the server (the machine running -cdist) and then deployed to the target host using the __file type. - - -REQUIRED PARAMETERS -------------------- -source - the URL from which to retrieve the source file. - e.g. - - * https://dl.bintray.com/mitchellh/consul/0.4.1_linux_amd64.zip - * file:///path/to/local/file - -cksum - the output of running the command: `cksum $source-file` - e.g.:: - - $ echo foobar > /tmp/foobar - $ cksum /tmp/foobar - 857691210 7 /tmp/foobar - - If either checksum or file size has changed the file will be - (re)fetched from the --source. The file name can be omitted and is - ignored if given. - - -OPTIONAL PARAMETERS -------------------- -fetch-command - the command used to fetch the staged file using printf formatting. - Where a single %s will be replaced with the value of the given --source - parameter. The --fetch-command is expected to output the fetched file to - stdout. - Defaults to 'curl -s -L "%s"'. - -group - see cdist-type__file - -owner - see cdist-type__file - -mode - see cdist-type__file - -prepare-command - the optional command used to prepare or preprocess the staged file for later - use by the file type. - If given, it must be a string in printf formatting where a single %s will - be replaced with the last segment (filename) of the value of the given - --source parameter. - It is executed in the same directory into which the fetched file has been - saved. The --prepare-command is expected to output the final file to stdout. - - So for example given a --source of https://example.com/my-zip.zip, and a - --prepare-command of 'unzip -p "%s"', the code `unzip -p "my-zip.zip"` will - be executed in the folder containing the downloaded file my-zip.zip. - A more complex example might be --prepare-command 'tar -xz "%s"; cat path/from/archive' -stage-dir - the directory in which to store downloaded and prepared files. - Defaults to '/var/tmp/cdist/__staged_file' - -state - see cdist-type__file - - -EXAMPLES --------- - -.. code-block:: sh - - __staged_file /usr/local/bin/consul \ - --source file:///path/to/local/copy/consul \ - --cksum '428915666 15738724' \ - --state present \ - --group root \ - --owner root \ - --mode 755 - - __staged_file /usr/local/bin/consul \ - --source https://dl.bintray.com/mitchellh/consul/0.4.1_linux_amd64.zip \ - --cksum '428915666 15738724' \ - --fetch-command 'curl -s -L "%s"' \ - --prepare-command 'unzip -p "%s"' \ - --state present \ - --group root \ - --owner root \ - --mode 755 - - -SEE ALSO --------- -:strong:`cdist-type__file`\ (7) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2015 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__staged_file/manifest b/cdist/conf/type/__staged_file/manifest deleted file mode 100755 index c8e1fbbb..00000000 --- a/cdist/conf/type/__staged_file/manifest +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -e -# -# 2015 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -destination="$__object_id" -stage_dir="$(cat "$__object/parameter/stage-dir")" -stage_file="${stage_dir}/${destination}" - -set -- "/${destination}" -for param in owner group mode state; do - if [ -f "$__object/parameter/$param" ]; then - set -- "$@" "--${param}" "$(cat "$__object/parameter/$param")" - fi -done -set -- "$@" --source "$stage_file" - -require="$__object_name" \ - __file "$@" diff --git a/cdist/conf/type/__staged_file/parameter/default/fetch-command b/cdist/conf/type/__staged_file/parameter/default/fetch-command deleted file mode 100644 index b4dc1211..00000000 --- a/cdist/conf/type/__staged_file/parameter/default/fetch-command +++ /dev/null @@ -1 +0,0 @@ -curl -s -L "%s" diff --git a/cdist/conf/type/__staged_file/parameter/default/stage-dir b/cdist/conf/type/__staged_file/parameter/default/stage-dir deleted file mode 100644 index 9420b510..00000000 --- a/cdist/conf/type/__staged_file/parameter/default/stage-dir +++ /dev/null @@ -1 +0,0 @@ -/var/tmp/cdist/__staged_file diff --git a/cdist/conf/type/__staged_file/parameter/default/state b/cdist/conf/type/__staged_file/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__staged_file/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__staged_file/parameter/optional b/cdist/conf/type/__staged_file/parameter/optional deleted file mode 100644 index 18f4e87a..00000000 --- a/cdist/conf/type/__staged_file/parameter/optional +++ /dev/null @@ -1,7 +0,0 @@ -fetch-command -group -owner -mode -prepare-command -stage-dir -state diff --git a/cdist/conf/type/__staged_file/parameter/required b/cdist/conf/type/__staged_file/parameter/required deleted file mode 100644 index bfb1d5bf..00000000 --- a/cdist/conf/type/__staged_file/parameter/required +++ /dev/null @@ -1,2 +0,0 @@ -cksum -source diff --git a/cdist/conf/type/__start_on_boot/explorer/state b/cdist/conf/type/__start_on_boot/explorer/state deleted file mode 100644 index b7a6cf0f..00000000 --- a/cdist/conf/type/__start_on_boot/explorer/state +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/sh -# -# 2012-2019 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Check whether the given name will be started on boot or not -# - -os=$("$__explorer/os") -runlevel=$("$__explorer/runlevel") -init=$("$__explorer/init") -target_runlevel="$(cat "$__object/parameter/target_runlevel")" -name="$__object_id" - -if [ "$init" = 'systemd' ]; then - # this handles ALL linux distros with systemd - # e.g. archlinux, gentoo, new RHEL and SLES versions - state=$(systemctl is-enabled "$name" >/dev/null 2>&1 \ - && echo present \ - || echo absent) - -else - case "$os" in - debian|openwrt|devuan) - state="absent" - for file in "/etc/rc$runlevel.d/S"??"$name" - do - if [ -f "$file" ] - then - state="present" - break - fi - done - ;; - ubuntu) - state="absent" - for file in "/etc/rc$runlevel.d/S"??"$name" - do - if [ -f "$file" ] - then - state="present" - break - fi - done - - [ -f "/etc/init/${name}.conf" ] && state="present" - ;; - - amazon|scientific|centos|fedora|owl|redhat) - state=$(chkconfig --level "$runlevel" "$name" || echo absent) - [ "$state" ] || state="present" - ;; - suse) - # check for target if set, usable for boot. services in runlevel B - if [ "$target_runlevel" != 'default' ]; then - runlevel="$target_runlevel" - fi - # suses chkconfig has the same name, but works different ... - state=$(chkconfig --check "$name" "$runlevel" || echo absent) - [ "$state" ] || state="present" - ;; - gentoo|alpine) - state="absent" - for d in /etc/runlevels/*; do - if [ -f "/etc/runlevels/${d}/${name}" ];then - state="present" - break - fi - done - ;; - freebsd) - state="absent" - service -e | grep "/$name$" && state="present" - ;; - openbsd) - state='absent' - # OpenBSD 5.7 and higher - rcctl ls on | grep "^${name}$" && state='present' - ;; - - *) - echo "Unsupported os: $os" >&2 - exit 1 - ;; - esac -fi - -echo $state diff --git a/cdist/conf/type/__start_on_boot/gencode-remote b/cdist/conf/type/__start_on_boot/gencode-remote deleted file mode 100755 index c900933f..00000000 --- a/cdist/conf/type/__start_on_boot/gencode-remote +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh -e -# -# 2012-2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2016 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -state_should="$(cat "$__object/parameter/state")" -state_is=$(cat "$__object/explorer/state") -init=$(cat "$__global/explorer/init") -target_runlevel="$(cat "$__object/parameter/target_runlevel")" - -# Short circuit if nothing is to be done -[ "$state_should" = "$state_is" ] && exit 0 - -os=$(cat "$__global/explorer/os") -os_version=$(cat "$__global/explorer/os_version") -name="$__object_id" - -case "$state_should" in - present) - if [ "$init" = 'systemd' ]; then - # this handles ALL linux distros with systemd - # e.g. archlinux, gentoo in some cases, new RHEL and SLES versions - echo "systemctl -q enable '$name'" - else - case "$os" in - debian) - case "$os_version" in - [1-7]*) - echo "update-rc.d '$name' defaults >/dev/null" - ;; - 8*) - echo "systemctl enable '$name'" - ;; - *) - echo "Unsupported version $os_version of $os" >&2 - exit 1 - ;; - esac - ;; - devuan) - echo "update-rc.d '$name' defaults >/dev/null" - ;; - - alpine|gentoo) - echo "rc-update add '$name' '$target_runlevel'" - ;; - - amazon|scientific|centos|fedora|owl|redhat|suse) - echo "chkconfig '$name' on" - ;; - - openwrt) - # 'enable' can be successful and still return a non-zero exit - # code, deal with it by checking for success ourselves in that - # case (the || ... part). - echo "'/etc/init.d/$name' enable || [ -f /etc/rc.d/S??'$name' ]" - ;; - - ubuntu) - echo "update-rc.d '$name' defaults >/dev/null" - ;; - - freebsd) - : # handled in manifest - ;; - - openbsd) - # OpenBSD 5.7 and higher - echo "rcctl enable '$name'" - ;; - - *) - echo "Unsupported os: $os" >&2 - exit 1 - ;; - esac - fi - ;; - - absent) - if [ "$init" = 'systemd' ]; then - # this handles ALL linux distros with systemd - # e.g. archlinux, gentoo in some cases, new RHEL and SLES versions - echo "systemctl -q disable '$name'" - - else - case "$os" in - debian|ubuntu|devuan) - echo "update-rc.d -f '$name' remove" - ;; - - alpine|gentoo) - echo "rc-update del '$name' '$target_runlevel'" - ;; - - centos|fedora|owl|redhat|suse) - echo "chkconfig '$name' off" - ;; - - openwrt) - echo "'/etc/init.d/$name' disable" - ;; - - openbsd) - # OpenBSD 5.7 and higher - echo "rcctl disable '$name'" - ;; - - *) - echo "Unsupported os: $os" >&2 - exit 1 - ;; - esac - fi - ;; - - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__start_on_boot/man.rst b/cdist/conf/type/__start_on_boot/man.rst deleted file mode 100644 index f8afe94b..00000000 --- a/cdist/conf/type/__start_on_boot/man.rst +++ /dev/null @@ -1,61 +0,0 @@ -cdist-type__start_on_boot(7) -============================ - -NAME ----- -cdist-type__start_on_boot - Manage stuff to be started at boot - - -DESCRIPTION ------------ -This cdist type allows you to enable or disable stuff to be started -at boot of your operating system. - -Warning: This type has not been tested intensively and is not fully -supported. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent", defaults to "present" -target_runlevel - Runlevel which should be modified, defaults to "default" (only used on gentoo systems). - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure snmpd is started at boot - __start_on_boot snmpd - - # Same, but more explicit - __start_on_boot snmpd --state present - - # Ensure legacy configuration management will not be started - __start_on_boot puppet --state absent - - -SEE ALSO --------- -:strong:`cdist-type__process`\ (7) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2012-2019 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__start_on_boot/manifest b/cdist/conf/type/__start_on_boot/manifest deleted file mode 100644 index c1c983ec..00000000 --- a/cdist/conf/type/__start_on_boot/manifest +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -e - -state_should="$(cat "$__object/parameter/state")" -state_is=$(cat "$__object/explorer/state") -name="$__object_id" - -# Short circuit if nothing is to be done -[ "$state_should" = "$state_is" ] && exit 0 - -os=$(cat "$__global/explorer/os") - -case "$os" in - freebsd) - if [ "$state_should" = 'present' ]; then - value='YES' - else - value='NO' - fi - __key_value "rcconf-$name-enable" \ - --file /etc/rc.conf \ - --key "${name}_enable" \ - --value "\"$value\"" \ - --delimiter '=' - ;; - *) - : # handled in gencode-remote - ;; -esac diff --git a/cdist/conf/type/__start_on_boot/parameter/default/state b/cdist/conf/type/__start_on_boot/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__start_on_boot/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__start_on_boot/parameter/default/target_runlevel b/cdist/conf/type/__start_on_boot/parameter/default/target_runlevel deleted file mode 100644 index 4ad96d51..00000000 --- a/cdist/conf/type/__start_on_boot/parameter/default/target_runlevel +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/cdist/conf/type/__start_on_boot/parameter/optional b/cdist/conf/type/__start_on_boot/parameter/optional deleted file mode 100644 index 91685caf..00000000 --- a/cdist/conf/type/__start_on_boot/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -target_runlevel diff --git a/cdist/conf/type/__sysctl/explorer/conf-path b/cdist/conf/type/__sysctl/explorer/conf-path deleted file mode 100755 index ba35c4c6..00000000 --- a/cdist/conf/type/__sysctl/explorer/conf-path +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# -# 2018 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -if [ -d "/etc/sysctl.d" ]; then - echo "/etc/sysctl.d/99-Z-sysctl-cdist.conf"; -else - echo "/etc/sysctl.conf"; -fi diff --git a/cdist/conf/type/__sysctl/explorer/value b/cdist/conf/type/__sysctl/explorer/value deleted file mode 100755 index fc85b3d8..00000000 --- a/cdist/conf/type/__sysctl/explorer/value +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# get the current runtime value -sysctl -n "$__object_id" || true diff --git a/cdist/conf/type/__sysctl/man.rst b/cdist/conf/type/__sysctl/man.rst deleted file mode 100644 index 6873003e..00000000 --- a/cdist/conf/type/__sysctl/man.rst +++ /dev/null @@ -1,39 +0,0 @@ -cdist-type__sysctl(7) -===================== - -NAME ----- -cdist-type__sysctl - manage sysctl settings - - -DESCRIPTION ------------ -Manages permanent as well as runtime sysctl settings. -Permament settings are set by managing entries in /etc/sysctl.conf. -Runtime settings are set by directly calling the sysctl executable. - - -REQUIRED PARAMETERS -------------------- -value - The value to set for the given key (object_id) - - -EXAMPLES --------- - -.. code-block:: sh - - __sysctl net.ipv4.ip_forward --value 1 - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2014 Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 or -later (GPLv3+). diff --git a/cdist/conf/type/__sysctl/manifest b/cdist/conf/type/__sysctl/manifest deleted file mode 100755 index 71dea7f7..00000000 --- a/cdist/conf/type/__sysctl/manifest +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# 2018 Takashi Yoshi (takashi at yoshi.email) -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - - -os=$(cat "$__global/explorer/os") - -case "$os" in - # Linux - alpine|redhat|centos|ubuntu|debian|devuan|archlinux|coreos) - : - ;; - # BSD - freebsd|macosx|netbsd|openbsd) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -conf_path=$(cat "$__object/explorer/conf-path") - -__key_value "$__object_name" \ - --key "$__object_id" \ - --file "${conf_path}" \ - --value "$(cat "$__object/parameter/value")" \ - --delimiter '=' diff --git a/cdist/conf/type/__sysctl/parameter/required b/cdist/conf/type/__sysctl/parameter/required deleted file mode 100644 index 6d4e1507..00000000 --- a/cdist/conf/type/__sysctl/parameter/required +++ /dev/null @@ -1 +0,0 @@ -value diff --git a/cdist/conf/type/__systemd_unit/explorer/enablement-state b/cdist/conf/type/__systemd_unit/explorer/enablement-state deleted file mode 100644 index 5a5a4462..00000000 --- a/cdist/conf/type/__systemd_unit/explorer/enablement-state +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# -# 2017 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -systemctl is-enabled "${__object_id}" 2>/dev/null || true diff --git a/cdist/conf/type/__systemd_unit/explorer/systemctl-present b/cdist/conf/type/__systemd_unit/explorer/systemctl-present deleted file mode 100644 index 7218affc..00000000 --- a/cdist/conf/type/__systemd_unit/explorer/systemctl-present +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# -# 2017 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -command -v systemctl > /dev/null 2>&1 && echo 0 || echo 1 diff --git a/cdist/conf/type/__systemd_unit/explorer/unit-status b/cdist/conf/type/__systemd_unit/explorer/unit-status deleted file mode 100644 index b68e5169..00000000 --- a/cdist/conf/type/__systemd_unit/explorer/unit-status +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# -# 2017 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -systemctl is-active "${__object_id}" || true diff --git a/cdist/conf/type/__systemd_unit/gencode-remote b/cdist/conf/type/__systemd_unit/gencode-remote deleted file mode 100644 index 967a6c87..00000000 --- a/cdist/conf/type/__systemd_unit/gencode-remote +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -e -# -# 2017 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -name="${__object_id}" -state=$(cat "${__object}/parameter/state") -current_enablement_state=$(cat "${__object}/explorer/enablement-state") - -if [ "${state}" = "absent" ]; then - if [ -n "${current_enablement_state}" ]; then - echo "systemctl --now disable ${name}" - echo "rm -f /etc/systemd/system/${name}" - echo "systemctl daemon-reload" - fi - - exit 0 -fi - -unit_status=$(cat "${__object}/explorer/unit-status") -desired_enablement_state=$(cat "${__object}/parameter/enablement-state") - -if [ "${current_enablement_state}" = "masked" ] && \ - [ "${desired_enablement_state}" != "masked" ]; then - echo "systemctl unmask ${name}" -fi - -if [ -f "${__object}/parameter/restart" ]; then - if [ "${desired_enablement_state}" = "masked" ]; then - if [ "${unit_status}" = "active" ]; then - echo "systemctl stop ${name}" - fi - elif grep -q "^__file/etc/systemd/system/${name}" "${__messages_in}" || \ - [ "${unit_status}" != "active" ]; then - echo "systemctl restart ${name} || true" - fi -fi - -if [ "${current_enablement_state}" = "${desired_enablement_state}" ]; then - exit 0 -fi - -case "${desired_enablement_state}" in - "") - # Do nothing - : - ;; - enabled) - echo "systemctl enable ${name}" - ;; - disabled) - echo "systemctl disable ${name}" - ;; - masked) - echo "systemctl mask ${name}" - ;; - *) - echo "Unsupported unit status: ${desired_enablement_state}" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__systemd_unit/man.rst b/cdist/conf/type/__systemd_unit/man.rst deleted file mode 100644 index 25a4e501..00000000 --- a/cdist/conf/type/__systemd_unit/man.rst +++ /dev/null @@ -1,89 +0,0 @@ -cdist-type__systemd_unit(7) -=========================== - -NAME ----- - -cdist-type__systemd_unit - Install a systemd unit - -DESCRIPTION ------------ - -This type manages systemd units in ``/etc/systemd/system/``. It can install, -enable and start a systemd unit. This is particularly useful on systems which -take advantage of systemd heavily (e.g., CoreOS). For more information about -systemd units, see SYSTEMD.UNIT(5). - -REQUIRED PARAMETERS -------------------- - -None. - -OPTIONAL PARAMETERS -------------------- - -enablement-state - 'enabled', 'disabled' or 'masked', where: - - enabled - enables the unit - disabled - disables the unit - masked - masks the unit - -source - Path to the config file. If source is '-' (dash), take what was written to - stdin as the config file content. - -state - 'present' or 'absent', defaults to 'present' where: - - present - the unit (or its mask) is installed - absent - The unit is stopped, disabled and uninstalled. If the unit was masked, - the mask is removed. - -BOOLEAN PARAMETERS ------------------- - -restart - Start the unit if it was inactive. Restart the unit if the unit file - changed. Stop the unit if new ``enablement-state`` is ``masked``. - -MESSAGES --------- - -None. - -EXAMPLES --------- - -.. code-block:: sh - - # Installs, enables and starts foobar.service - __systemd_unit foobar.service \ - --source "${__manifest}/files/foobar.service" \ - --enablement-state enabled \ - --restart - - # Disables the unit - __systemd_unit foobar.service --enablement-state disabled - - # Stops, disables and uninstalls foobar.service - __systemd_unit foobar.service --state absent - - -AUTHORS -------- - -Ľubomír Kučera - -COPYING -------- - -Copyright \(C) 2017 Ľubomír Kučera. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__systemd_unit/manifest b/cdist/conf/type/__systemd_unit/manifest deleted file mode 100644 index 688a00b1..00000000 --- a/cdist/conf/type/__systemd_unit/manifest +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -e -# -# 2017 Ľubomír Kučera -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -systemctl_present=$(cat "${__object}/explorer/systemctl-present") - -if [ "${systemctl_present}" -ne 0 ]; then - echo "systemctl does not seem to be present on this system" >&2 - - exit 1 -fi - -name="${__object_id}" -source=$(cat "${__object}/parameter/source") -state=$(cat "${__object}/parameter/state") -enablement_state=$(cat "${__object}/parameter/enablement-state") - -# The unit must be disabled before removing its unit file. The unit file is -# therefore removed by gencode-remote of this type, not here. -if [ -z "${source}" ] || [ "${state}" = "absent" ]; then - exit 0 -fi - -# stdin is not propagated automatically to sub-objects -if [ "${source}" = "-" ]; then - source="${__object}/stdin" -fi - -unitfile_state="${state}" -if [ "${enablement_state}" = "masked" ]; then - # Masking creates a symlink from /etc/systemd/system/ to /dev/null. - # This process fails with "Failed to execute operation: Invalid argument" - # if file /etc/systemd/system/ already exists. We must therefore - # remove it. - unitfile_state="absent" -fi - -__config_file "/etc/systemd/system/${name}" \ - --mode 644 \ - --onchange "systemctl daemon-reload" \ - --source "${source}" \ - --state "${unitfile_state}" diff --git a/cdist/conf/type/__systemd_unit/parameter/boolean b/cdist/conf/type/__systemd_unit/parameter/boolean deleted file mode 100644 index eea5a271..00000000 --- a/cdist/conf/type/__systemd_unit/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -restart diff --git a/cdist/conf/type/__systemd_unit/parameter/default/enablement-state b/cdist/conf/type/__systemd_unit/parameter/default/enablement-state deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__systemd_unit/parameter/default/source b/cdist/conf/type/__systemd_unit/parameter/default/source deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__systemd_unit/parameter/default/state b/cdist/conf/type/__systemd_unit/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__systemd_unit/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__systemd_unit/parameter/optional b/cdist/conf/type/__systemd_unit/parameter/optional deleted file mode 100644 index e7cc7acf..00000000 --- a/cdist/conf/type/__systemd_unit/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -enablement-state -source -state diff --git a/cdist/conf/type/__timezone/explorer/timezone_is b/cdist/conf/type/__timezone/explorer/timezone_is deleted file mode 100755 index a1aa813f..00000000 --- a/cdist/conf/type/__timezone/explorer/timezone_is +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -e -# -# 2017 Ander Punnar (cdist at kvlt.ee) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -[ -f /etc/timezone ] && cat /etc/timezone - -exit 0 diff --git a/cdist/conf/type/__timezone/gencode-remote b/cdist/conf/type/__timezone/gencode-remote deleted file mode 100755 index 5299f548..00000000 --- a/cdist/conf/type/__timezone/gencode-remote +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This type allows to configure the desired localtime timezone. - -timezone_is=$(cat "$__object/explorer/timezone_is") -timezone_should="$__object_id" -os=$(cat "$__global/explorer/os") - -if [ "$timezone_is" = "$timezone_should" ]; then - exit 0 -fi - -case "$os" in - ubuntu|debian|devuan|coreos|alpine) - echo "echo \"$timezone_should\" > /etc/timezone" - ;; -esac diff --git a/cdist/conf/type/__timezone/manifest b/cdist/conf/type/__timezone/manifest deleted file mode 100755 index 3d28ccba..00000000 --- a/cdist/conf/type/__timezone/manifest +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -e -# -# 2011 Ramon Salvadó (rsalvado at gnuine dot com) -# 2012-2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2012-2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This type allows to configure the desired localtime timezone. - -timezone="$__object_id" -os=$(cat "$__global/explorer/os") - -case "$os" in - archlinux|debian|ubuntu|devuan|alpine) - __package tzdata - export require="__package/tzdata" - ;; - suse) - __package timezone - export require="__package/timezone" - ;; - freebsd|netbsd|openbsd) - # whitelist - : - ;; - coreos) - # whitelist - : - ;; - scientific|centos) - __package tzdata --state present - export require="__package/tzdata" - __file /etc/sysconfig/clock \ - --owner root --group root --mode 644 \ - --state exists - require="__file/etc/sysconfig/clock" \ - __key_value ZONE \ - --file /etc/sysconfig/clock \ - --delimiter '=' \ - --value "\"$timezone\"" - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -__link /etc/localtime \ - --source "/usr/share/zoneinfo/${timezone}" \ - --type symbolic diff --git a/cdist/conf/type/__ufw/gencode-remote b/cdist/conf/type/__ufw/gencode-remote deleted file mode 100644 index fc62b591..00000000 --- a/cdist/conf/type/__ufw/gencode-remote +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -e -# -# 2019 Mark Polyakov (mark--@--markasoftware.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state="$(cat "$__object/parameter/state")" - -case "$state" in - enabled) - echo 'ufw --force enable' - ;; - - present) - echo 'ufw --force disable' - ;; - # absent will be uninstalled in manifest -esac - -if [ "$state" != absent ]; then - if [ -f "$__object/parameter/logging" ]; then - logging="$(cat "$__object/parameter/logging")" - case "$logging" in - off|low|medium|high|full) - echo "ufw --force logging $logging" - ;; - *) - echo 'Logging parameter must be off, low, medium, high, or full!' >&2 - exit 1 - ;; - esac - fi - - for direction in incoming outgoing routed; do - if [ -f "$__object/parameter/default_$direction" ]; then - treatment="$(cat "$__object/parameter/default_$direction")" - case "$treatment" in - allow|deny|reject) - echo "ufw --force default $treatment $direction" - ;; - *) - echo 'UFW default policies must be either "allow", "deny", or "reject".' >&2 - exit 1 - ;; - esac - fi - done -fi diff --git a/cdist/conf/type/__ufw/man.rst b/cdist/conf/type/__ufw/man.rst deleted file mode 100644 index cc64fbb5..00000000 --- a/cdist/conf/type/__ufw/man.rst +++ /dev/null @@ -1,59 +0,0 @@ -cdist-type__ufw(7) -================== - -NAME ----- -cdist-type__ufw - Install the Uncomplicated FireWall - - -DESCRIPTION ------------ -Installs the Uncomplicated FireWall. Most modern distributions carry UFW in their main repositories, but on CentOS this type will automatically enable the EPEL repository. - -Some global configuration can also be set with this type. - -OPTIONAL PARAMETERS -------------------- -state - Either "enabled", "running", "present", or "absent". Defaults to "enabled", which registers UFW to start on boot. - -logging - Either "off", "low", "medium", "high", or "full". Will be passed to `ufw logging`. If not specified, logging level is not modified. - -default_incoming - Either "allow", "deny", or "reject". The default policy for dealing with ingress packets. - -default_outgoing - Either "allow", "deny", or "reject". The default policy for dealing with egress packets. - -default_routed - Either "allow", "deny", or "reject". The default policy for dealing with routed packets (passing through this machine). - - -EXAMPLES --------- - -.. code-block:: sh - - # Install UFW - __ufw - # Setup UFW with maximum logging and no restrictions on routed packets. - __ufw --logging full --default_routed allow - - -SEE ALSO --------- -:strong:`ufw`\ (8) - - -AUTHORS -------- -Mark Polyakov - - -COPYING -------- -Copyright \(C) 2019 Mark Polyakov. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ufw/manifest b/cdist/conf/type/__ufw/manifest deleted file mode 100755 index 370b7ff5..00000000 --- a/cdist/conf/type/__ufw/manifest +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -e -# -# 2019 Mark Polyakov (mark--@--markasoftware.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -state="$(cat "$__object/parameter/state")" - -case "$state" in - present|enabled) - os="$(cat "$__global/explorer/os")" - - case "$os" in - centos) - # shellcheck source=/dev/null - if (. "$__global/explorer/os_release" && [ "${VERSION_ID}" = "7" ]); then - __package epel-release - require='__package/epel-release' __package ufw - else - echo 'CentOS version 7 is required!' >&2 - exit 1 - fi - ;; - *) - __package ufw - ;; - esac - - # ufw expects to always be enabled, then uses a switch in /etc to - # determine whether to "actually start" after the init system calls it. - # So, we have to both enable on bootup through init and run `ufw enable` - - # operators ae left-associative, so if !enabled it will never run - if [ "$(cat "$__global/explorer/os")" != ubuntu ] || \ - [ "$(cat "$__global/explorer/init")" != init ] && \ - [ "$state" = enabled ]; then - # Why don't we disable start_on_boot when state=present|absent? - # Because UFW should always be enabled at boot -- /etc/ufw/ufw.conf - # will stop it from "really" starting - require='__package/ufw' __start_on_boot ufw - fi - ;; - - absent) - __package ufw --state absent - ;; - - *) - echo 'State must be "enabled", "present", or "absent".' - exit 1 - ;; -esac - diff --git a/cdist/conf/type/__ufw/parameter/default/state b/cdist/conf/type/__ufw/parameter/default/state deleted file mode 100644 index 26ed6c9b..00000000 --- a/cdist/conf/type/__ufw/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -enabled \ No newline at end of file diff --git a/cdist/conf/type/__ufw/parameter/optional b/cdist/conf/type/__ufw/parameter/optional deleted file mode 100644 index 0a4dec97..00000000 --- a/cdist/conf/type/__ufw/parameter/optional +++ /dev/null @@ -1,5 +0,0 @@ -state -logging -default_incoming -default_outgoing -default_routed \ No newline at end of file diff --git a/cdist/conf/type/__ufw/singleton b/cdist/conf/type/__ufw/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__ufw_rule/gencode-remote b/cdist/conf/type/__ufw_rule/gencode-remote deleted file mode 100755 index 4f1bf2c9..00000000 --- a/cdist/conf/type/__ufw_rule/gencode-remote +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -e -# -# 2019 Mark Polyakov (mark@markasoftware.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -# This type does not bother with checking the current state of the rules. -# While it is possible to retrieve the list of rules in a consistent format from -# `ufw status`, it is a completely different format than the one used on the -# command line. I also do not suspect it is any faster. - -ufw='ufw --force rule' - -case "$(cat "$__object/parameter/state")" in - present) ;; - absent) - ufw="$ufw delete" - ;; - *) - echo 'State must be "present" or "absent".' >&2 - exit 1 - ;; -esac - -if [ -f "$__object/parameter/rule" ]; then - ufw="$ufw $(cat "$__object/parameter/rule")" -else - ufw="$ufw allow $__object_id" -fi - -echo "$ufw" diff --git a/cdist/conf/type/__ufw_rule/man.rst b/cdist/conf/type/__ufw_rule/man.rst deleted file mode 100644 index 996557f8..00000000 --- a/cdist/conf/type/__ufw_rule/man.rst +++ /dev/null @@ -1,53 +0,0 @@ -cdist-type__ufw_rule(7) -======================= - -NAME ----- -cdist-type__ufw_rule - A single UFW rule - - -DESCRIPTION ------------ -Adds or removes a single UFW rule. This type supports adding and deleting rules for port ranges or applications. - -Understanding what is "to" and what is "from" can be confusing. If the rule is ingress (default), then "from" is the remote machine and "to" is the local one. The opposite is true for egress traffic (--out). - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent". Defaults to "present". If "absent", only removes rules that exactly match the rule expected. - -rule - A firewall rule in UFW syntax. This is what you would usually write after `ufw` on the command line. Defaults to "allow" followed by the object ID. You can use either the short syntax (just allow|deny|reject|limit followed by a port or application name) or the full syntax. Do not include `delete` in your command. Set `--state absent` instead. - -EXAMPLES --------- - -.. code-block:: sh - - # open port 80 (ufw allow 80) - __ufw_rule 80 - # Allow mosh application (if installed) - __ufw_rule mosh - # Allow all traffic from local network (ufw allow from 10.0.0.0/24) - __ufw_rule local --rule 'allow from 10.0.0.0/24' - # Block egress traffic from port 25 to 111.55.55.55 on interface eth0 - __ufw_rule block_smtp --rule 'deny out on eth0 from any port 25 to 111.55.55.55' - - -SEE ALSO --------- -:strong:`ufw`\ (8) - - -AUTHORS -------- -Mark Polyakov - - -COPYING -------- -Copyright \(C) 2019 Mark Polyakov. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__ufw_rule/parameter/default/state b/cdist/conf/type/__ufw_rule/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__ufw_rule/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__ufw_rule/parameter/optional b/cdist/conf/type/__ufw_rule/parameter/optional deleted file mode 100644 index 0732d53d..00000000 --- a/cdist/conf/type/__ufw_rule/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -rule diff --git a/cdist/conf/type/__update_alternatives/gencode-remote b/cdist/conf/type/__update_alternatives/gencode-remote deleted file mode 100755 index 0e7b0d89..00000000 --- a/cdist/conf/type/__update_alternatives/gencode-remote +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Setup alternative - no standard way to create, always set -# - -path="$(cat "$__object/parameter/path")" -name="$__object_id" -echo "update-alternatives --quiet --set '$name' '$path'" diff --git a/cdist/conf/type/__update_alternatives/man.rst b/cdist/conf/type/__update_alternatives/man.rst deleted file mode 100644 index 73d82d11..00000000 --- a/cdist/conf/type/__update_alternatives/man.rst +++ /dev/null @@ -1,46 +0,0 @@ -cdist-type__update_alternatives(7) -================================== - -NAME ----- -cdist-type__update_alternatives - Configure alternatives - - -DESCRIPTION ------------ -On Debian and alike systems update-alternatives(1) can be used -to setup alternatives for various programs. -One of the most common used targets is the "editor". - - -REQUIRED PARAMETERS -------------------- -path - Use this path for the given alternative - - -EXAMPLES --------- - -.. code-block:: sh - - # Setup vim as the default editor - __update_alternatives editor --path /usr/bin/vim.basic - - -SEE ALSO --------- -:strong:`cdist-type__debconf_set_selections`\ (7), :strong:`update-alternatives`\ (8) - - -AUTHORS -------- -Nico Schottelius - - -COPYING -------- -Copyright \(C) 2013 Nico Schottelius. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__update_alternatives/parameter/required b/cdist/conf/type/__update_alternatives/parameter/required deleted file mode 100644 index e7a8fd4d..00000000 --- a/cdist/conf/type/__update_alternatives/parameter/required +++ /dev/null @@ -1 +0,0 @@ -path diff --git a/cdist/conf/type/__user/explorer/shadow b/cdist/conf/type/__user/explorer/shadow deleted file mode 100755 index 73ce0e29..00000000 --- a/cdist/conf/type/__user/explorer/shadow +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Get an existing users shadow entry. -# - -name=$__object_id - -case $("$__explorer/os") in - 'freebsd'|'netbsd'|'openbsd') - database='passwd' - ;; - # Default to using shadow passwords - *) - database='shadow' - ;; -esac - -if command -v getent >/dev/null; then - getent "$database" "$name" || true -elif [ -f /etc/shadow ]; then - grep "^${name}:" /etc/shadow || true -fi diff --git a/cdist/conf/type/__user/gencode-remote b/cdist/conf/type/__user/gencode-remote deleted file mode 100755 index ee18c18f..00000000 --- a/cdist/conf/type/__user/gencode-remote +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/sh -e -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# 2013 Daniel Heule (hda at sfs.biz) -# 2018 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage users. -# -#set -x - -name="$__object_id" - -os="$(cat "$__global/explorer/os")" - -state=$(cat "$__object/parameter/state") - -# We need to shorten options for both usermod and useradd since on some -# systems (such as *BSD, Darwin) those commands do not handle GNU style long -# options. -shorten_property() { - unset ret - case "$1" in - comment) ret="-c";; - home) ret="-d";; - gid) ret="-g";; - groups) ret="-G";; - password) ret="-p";; - shell) ret="-s";; - uid) ret="-u";; - create-home) ret="-m";; - system) ret="-r";; - esac - echo "$ret" -} - -if [ "$state" = "present" ]; then - cd "$__object/parameter" - if grep -q "^${name}:" "$__object/explorer/passwd"; then - for property in *; do - new_value="$(cat "$property")" - unset current_value - - file="$__object/explorer/passwd" - - case "$property" in - gid) - if echo "$new_value" | grep -q '^[0-9][0-9]*$'; then - field=4 - else - # We were passed a group name. Compare the gid in - # the user's /etc/passwd entry with the gid of the - # group returned by the group explorer. - gid_from_group=$(awk -F: '{ print $3 }' "$__object/explorer/group") - gid_from_passwd=$(awk -F: '{ print $4 }' "$file") - if [ "$gid_from_group" != "$gid_from_passwd" ]; then - current_value="$gid_from_passwd" - else - current_value="$new_value" - fi - fi - ;; - password) - field=2 - file="$__object/explorer/shadow" - ;; - comment) field=5 ;; - home) field=6 ;; - shell) field=7 ;; - uid) field=3 ;; - create-home) continue;; # Does not apply to user modification - system) continue;; # Does not apply to user modification - state) continue;; # Does not apply to user modification - remove-home) continue;; # Does not apply to user modification - esac - - # If we haven't already set $current_value above, pull it from the - # appropriate file/field. - if [ -z "$current_value" ]; then - export field - current_value="$(awk -F: '{ print $ENVIRON["field"] }' < "$file")" - fi - - if [ "$new_value" != "$current_value" ]; then - set -- "$@" "$(shorten_property "$property")" \'"$new_value"\' - fi - done - - if [ $# -gt 0 ]; then - echo mod >> "$__messages_out" - if [ "$os" = "freebsd" ]; then - echo pw usermod "$@" -n "$name" - else - echo usermod "$@" "$name" - fi - else - true - fi - else - echo add >> "$__messages_out" - for property in *; do - [ "$property" = "state" ] && continue - [ "$property" = "remove-home" ] && continue - new_value="$(cat "$property")" - if [ -z "$new_value" ];then # Boolean values have no value - set -- "$@" "$(shorten_property "$property")" - else - set -- "$@" "$(shorten_property "$property")" \'"$new_value"\' - fi - done - - if [ "$os" = "freebsd" ]; then - echo pw useradd "$@" -n "$name" - else - echo useradd "$@" "$name" - fi - fi -elif [ "$state" = "absent" ]; then - if grep -q "^${name}:" "$__object/explorer/passwd"; then - #user exists, but state != present, so delete it - if [ -f "$__object/parameter/remove-home" ]; then - printf "userdel -r '%s' >/dev/null 2>&1\\n" "${name}" - echo "userdel -r" >> "$__messages_out" - else - printf "userdel '%s' >/dev/null 2>&1\\n" "${name}" - echo "userdel" >> "$__messages_out" - fi - fi -else - echo "Invalid state $state" >&2 -fi diff --git a/cdist/conf/type/__user/man.rst b/cdist/conf/type/__user/man.rst deleted file mode 100644 index ef6b77af..00000000 --- a/cdist/conf/type/__user/man.rst +++ /dev/null @@ -1,105 +0,0 @@ -cdist-type__user(7) -=================== - -NAME ----- -cdist-type__user - Manage users - - -DESCRIPTION ------------ -This cdist type allows you to create or modify users on the target. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - absent or present, defaults to present - -comment - see usermod(8) - -home - see above - -gid - see above - -password - see above - -shell - see above - -uid - see above - - -BOOLEAN PARAMETERS ------------------- -system - see useradd(8), apply only on user create - -create-home - see useradd(8), apply only on user create - -remove-home - see userdel(8), apply only on user delete - - -MESSAGES --------- -mod - User is modified - -add - New user added - -userdel -r - If user was deleted with homedir - -userdel - If user was deleted (keeping homedir) - -EXAMPLES --------- - -.. code-block:: sh - - # Create user account for foobar with operating system default settings - __user foobar - - # Same but with a different shell - __user foobar --shell /bin/zsh - - # Same but for a system account - __user foobar --system - - # Set explicit uid and home - __user foobar --uid 1001 --shell /bin/zsh --home /home/foobar - - # Drop user if exists - __user foobar --state absent - - -SEE ALSO --------- -:strong:`pw`\ (8), :strong:`usermod`\ (8) - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__user/manifest b/cdist/conf/type/__user/manifest deleted file mode 100644 index 8f10b38c..00000000 --- a/cdist/conf/type/__user/manifest +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -e -# -# 2019 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage users. - -os=$(cat "$__global/explorer/os") - -case "$os" in - alpine) - __package shadow - ;; - *) - : - ;; -esac diff --git a/cdist/conf/type/__user/parameter/boolean b/cdist/conf/type/__user/parameter/boolean deleted file mode 100644 index 83afdebe..00000000 --- a/cdist/conf/type/__user/parameter/boolean +++ /dev/null @@ -1,3 +0,0 @@ -create-home -remove-home -system diff --git a/cdist/conf/type/__user/parameter/default/state b/cdist/conf/type/__user/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__user/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__user_groups/explorer/group b/cdist/conf/type/__user_groups/explorer/group deleted file mode 100755 index 5bad9a0b..00000000 --- a/cdist/conf/type/__user_groups/explorer/group +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -user="$(cat "$__object/parameter/user" 2>/dev/null || echo "$__object_id")" - -(id -G -n "$user" | tr ' ' '\n' | sort) 2>/dev/null || true diff --git a/cdist/conf/type/__user_groups/explorer/oldusermod b/cdist/conf/type/__user_groups/explorer/oldusermod deleted file mode 100644 index 6ef25b13..00000000 --- a/cdist/conf/type/__user_groups/explorer/oldusermod +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# -# 2015 Heule Daniel (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -usermod --help | grep -q -- '-A group' && echo true || echo false diff --git a/cdist/conf/type/__user_groups/gencode-remote b/cdist/conf/type/__user_groups/gencode-remote deleted file mode 100755 index 8120761a..00000000 --- a/cdist/conf/type/__user_groups/gencode-remote +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -e -# -# 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -user="$(cat "$__object/parameter/user" 2>/dev/null || echo "$__object_id")" -state_should="$(cat "$__object/parameter/state")" -oldusermod="$(cat "$__object/explorer/oldusermod")" -os=$(cat "$__global/explorer/os") - -mkdir "$__object/files" -# file has to be sorted for comparison with `comm` -sort "$__object/parameter/group" > "$__object/files/group.sorted" - -case "$state_should" in - present) - changed_groups="$(comm -13 "$__object/explorer/group" "$__object/files/group.sorted")" - ;; - absent) - changed_groups="$(comm -12 "$__object/explorer/group" "$__object/files/group.sorted")" - ;; -esac - -if [ -z "$changed_groups" ]; then - # Nothing to do, move along - exit 0 -fi - -for group in $changed_groups; do - if [ "$os" = "netbsd" ] || [ "$os" = "openbsd" ]; then - case "$state_should" in - present) echo "usermod -G \"$group\" \"$user\"" ;; - absent) echo 'NetBSD and OpenBSD do not have a command to remove a user from a group' >&2 ; exit 1 ;; - esac - elif [ "$os" = "freebsd" ]; then - case "$state_should" in - present) echo "pw groupmod \"$group\" -m \"$user\"" ;; - absent) echo "pw groupmod \"$group\" -d \"$user\"" ;; - esac - elif [ "$oldusermod" = "true" ]; then - case "$state_should" in - present) echo "usermod -A \"$group\" \"$user\"" ;; - absent) echo "usermod -R \"$group\" \"$user\"" ;; - esac - else - case "$state_should" in - present) echo "gpasswd -a \"$user\" \"$group\"" ;; - absent) echo "gpasswd -d \"$user\" \"$group\"" ;; - esac - fi -done diff --git a/cdist/conf/type/__user_groups/man.rst b/cdist/conf/type/__user_groups/man.rst deleted file mode 100644 index 6767b7a8..00000000 --- a/cdist/conf/type/__user_groups/man.rst +++ /dev/null @@ -1,52 +0,0 @@ -cdist-type__user_groups(7) -========================== - -NAME ----- -cdist-type__user_groups - Manage user groups - - -DESCRIPTION ------------ -Adds or removes a user from one or more groups. - - -REQUIRED PARAMETERS -------------------- -group - the group to which this user should be added or removed. - Can be specified multiple times. - - -OPTIONAL PARAMETERS -------------------- -user - the name of the user. Defaults to object_id - -state - absent or present. Defaults to present. - - -EXAMPLES --------- - -.. code-block:: sh - - __user_groups nginx --group webuser1 --group webuser2 - - # remove user nginx from groups webuser2 - __user_groups nginx-webuser2 --user nginx \ - --group webuser2 --state absent - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2012 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__user_groups/parameter/default/state b/cdist/conf/type/__user_groups/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__user_groups/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__user_groups/parameter/optional b/cdist/conf/type/__user_groups/parameter/optional deleted file mode 100644 index 7d9ecf60..00000000 --- a/cdist/conf/type/__user_groups/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -user -state diff --git a/cdist/conf/type/__user_groups/parameter/required_multiple b/cdist/conf/type/__user_groups/parameter/required_multiple deleted file mode 100644 index 3a60ccec..00000000 --- a/cdist/conf/type/__user_groups/parameter/required_multiple +++ /dev/null @@ -1 +0,0 @@ -group diff --git a/cdist/conf/type/__xymon_apache/explorer/active-conf b/cdist/conf/type/__xymon_apache/explorer/active-conf deleted file mode 100755 index bd281e21..00000000 --- a/cdist/conf/type/__xymon_apache/explorer/active-conf +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -if [ -d /etc/apache2/mods-enabled ]; then - ls -1 /etc/apache2/conf-enabled/ -fi diff --git a/cdist/conf/type/__xymon_apache/explorer/active-modules b/cdist/conf/type/__xymon_apache/explorer/active-modules deleted file mode 100755 index 4c745ced..00000000 --- a/cdist/conf/type/__xymon_apache/explorer/active-modules +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -e - -if [ -d /etc/apache2/mods-enabled ]; then - /usr/sbin/apachectl -t -D DUMP_MODULES | awk '/.*_module/ { gsub(/_module.*$/, ""); gsub(/^ /, ""); print }' -fi diff --git a/cdist/conf/type/__xymon_apache/gencode-remote b/cdist/conf/type/__xymon_apache/gencode-remote deleted file mode 100755 index e7d8e344..00000000 --- a/cdist/conf/type/__xymon_apache/gencode-remote +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -state=$(cat "$__object/parameter/state") - -os=$(cat "$__global/explorer/os") -case "$os" in - debian|ubuntu) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -if [ "$state" = "present" ]; then - if ! grep -q ^rewrite "$__object/explorer/active-modules"; then - echo "a2enmod rewrite >/dev/null" - echo "mod:rewrite enabled" >> "$__messages_out" - fi - if ! grep -q "^cgi$" "$__object/explorer/active-modules"; then - echo "a2enmod cgi >/dev/null" - echo "mod:cgi enabled" >> "$__messages_out" - fi - - if ! grep -q ^xymon.conf "$__object/explorer/active-conf"; then - echo "a2enconf xymon >/dev/null" - echo "conf:xymon enabled" >> "$__messages_out" - fi -fi - -if grep -q "^mod:.* enabled" "$__messages_out"; then - echo "systemctl restart apache2.service" - echo "apache restarted" >> "$__messages_out" -elif grep -q "^conf:xymon enabled" "$__messages_out"; then - echo "systemctl reload apache2.service" - echo "apache reloaded" >> "$__messages_out" -fi diff --git a/cdist/conf/type/__xymon_apache/man.rst b/cdist/conf/type/__xymon_apache/man.rst deleted file mode 100644 index 8358c821..00000000 --- a/cdist/conf/type/__xymon_apache/man.rst +++ /dev/null @@ -1,79 +0,0 @@ -cdist-type__xymon_apache(7) -=========================== - -NAME ----- -cdist-type__xymon_apache - Configure apache2-webserver for Xymon - - -DESCRIPTION ------------ -This cdist type installs and configures apache2 to be used "exclusively" (in -the sense that no other use is taken care of) with Xymon (the systems and -network monitor). - -It depends on `__xymon_server`. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present', 'absent', defaults to 'present'. - -ipacl - IP(-ranges) that have access to the Xymon webpages and CGIs. Apache2-style - syntax suitable for `Require ip ...`. Example: `192.168.1.0/24 10.0.0.0/8` - - -MESSAGES --------- -mod:rewrite enabled - apache module enabled -conf:xymon enabled - apache config for xymon enabled -apache restarted - apache2.service was reloaded -apache reloaded - apache2.service was restarted - - -EXPLORERS ---------- -active-conf - lists apache2 `conf-enabled` -active-modules - lists active apache2-modules - - -EXAMPLES --------- - -.. code-block:: sh - - # minmal, only localhost-access: - __xymon_apache - # allow more IPs to access the Xymon-webinterface: - __xymon_apache --ipacl "192.168.0.0/16 10.0.0.0/8" --state "present" - - -SEE ALSO --------- -:strong:`cdist__xymon_server`\ (7) - - -AUTHORS -------- -Thomas Eckert - - -COPYING -------- -Copyright \(C) 2018-2019 Thomas Eckert. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__xymon_apache/manifest b/cdist/conf/type/__xymon_apache/manifest deleted file mode 100755 index bfd0af79..00000000 --- a/cdist/conf/type/__xymon_apache/manifest +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -state=$(cat "$__object/parameter/state") - -os=$(cat "$__global/explorer/os") -case "$os" in - debian|ubuntu) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -__package apache2 --state "$state" - -## edit xymon.conf IP-ranges -if [ -f "$__object/parameter/ipacl" ]; then - require="__package/xymon" __line /etc/apache2/conf-available/xymon.conf \ - --line " Require ip $(cat "$__object/parameter/ipacl")" \ - --after "^[[:space:]]*Require local" \ - --state "present" -fi diff --git a/cdist/conf/type/__xymon_apache/parameter/default/state b/cdist/conf/type/__xymon_apache/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__xymon_apache/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__xymon_apache/parameter/optional b/cdist/conf/type/__xymon_apache/parameter/optional deleted file mode 100644 index d374ec41..00000000 --- a/cdist/conf/type/__xymon_apache/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -ipacl diff --git a/cdist/conf/type/__xymon_apache/singleton b/cdist/conf/type/__xymon_apache/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__xymon_client/gencode-remote b/cdist/conf/type/__xymon_client/gencode-remote deleted file mode 100755 index 49eed317..00000000 --- a/cdist/conf/type/__xymon_client/gencode-remote +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -servers=$(cat "$__object/parameter/servers") - -if grep -q ^__key_value/CLIENTHOSTNAME "$__messages_in" || grep -q ^__key_value/XYMONSERVERS "$__messages_in" ; then - echo "systemctl restart xymon-client" - echo "restarted" >> "$__messages_out" - cat <<-EOT - echo "xymon-client xymon-client/XYMONSERVERS string $servers" | debconf-set-selections - EOT -fi diff --git a/cdist/conf/type/__xymon_client/man.rst b/cdist/conf/type/__xymon_client/man.rst deleted file mode 100644 index 05d085dc..00000000 --- a/cdist/conf/type/__xymon_client/man.rst +++ /dev/null @@ -1,66 +0,0 @@ -cdist-type__xymon_client(7) -=========================== - -NAME ----- -cdist-type__xymon_client - Install the Xymon client - - -DESCRIPTION ------------ -This cdist type installs the Xymon client and configures it to report with -FQDN. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present', 'absent', defaults to 'present'. - -servers - One or more IP addresses (space separated) of the Xymon server(s) to report - to. While DNS-names are ok it is discouraged, defaults to 127.0.0.1. - - -BOOLEAN PARAMETERS ------------------- -msgcache - Enable xymon `msgcache`. Note: XYMONSERVER has to be `127.0.0.1` for using - `msgcache` (see `msgcache (8)` of the xymon documentation for details). - -EXAMPLES --------- - -.. code-block:: sh - - # minimal, report to 127.0.0.1 - __xymon_client - - # specify server: - __xymon_client --servers "192.168.1.1" - - # activate `msgcache` for passive client: - __xymon_client --msgcache - - -SEE ALSO --------- -:strong:`cdist__xymon_server`\ (7), :strong:`xymon`\ (7), :strong:`msgcache`\ (8) - - -AUTHORS -------- -Thomas Eckert - - -COPYING -------- -Copyright \(C) 2018-2019 Thomas Eckert. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__xymon_client/manifest b/cdist/conf/type/__xymon_client/manifest deleted file mode 100755 index 88293a12..00000000 --- a/cdist/conf/type/__xymon_client/manifest +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -state=$(cat "$__object/parameter/state") -servers=$(cat "$__object/parameter/servers") - -os=$(cat "$__global/explorer/os") -case "$os" in - debian|ubuntu) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -__package xymon-client --state "$state" - -if [ -f "$__object/parameter/msgcache" ]; then - require="__package/xymon-client" __line /etc/xymon/clientlaunch.cfg \ - --regex DISABLED --state absent -fi - -require="__package/xymon-client" __key_value CLIENTHOSTNAME \ - --file /etc/default/xymon-client \ - --value "'$__target_hostname'" \ - --delimiter '=' \ - --state "$state" -require="__package/xymon-client" __key_value XYMONSERVERS \ - --file /etc/default/xymon-client \ - --value "'$servers'" \ - --delimiter '=' \ - --state "$state" - -## CLI-usage often requires a shell: -require="__package/xymon-client" __user xymon --shell "/bin/bash" --state "$state" diff --git a/cdist/conf/type/__xymon_client/parameter/boolean b/cdist/conf/type/__xymon_client/parameter/boolean deleted file mode 100644 index 0dd7839d..00000000 --- a/cdist/conf/type/__xymon_client/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -msgcache diff --git a/cdist/conf/type/__xymon_client/parameter/default/servers b/cdist/conf/type/__xymon_client/parameter/default/servers deleted file mode 100644 index 7b9ad531..00000000 --- a/cdist/conf/type/__xymon_client/parameter/default/servers +++ /dev/null @@ -1 +0,0 @@ -127.0.0.1 diff --git a/cdist/conf/type/__xymon_client/parameter/default/state b/cdist/conf/type/__xymon_client/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__xymon_client/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__xymon_client/parameter/optional b/cdist/conf/type/__xymon_client/parameter/optional deleted file mode 100644 index 7c34489a..00000000 --- a/cdist/conf/type/__xymon_client/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -state -servers diff --git a/cdist/conf/type/__xymon_client/singleton b/cdist/conf/type/__xymon_client/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__xymon_config/files/.keep b/cdist/conf/type/__xymon_config/files/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__xymon_config/gencode-remote b/cdist/conf/type/__xymon_config/gencode-remote deleted file mode 100644 index b25a0fda..00000000 --- a/cdist/conf/type/__xymon_config/gencode-remote +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -## to speed up config-reload we send a HUP to the server process: -cat <<-EOT - pkill -HUP xymond || { echo "HUPing xymond failed" >&2; exit 1; } -EOT diff --git a/cdist/conf/type/__xymon_config/man.rst b/cdist/conf/type/__xymon_config/man.rst deleted file mode 100644 index 8adfbe1f..00000000 --- a/cdist/conf/type/__xymon_config/man.rst +++ /dev/null @@ -1,78 +0,0 @@ -cdist-type__xymon_config(7) -=========================== - -NAME ----- -cdist-type__xymon_config - Deploy a Xymon configuration-directory - - -DESCRIPTION ------------ -This cdist type deploys a full Xymon configuration directory from the files-dir -to the host. This type requires an installed Xymon server, e.g. deployed by -`__xymon_server`. - -WARNING: This type _replaces_ the `/etc/xymon/`-directory! The previous -contents is replaced/deleted! - - -REQUIRED PARAMETERS -------------------- -confdir - The directory in `./files/` that contains the `/etc/xymon/`-content to be - deployed. - - -OPTIONAL PARAMETERS -------------------- -owner - passed as-is as `--owner` to `__rsync` - -group - passed as-is as `--group` to `__rsync` - - -OPTIONAL MULTIPLE PARAMETERS ----------------------------- -rsync-opts - identical to __rsync type, only `--`-options are supported - - -REQUIRED FILES --------------- -The directory specified by `confdir` has to contain a valid xymon-configuration -(`/etc/xymon/`) _plus_ the `ext/`-directory that normally resides in -`/usr/lib/xymon/server/`. - - -EXAMPLES --------- - -.. code-block:: sh - - __xymon_config --confdir=xymon.example.com - # this will replace /etc/xymon/ on the target host with - # the contents from __xymon_config/files/xymon.example.com/ - - ## the same but set ownership to `xymon:xymon` and exclude - ## the `netrc`-file: - __xymon_config --confdir=xymon.example.com \ - --owner xymon --group xymon \ - --rsync-opts "exclude=netrc" - - -SEE ALSO --------- -:strong:`cdist__xymon_server`\ (7), :strong:`cdist__rsync`\ (7), :strong:`xymon`\ (7) - -AUTHORS -------- -Thomas Eckert - - -COPYING -------- -Copyright \(C) 2018-2019 Thomas Eckert. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__xymon_config/manifest b/cdist/conf/type/__xymon_config/manifest deleted file mode 100644 index 4a5fb6c9..00000000 --- a/cdist/conf/type/__xymon_config/manifest +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -confdir=$(cat "$__object/parameter/confdir") -set -- -if [ -f "$__object/parameter/owner" ]; then - owner=$(cat "$__object/parameter/owner") - set -- "$@" "--owner $owner" -fi -if [ -f "$__object/parameter/group" ]; then - group=$(cat "$__object/parameter/group") - set -- "$@" "--group $group" -fi - -## pass `--rsync-opts` as-is to `__rsync`: -if [ -f "$__object/parameter/rsync-opts" ]; then - while read -r opts; do - # shellcheck disable=SC2089 - set -- "$@" "--rsync-opts '$opts'" - done < "$__object/parameter/rsync-opts" -fi - -# shellcheck disable=SC2068,SC2090 -__rsync /etc/xymon/ \ - --source "$__type/files/$confdir/" \ - --rsync-opts "delete" \ - $@ diff --git a/cdist/conf/type/__xymon_config/parameter/optional b/cdist/conf/type/__xymon_config/parameter/optional deleted file mode 100644 index 866b4bde..00000000 --- a/cdist/conf/type/__xymon_config/parameter/optional +++ /dev/null @@ -1,2 +0,0 @@ -owner -group diff --git a/cdist/conf/type/__xymon_config/parameter/optional_multiple b/cdist/conf/type/__xymon_config/parameter/optional_multiple deleted file mode 100644 index fdb7cd88..00000000 --- a/cdist/conf/type/__xymon_config/parameter/optional_multiple +++ /dev/null @@ -1 +0,0 @@ -rsync-opts diff --git a/cdist/conf/type/__xymon_config/parameter/required b/cdist/conf/type/__xymon_config/parameter/required deleted file mode 100644 index 43222f13..00000000 --- a/cdist/conf/type/__xymon_config/parameter/required +++ /dev/null @@ -1 +0,0 @@ -confdir diff --git a/cdist/conf/type/__xymon_config/singleton b/cdist/conf/type/__xymon_config/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__xymon_server/gencode-remote b/cdist/conf/type/__xymon_server/gencode-remote deleted file mode 100755 index 0770e319..00000000 --- a/cdist/conf/type/__xymon_server/gencode-remote +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -## "move" user-modified dirs to /etc/xymon to be managed by __xymon_config: -cat <<-EOT - if [ ! -L /usr/lib/xymon/server/ext ]; then - mv /usr/lib/xymon/server/ext /etc/xymon - ln -s /etc/xymon/ext /usr/lib/xymon/server/ - fi -EOT diff --git a/cdist/conf/type/__xymon_server/man.rst b/cdist/conf/type/__xymon_server/man.rst deleted file mode 100644 index a9a180e1..00000000 --- a/cdist/conf/type/__xymon_server/man.rst +++ /dev/null @@ -1,87 +0,0 @@ -cdist-type__xymon_server(7) -=========================== - -NAME ----- -cdist-type__xymon_server - Install a Xymon server - - -DESCRIPTION ------------ -This cdist type installs a Xymon (https://www.xymon.com/) server and (optional) -required helper packages. - -This includes the Xymon client as a dependency, so NO NEED to install -`__xymon_client` separately. - -To access the webinterface a webserver is required. The cdist-type -`__xymon_apache` can be used to install and configure the apache webserver for -the use with Xymon. - -Further and day-to-day configuration of Xymon can either be done manually in -`/etc/xymon/` or the directory can be deployed and managed by `__xymon_config`. - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present', 'absent', defaults to 'present'. If '--install_helpers' is - specified for 'absent' the helper packages will be un-installed. - - -BOOLEAN PARAMETERS ------------------- -install_helpers - Install helper packages used by Xymon (fping, heirloom-mailx, traceroute, - ntpdate). - - -EXAMPLES --------- - -.. code-block:: sh - - # minmal - __xymon_server - - # the same - __xymon_server --state present - - # also install helper packages: - __xymon_server --install_helpers - - # examples to give a more complete picture: __xymon_server installed on - # `xymon.example.com` w/ IP 192.168.1.1: - # - # install webserver and grant 2 private subnets access to the webinterface: - __xymon_apache --ipacl "192.168.0.0/16 10.0.0.0/8" - # deploy server-configuration with __xymon_config: - __xymon_config --confdir=xymon.example.com - - # install xymon-client on other machines (not needed on the server): - __xymon_client --servers "192.168.1.1" - - - -SEE ALSO --------- -:strong:`cdist__xymon_apache`\ (7), :strong:`cdist__xymon_config`\ (7), -:strong:`cdist__xymon_client`\ (7), :strong:`xymon`\ (7) - - -AUTHORS -------- -Thomas Eckert - - -COPYING -------- -Copyright \(C) 2018-2019 Thomas Eckert. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__xymon_server/manifest b/cdist/conf/type/__xymon_server/manifest deleted file mode 100755 index 7cee0d23..00000000 --- a/cdist/conf/type/__xymon_server/manifest +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -e -# -# 2018-2019 Thomas Eckert (tom at it-eckert.de) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . - -state=$(cat "$__object/parameter/state") -if [ -f "$__object/parameter/install_helpers" ]; then - install_helpers=1 -else - install_helpers=0 -fi - -os=$(cat "$__global/explorer/os") -case "$os" in - debian|ubuntu) - : - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac - -__package xymon --state "$state" - -## install helper-packages/tools used by the xymon server if requested: -if [ "$install_helpers" = "1" ]; then - __package fping --state "$state" - __package heirloom-mailx --state "$state" - __package traceroute --state "$state" - __package ntpdate --state "$state" -fi - -## CLI-usage often requires a shell: -require="__package/xymon" __user xymon --shell "/bin/bash" --state "$state" diff --git a/cdist/conf/type/__xymon_server/parameter/boolean b/cdist/conf/type/__xymon_server/parameter/boolean deleted file mode 100644 index 56ebcb2c..00000000 --- a/cdist/conf/type/__xymon_server/parameter/boolean +++ /dev/null @@ -1 +0,0 @@ -install_helpers diff --git a/cdist/conf/type/__xymon_server/parameter/default/state b/cdist/conf/type/__xymon_server/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__xymon_server/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__xymon_server/parameter/optional b/cdist/conf/type/__xymon_server/parameter/optional deleted file mode 100644 index ff72b5c7..00000000 --- a/cdist/conf/type/__xymon_server/parameter/optional +++ /dev/null @@ -1 +0,0 @@ -state diff --git a/cdist/conf/type/__xymon_server/singleton b/cdist/conf/type/__xymon_server/singleton deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/conf/type/__yum_repo/files/repo.template b/cdist/conf/type/__yum_repo/files/repo.template deleted file mode 100755 index 18ea9d2b..00000000 --- a/cdist/conf/type/__yum_repo/files/repo.template +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -set -u -cat << DONE -# Created by cdist ${__type##*/} -# Do not change. Changes will be overwritten. -# -[$repo_name] -DONE -# single value properties -single_value='name -metalink -mirrorlist -gpgcakey -gpgcheck -exclude -includepkgs -failovermethod -timeout -http_caching -retries -throttle -bandwidth -sslcacert -sslverify -sslclientcert -sslclientkey -ssl_check_cert_permissions -metadata_expire -mirrorlist_expire -proxy -proxy_username -proxy_password -username -password -cost' -for key in $single_value; do - if [ -f "$__object/parameter/$key" ]; then - printf '%s=%s\n' "$key" "$(cat "$__object/parameter/$key")" - fi -done -# multi value properties -for key in baseurl gpgkey; do - if [ -f "$__object/parameter/$key" ]; then - printf '%s=' "$key" - prefix='' - while read -r line; do - printf '%s%s\n' "$prefix" "$line" - prefix=' ' - done < "$__object/parameter/$key" - fi -done -# boolean properties -for key in enabled repo_gpgcheck keepalive skip_if_unavailable; do - if [ -f "$__object/parameter/$key" ]; then - printf '%s=1\n' "$key" - fi -done -# special cases -if [ -f "$__object/parameter/disablegroups" ]; then - printf 'enablegroups=0\n' -fi diff --git a/cdist/conf/type/__yum_repo/man.rst b/cdist/conf/type/__yum_repo/man.rst deleted file mode 100644 index 94366c3a..00000000 --- a/cdist/conf/type/__yum_repo/man.rst +++ /dev/null @@ -1,124 +0,0 @@ -cdist-type__yum_repo(7) -======================= - -NAME ----- -cdist-type__yum_repo - Manage yum repositories - - -DESCRIPTION ------------ -For all undocumented parameters see yum.conf(5). - - -REQUIRED PARAMETERS -------------------- -None. - - -OPTIONAL PARAMETERS -------------------- -state - 'present' or 'absent'. Defaults to 'present' - -repositoryid - Defaults to __object_id. - -name - -baseurl - Can be specified multiple times. - -metalink - -mirrorlist - -gpgkey - Can be specified multiple times. - -gpgcakey - -gpgcheck - -exclude - -includepkgs - -failovermethod - -timeout - -http_caching - -retries - -throttle - -bandwidth - -sslcacert - -sslverify - -sslclientcert - -sslclientkey - -ssl_check_cert_permissions - -metadata_expire - -mirrorlist_expire - -proxy - -proxy_username - -proxy_password - -username - -password - -cost - - -BOOLEAN PARAMETERS ------------------- -enabled - -repo_gpgcheck - -disablegroups - ! enablegroups - -keepalive - -skip_if_unavailable - - -EXAMPLES --------- - -.. code-block:: sh - - __yum_repo epel \ - --name 'Extra Packages for Enterprise Linux 6 - $basearch' \ - --mirrorlist 'https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch' \ - --failovermethod priority \ - --enabled \ - --gpgcheck 1 \ - --gpgkey https://fedoraproject.org/static/0608B895.txt - - -AUTHORS -------- -Steven Armstrong - - -COPYING -------- -Copyright \(C) 2014 Steven Armstrong. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__yum_repo/manifest b/cdist/conf/type/__yum_repo/manifest deleted file mode 100755 index 5f60d32c..00000000 --- a/cdist/conf/type/__yum_repo/manifest +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -e -# -# 2014 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# - -os=$(cat "$__global/explorer/os") -state="$(cat "$__object/parameter/state")" - -case "$os" in - scientific|centos) - repo_name="$__object_id" - export repo_name - repo_file="/etc/yum.repos.d/${repo_name}.repo" - "$__type/files/repo.template" | \ - __file "$repo_file" \ - --owner root --group root --mode 644 \ - --state "$state" \ - --source - - ;; - *) - echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2 - echo "Please contribute an implementation for it if you can." >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__yum_repo/notes b/cdist/conf/type/__yum_repo/notes deleted file mode 100644 index 67fa617b..00000000 --- a/cdist/conf/type/__yum_repo/notes +++ /dev/null @@ -1,3 +0,0 @@ -https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Configuring_Yum_and_Yum_Repositories.html -https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/sect-Configuring_Software_Repositories.html -http://docs.puppetlabs.com/references/latest/type.html#yumrepo diff --git a/cdist/conf/type/__yum_repo/parameter/boolean b/cdist/conf/type/__yum_repo/parameter/boolean deleted file mode 100644 index 2eb49a93..00000000 --- a/cdist/conf/type/__yum_repo/parameter/boolean +++ /dev/null @@ -1,5 +0,0 @@ -enabled -repo_gpgcheck -disablegroups -keepalive -skip_if_unavailable diff --git a/cdist/conf/type/__yum_repo/parameter/default/state b/cdist/conf/type/__yum_repo/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__yum_repo/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__yum_repo/parameter/optional b/cdist/conf/type/__yum_repo/parameter/optional deleted file mode 100644 index 7e185701..00000000 --- a/cdist/conf/type/__yum_repo/parameter/optional +++ /dev/null @@ -1,27 +0,0 @@ -bandwidth -cost -exclude -failovermethod -gpgcakey -gpgcheck -http_caching -includepkgs -metadata_expire -mirrorlist -mirrorlist_expire -name -password -proxy -proxy_password -proxy_username -repositoryid -retries -sslcacert -ssl_check_cert_permissions -sslclientcert -sslclientkey -sslverify -state -throttle -timeout -username diff --git a/cdist/conf/type/__yum_repo/parameter/optional_multiple b/cdist/conf/type/__yum_repo/parameter/optional_multiple deleted file mode 100644 index 6467915b..00000000 --- a/cdist/conf/type/__yum_repo/parameter/optional_multiple +++ /dev/null @@ -1,2 +0,0 @@ -baseurl -gpgkey diff --git a/cdist/conf/type/__zypper_repo/explorer/all_repo_ids b/cdist/conf/type/__zypper_repo/explorer/all_repo_ids deleted file mode 100644 index 7953158a..00000000 --- a/cdist/conf/type/__zypper_repo/explorer/all_repo_ids +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve all repo id nummbers - parsed zypper output -# -# -# shellcheck disable=SC2005,SC2046 -echo $(zypper lr | cut -d'|' -f 1 | grep -E '^[0-9]') diff --git a/cdist/conf/type/__zypper_repo/explorer/enabled_repo_ids b/cdist/conf/type/__zypper_repo/explorer/enabled_repo_ids deleted file mode 100644 index 261d6073..00000000 --- a/cdist/conf/type/__zypper_repo/explorer/enabled_repo_ids +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve all repo id nummbers from enabled repos - parsed zypper output -# -# -# simpler command which works only on SLES11 SP3 or newer: -# echo $(zypper lr -E | cut -d'|' -f 1 | grep -E '^[0-9]') -# -# shellcheck disable=SC2005,SC2046 -echo $(zypper lr | grep -E '^[0-9]([^|]+\|){3,3} Yes' | cut -d'|' -f 1) diff --git a/cdist/conf/type/__zypper_repo/explorer/repo_id b/cdist/conf/type/__zypper_repo/explorer/repo_id deleted file mode 100644 index d55a5cac..00000000 --- a/cdist/conf/type/__zypper_repo/explorer/repo_id +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# 2013-2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Retrieve the id from the repo with the uri from parameter uri - parsed zypper output -# -# -if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" -else - uri="$__object_id" -fi -# shellcheck disable=SC2005,SC2046 -echo $(zypper lr -u | grep -F "$uri" | cut -d'|' -f 1 | grep -E '^[0-9]') diff --git a/cdist/conf/type/__zypper_repo/gencode-remote b/cdist/conf/type/__zypper_repo/gencode-remote deleted file mode 100755 index 336488ae..00000000 --- a/cdist/conf/type/__zypper_repo/gencode-remote +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/sh -e -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage repo services with Zypper (mostly suse) -# - -# Debug -#exec >&2 -#set -x - -zypper_def_opts=" -q --non-interactive --gpg-auto-import-keys " - -if [ -f "$__object/parameter/repo_desc" ]; then - desc="$(cat "$__object/parameter/repo_desc")" -else - desc="$__object_id" -fi - -if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" -else - uri="$__object_id" -fi - -if [ -f "$__object/parameter/repo_id" ]; then - id="$(cat "$__object/parameter/repo_id")" -else - id="$__object_id" -fi - -state="$(cat "$__object/parameter/state")" - -repo_id="$(cat "$__object/explorer/repo_id")" - -act_id="" -if grep -q "$id" "$__object/explorer/all_repo_ids"; then - act_id="$id" -elif grep -q "$repo_id" "$__object/explorer/all_repo_ids"; then - act_id="$repo_id" -fi - -repostate="disabled" -if grep -q "$act_id" "$__object/explorer/enabled_repo_ids"; then - repostate="enabled" -fi - - -case "$state" in - present) - if [ -z "$desc" ] || [ -z "$uri" ]; then - echo "parameter repo_desc and uri for $state needed" >&2 - exit 4 - fi - if [ -z "$repo_id" ]; then - # Repo not present, so we need to create it - echo "zypper $zypper_def_opts addrepo '$uri' '$desc'" - fi - ;; - absent) - if [ -n "$act_id" ]; then - # Repo present (act_id not ""), so we ned to delete it - echo "zypper $zypper_def_opts removerepo $act_id" - fi - ;; - enabled) - if [ -n "$act_id" ] && [ "$repostate" = "disabled" ]; then - # Repo present (act_id not "") and repostate not enabled, so a enable call is needed - echo "zypper $zypper_def_opts modifyrepo -e $act_id" - fi - ;; - disabled) - if [ -n "$act_id" ] && [ "$repostate" = "enabled" ]; then - # Repo present (act_id not "") and repostate enabled, so a disable call is needed - echo "zypper $zypper_def_opts modifyrepo -d $act_id" - fi - ;; - *) - echo "Unknown state: $state" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__zypper_repo/man.rst b/cdist/conf/type/__zypper_repo/man.rst deleted file mode 100644 index 73799d91..00000000 --- a/cdist/conf/type/__zypper_repo/man.rst +++ /dev/null @@ -1,73 +0,0 @@ -cdist-type__zypper_repo(7) -========================== - -NAME ----- -cdist-type__zypper_repo - Repository management with zypper - - -DESCRIPTION ------------ -zypper is usually used on the SuSE distribution to manage repositories. - - -REQUIRED PARAMETERS -------------------- -None - - -OPTIONAL PARAMETERS -------------------- -state - Either "present" or "absent" or "enabled" or "disabled", defaults to "present" - - * **present** - make sure that the repo is available, needs uri and repo_desc for all following states, the repo can be searched via repo_id or uri - * **absent** - drop the repo if found + - * **enabled** - a repo can have state disabled if installed via zypper service (ris), in this case, you can enable the repo - * **disabled** - instead of absent (drop), a repo can also set to disabled, which makes it inaccessible - -uri - If supplied, use the uri and not the object id as repo uri. - -repo_desc - If supplied, use the description and not the object id as repo description, only used if the state is present and the repo has to be created - -repo_id - If supplied, use the id and not the object id as repo id, can be used with state absent, enabled and disabled - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure testrepo in installed - __zypper_repo testrepo --state present --uri http://url.to.your.repo/with/path - - # Drop repo by repo uri - __zypper_repo testrepo --state absent --uri http://url.to.your.repo/with/path - - # Drop repo by id number (attention: repos are always numbered from 1 to max) - __zypper_repo testrepo --state absent --repo_id 1 - - # enable repo by id - __zypper_repo testrepo2 --state enabled --repo_id 2 - - # enable repo by uri - __zypper_repo testrepo3 --state enabled --uri http://url.to.your.repo/with/path - - # disable a repo works like enabling it - __zypper_repo testrepo4 --state disabled --repo_id 4 - - -AUTHORS -------- -Daniel Heule - - -COPYING -------- -Copyright \(C) 2013 Daniel Heule. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__zypper_repo/parameter/default/state b/cdist/conf/type/__zypper_repo/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__zypper_repo/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__zypper_repo/parameter/optional b/cdist/conf/type/__zypper_repo/parameter/optional deleted file mode 100644 index fe40e350..00000000 --- a/cdist/conf/type/__zypper_repo/parameter/optional +++ /dev/null @@ -1,4 +0,0 @@ -state -uri -repo_desc -repo_id diff --git a/cdist/conf/type/__zypper_service/explorer/repo_ids b/cdist/conf/type/__zypper_service/explorer/repo_ids deleted file mode 100644 index da506fea..00000000 --- a/cdist/conf/type/__zypper_service/explorer/repo_ids +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage services with Zypper (mostly suse) -# -# -# simpler command which works only on SLES11 SP3 or newer: -# echo $(zypper lr -u -E | cut -d'|' -f 1 | grep -E '^[0-9]') -# on older systems, zypper doesn't know the parameter -E -# -# shellcheck disable=SC2005,SC2046 -echo $(zypper lr -u | grep -E '^([^|]+\|){3,3} Yes' | cut -d'|' -f 1 | grep -E '^[0-9]') diff --git a/cdist/conf/type/__zypper_service/explorer/service_id b/cdist/conf/type/__zypper_service/explorer/service_id deleted file mode 100644 index fbb983c8..00000000 --- a/cdist/conf/type/__zypper_service/explorer/service_id +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage services with Zypper (mostly suse) -# -if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" -else - uri="/$__object_id" -fi -# simpler command which works only on SLES11 SP3 or newer: -# echo $(zypper ls -u -E | grep -E "\<$uri\>" | cut -d'|' -f 1 ) -# -# shellcheck disable=SC2005,SC2046 -echo $(zypper ls -u | grep -E '^([^|]+\|){3,3} Yes' | grep -E "\\<$uri\\>" | cut -d'|' -f 1) diff --git a/cdist/conf/type/__zypper_service/explorer/service_ids b/cdist/conf/type/__zypper_service/explorer/service_ids deleted file mode 100644 index 5a26740e..00000000 --- a/cdist/conf/type/__zypper_service/explorer/service_ids +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage services with Zypper (mostly suse) -# -# simpler command which works only on SLES11 SP3 or newer: -# echo $(zypper ls -u -E | cut -d'|' -f 1 | grep -E '^[0-9]') -# -# shellcheck disable=SC2005,SC2046 -echo $(zypper ls -u | grep -E '^([^|]+\|){3,3} Yes' | cut -d'|' -f 1 | grep -E '^[0-9]') diff --git a/cdist/conf/type/__zypper_service/explorer/service_uri b/cdist/conf/type/__zypper_service/explorer/service_uri deleted file mode 100644 index 2f3d0f94..00000000 --- a/cdist/conf/type/__zypper_service/explorer/service_uri +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage services with Zypper (mostly suse) -# -if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" -else - uri="/$__object_id" -fi -# shellcheck disable=SC2005,SC2046 -echo $(zypper ls -u | awk 'BEGIN { FS = "[ ]+\\|[ ]+" } ; $4 == "Yes" && $NF == "'"$uri"'" {print $NF}') diff --git a/cdist/conf/type/__zypper_service/gencode-remote b/cdist/conf/type/__zypper_service/gencode-remote deleted file mode 100755 index 4ccfe301..00000000 --- a/cdist/conf/type/__zypper_service/gencode-remote +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/sh -e -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage services with Zypper (mostly suse) -# - -# Debug -#exec >&2 -#set -x - -zypper_def_opts=" -q --non-interactive --gpg-auto-import-keys " - -if [ -f "$__object/parameter/service_desc" ]; then - desc="$(cat "$__object/parameter/service_desc")" -else - desc="$__object_id" -fi - -if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" -else - uri="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" -stype="$(cat "$__object/parameter/type")" - -exp_uri="$(cat "$__object/explorer/service_uri")" -exp_id="$(cat "$__object/explorer/service_id")" - -# we need this list to remove ids, but we must do this in reverse order -exp_ids="$(rev "$__object/explorer/service_ids")" - -if [ "$uri" = "$exp_uri" ] ; then - state_is="present" -else - state_is="absent" -fi - -# remove all other services if needed ... -if [ -f "$__object/parameter/remove-all-other-services" ]; then - # file exists -> True - for i in $exp_ids; do - if [ "$i" != "$exp_id" ] ; then - echo "zypper $zypper_def_opts removeservice $i &>/dev/null" - fi - done - echo "zypper $zypper_def_opts refs &>/dev/null" -fi - - -# Exit if nothing is needed to be done -[ "$state_is" = "$state_should" ] && exit 0 - -case "$state_should" in - present) - echo "zypper $zypper_def_opts addservice -t $stype $uri '$desc'" - echo "zypper $zypper_def_opts refs" - echo "zypper $zypper_def_opts ref" - ;; - absent) - echo "zypper $zypper_def_opts removeservice $exp_id" - echo "zypper $zypper_def_opts refs" - echo "zypper $zypper_def_opts ref" - ;; - *) - echo "Unknown state: $state_should" >&2 - exit 1 - ;; -esac diff --git a/cdist/conf/type/__zypper_service/man.rst b/cdist/conf/type/__zypper_service/man.rst deleted file mode 100644 index e082dc02..00000000 --- a/cdist/conf/type/__zypper_service/man.rst +++ /dev/null @@ -1,66 +0,0 @@ -cdist-type__zypper_service(7) -============================= - -NAME ----- -cdist-type__zypper_service - Service management with zypper - - -DESCRIPTION ------------ -zypper is usually used on SuSE systems to manage services. - - -REQUIRED PARAMETERS -------------------- -uri - Uri of the service - - -OPTIONAL PARAMETERS -------------------- -service_desc - If supplied, use the service_desc and not the object id as description for the service. - -state - Either "present" or "absent", defaults to "present" - -type - Defaults to "ris", the standard type of services at SLES11. For other values, see manpage of zypper. - - -BOOLEAN PARAMETERS ------------------- -remove-all-other-services - Drop all other services found on the target host before adding the new one. - -remove-all-repos - If supplied, remove all existing repos prior to setup the new service. - - -EXAMPLES --------- - -.. code-block:: sh - - # Ensure that internal SLES11 SP3 RIS is in installed and all other services and repos are discarded - __zypper_service INTERNAL_SLES11_SP3 --service_desc "Internal SLES11 SP3 RIS" --uri "http://path/to/your/ris/dir" --remove-all-other-services --remove-all-repos - - # Ensure that internal SLES11 SP3 RIS is in installed, no changes to other services or repos - __zypper_service INTERNAL_SLES11_SP3 --service_desc "Internal SLES11 SP3 RIS" --uri "http://path/to/your/ris/dir" - - # Drop service by uri, no changes to other services or repos - __zypper_service INTERNAL_SLES11_SP3 --state absent --uri "http://path/to/your/ris/dir" - - -AUTHORS -------- -Daniel Heule - - -COPYING -------- -Copyright \(C) 2013 Daniel Heule. You can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. diff --git a/cdist/conf/type/__zypper_service/manifest b/cdist/conf/type/__zypper_service/manifest deleted file mode 100755 index 42a56830..00000000 --- a/cdist/conf/type/__zypper_service/manifest +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -e -# -# 2013 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Manage services with Zypper (mostly suse) -# - -# Debug -#exec >&2 -#set -x - - -if [ -f "$__object/parameter/uri" ]; then - uri="$(cat "$__object/parameter/uri")" -else - uri="$__object_id" -fi - -state_should="$(cat "$__object/parameter/state")" - -exp_uri="$(cat "$__object/explorer/service_uri")" - -if [ "$uri" = "$exp_uri" ] ; then - state_is="present" -else - state_is="absent" -fi - - -# Exit if nothing is needed to be done -[ "$state_is" = "$state_should" ] && exit 0 - -# we need this list to remove ids, but we must do this in reverse order -exp_repos="$(rev "$__object/explorer/repo_ids")" - -# boolean parameter -if [ -f "$__object/parameter/remove-all-repos" ]; then - # file exists -> True - for i in $exp_repos; do - __zypper_repo "droprepo${i}" --state absent --repo_id "${i}" - done -fi diff --git a/cdist/conf/type/__zypper_service/parameter/boolean b/cdist/conf/type/__zypper_service/parameter/boolean deleted file mode 100644 index ca711ded..00000000 --- a/cdist/conf/type/__zypper_service/parameter/boolean +++ /dev/null @@ -1,2 +0,0 @@ -remove-all-other-services -remove-all-repos diff --git a/cdist/conf/type/__zypper_service/parameter/default/state b/cdist/conf/type/__zypper_service/parameter/default/state deleted file mode 100644 index e7f6134f..00000000 --- a/cdist/conf/type/__zypper_service/parameter/default/state +++ /dev/null @@ -1 +0,0 @@ -present diff --git a/cdist/conf/type/__zypper_service/parameter/default/type b/cdist/conf/type/__zypper_service/parameter/default/type deleted file mode 100644 index b928830f..00000000 --- a/cdist/conf/type/__zypper_service/parameter/default/type +++ /dev/null @@ -1 +0,0 @@ -ris diff --git a/cdist/conf/type/__zypper_service/parameter/optional b/cdist/conf/type/__zypper_service/parameter/optional deleted file mode 100644 index b26c78d8..00000000 --- a/cdist/conf/type/__zypper_service/parameter/optional +++ /dev/null @@ -1,3 +0,0 @@ -service_desc -state -type diff --git a/cdist/conf/type/__zypper_service/parameter/required b/cdist/conf/type/__zypper_service/parameter/required deleted file mode 100644 index c7954952..00000000 --- a/cdist/conf/type/__zypper_service/parameter/required +++ /dev/null @@ -1 +0,0 @@ -uri diff --git a/cdist/config.py b/cdist/config.py deleted file mode 100644 index 97cc1da6..00000000 --- a/cdist/config.py +++ /dev/null @@ -1,832 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2010-2015 Nico Schottelius (nico-cdist at schottelius.org) -# 2013-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# 2016-2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import logging -import os -import sys -import time -import itertools -import tempfile -import multiprocessing -from cdist.mputil import mp_pool_run, mp_sig_handler -import atexit -import shutil -import socket -import cdist -import cdist.hostsource -import cdist.exec.local -import cdist.exec.remote -import cdist.util.ipaddr as ipaddr -import cdist.configuration -from cdist import core, inventory -from cdist.util.remoteutil import inspect_ssh_mux_opts - - -def graph_check_cycle(graph): - # Start from each node in the graph and check for cycle starting from it. - for node in graph: - # Cycle path. - path = [node] - has_cycle = _graph_dfs_cycle(graph, node, path) - if has_cycle: - return has_cycle, path - return False, None - - -def _graph_dfs_cycle(graph, node, path): - for neighbour in graph.get(node, ()): - # If node is already in path then this is cycle. - if neighbour in path: - path.append(neighbour) - return True - path.append(neighbour) - rv = _graph_dfs_cycle(graph, neighbour, path) - if rv: - return True - # Remove last item from list - neighbour whose DFS path we have have - # just checked. - del path[-1] - return False - - -class Config(object): - """Cdist main class to hold arbitrary data""" - - # list of paths (files and/or directories) that will be removed on finish - _paths_for_removal = [] - - @classmethod - def _register_path_for_removal(cls, path): - cls._paths_for_removal.append(path) - - @classmethod - def _remove_paths(cls): - while cls._paths_for_removal: - path = cls._paths_for_removal.pop() - if os.path.isfile(path): - os.remove(path) - else: - shutil.rmtree(path) - - def __init__(self, local, remote, dry_run=False, jobs=None, - cleanup_cmds=None, remove_remote_files_dirs=False): - - self.local = local - self.remote = remote - self._open_logger() - self.dry_run = dry_run - self.jobs = jobs - if cleanup_cmds: - self.cleanup_cmds = cleanup_cmds - else: - self.cleanup_cmds = [] - self.remove_remote_files_dirs = remove_remote_files_dirs - - self.explorer = core.Explorer(self.local.target_host, self.local, - self.remote, jobs=self.jobs, - dry_run=self.dry_run) - self.manifest = core.Manifest(self.local.target_host, self.local, - dry_run=self.dry_run) - self.code = core.Code(self.local.target_host, self.local, self.remote, - dry_run=self.dry_run) - - def _init_files_dirs(self): - """Prepare files and directories for the run""" - self.local.create_files_dirs() - self.remote.create_files_dirs() - - def _remove_remote_files_dirs(self): - """Remove remote files and directories for the run""" - self.remote.remove_files_dirs() - - def _remove_files_dirs(self): - """Remove files and directories for the run""" - if self.remove_remote_files_dirs: - self._remove_remote_files_dirs() - self.manifest.cleanup() - - @staticmethod - def hosts(source): - try: - yield from cdist.hostsource.HostSource(source)() - except (IOError, OSError, UnicodeError) as e: - raise cdist.Error( - "Error reading hosts from \'{}\': {}".format( - source, e)) - - @staticmethod - def construct_remote_exec_copy_patterns(args): - # default remote cmd patterns - args.remote_cmds_cleanup_pattern = "" - args.remote_exec_pattern = None - args.remote_copy_pattern = None - - # Determine forcing IPv4/IPv6 options if any, only for - # default remote commands. - if args.force_ipv: - force_addr_opt = " -{}".format(args.force_ipv) - else: - force_addr_opt = "" - - args_dict = vars(args) - # if remote-exec and/or remote-copy args are None then user - # didn't specify command line options nor env vars: - # inspect multiplexing options for default cdist.REMOTE_COPY/EXEC - if (args_dict['remote_copy'] is None or - args_dict['remote_exec'] is None): - mux_opts = inspect_ssh_mux_opts() - if args_dict['remote_exec'] is None: - args.remote_exec_pattern = (cdist.REMOTE_EXEC + - force_addr_opt + mux_opts) - if args_dict['remote_copy'] is None: - args.remote_copy_pattern = (cdist.REMOTE_COPY + - force_addr_opt + mux_opts) - if mux_opts: - cleanup_pattern = cdist.REMOTE_CMDS_CLEANUP_PATTERN - else: - cleanup_pattern = "" - args.remote_cmds_cleanup_pattern = cleanup_pattern - - @classmethod - def _check_and_prepare_args(cls, args): - if args.manifest == '-' and args.hostfile == '-': - raise cdist.Error(("Cannot read both, manifest and host file, " - "from stdin")) - - # if no host source is specified then read hosts from stdin - if not (args.hostfile or args.host): - args.hostfile = '-' - - if args.manifest == '-': - # read initial manifest from stdin - try: - handle, initial_manifest_temp_path = tempfile.mkstemp( - prefix='cdist.stdin.') - with os.fdopen(handle, 'w') as fd: - fd.write(sys.stdin.read()) - except (IOError, OSError) as e: - raise cdist.Error(("Creating tempfile for stdin data " - "failed: %s" % e)) - - args.manifest = initial_manifest_temp_path - atexit.register(lambda: os.remove(initial_manifest_temp_path)) - - @classmethod - def commandline(cls, args): - """Configure remote system""" - - if (args.parallel and args.parallel != 1) or args.jobs: - if args.timestamp: - cdist.log.setupTimestampingParallelLogging() - else: - cdist.log.setupParallelLogging() - elif args.timestamp: - cdist.log.setupTimestampingLogging() - log = logging.getLogger("config") - - # No new child process if only one host at a time. - if args.parallel == 1: - log.debug("Only 1 parallel process, doing it sequentially") - args.parallel = 0 - - if args.parallel: - import signal - - signal.signal(signal.SIGTERM, mp_sig_handler) - signal.signal(signal.SIGHUP, mp_sig_handler) - - cls._check_and_prepare_args(args) - - failed_hosts = [] - time_start = time.time() - - cls.construct_remote_exec_copy_patterns(args) - base_root_path = cls.create_base_root_path(args.out_path) - - hostcnt = 0 - - cfg = cdist.configuration.Configuration(args) - configuration = cfg.get_config(section='GLOBAL') - - if args.tag or args.all_tagged_hosts: - inventory.determine_default_inventory_dir(args, configuration) - if args.all_tagged_hosts: - inv_list = inventory.InventoryList( - hosts=None, istag=True, hostfile=None, - db_basedir=args.inventory_dir) - else: - inv_list = inventory.InventoryList( - hosts=args.host, istag=True, hostfile=args.hostfile, - db_basedir=args.inventory_dir, - has_all_tags=args.has_all_tags) - it = inv_list.entries() - else: - it = itertools.chain(cls.hosts(args.host), - cls.hosts(args.hostfile)) - - process_args = [] - if args.parallel: - log.trace("Processing hosts in parallel") - else: - log.trace("Processing hosts sequentially") - for entry in it: - if isinstance(entry, tuple): - # if configuring by specified tags - host = entry[0] - host_tags = entry[1] - else: - # if configuring by host then check inventory for tags - host = entry - inventory.determine_default_inventory_dir(args, configuration) - inv_list = inventory.InventoryList( - hosts=(host,), db_basedir=args.inventory_dir) - inv = tuple(inv_list.entries()) - if inv: - # host is present in inventory and has tags - host_tags = inv[0][1] - else: - # host is not present in inventory or has no tags - host_tags = None - host_base_path, hostdir = cls.create_host_base_dirs( - host, base_root_path) - log.debug("Base root path for target host \"{}\" is \"{}\"".format( - host, host_base_path)) - - hostcnt += 1 - if args.parallel: - pargs = (host, host_tags, host_base_path, hostdir, args, True, - configuration) - log.trace(("Args for multiprocessing operation " - "for host {}: {}".format(host, pargs))) - process_args.append(pargs) - else: - try: - cls.onehost(host, host_tags, host_base_path, hostdir, - args, parallel=False, - configuration=configuration) - except cdist.Error: - failed_hosts.append(host) - if args.parallel and len(process_args) == 1: - log.debug("Only 1 host for parallel processing, doing it " - "sequentially") - try: - cls.onehost(*process_args[0]) - except cdist.Error: - failed_hosts.append(host) - elif args.parallel: - log.trace("Multiprocessing start method is {}".format( - multiprocessing.get_start_method())) - log.trace(("Starting multiprocessing Pool for {} " - "parallel host operation".format(args.parallel))) - - results = mp_pool_run(cls.onehost, - process_args, - jobs=args.parallel) - log.trace(("Multiprocessing for parallel host operation " - "finished")) - log.trace("Multiprocessing for parallel host operation " - "results: %s", results) - - failed_hosts = [host for host, result in results if not result] - - time_end = time.time() - log.verbose("Total processing time for %s host(s): %s", hostcnt, - (time_end - time_start)) - - if len(failed_hosts) > 0: - raise cdist.Error("Failed to configure the following hosts: " + - " ".join(failed_hosts)) - elif not args.out_path: - # If tmp out path created then remove it, but only if no failed - # hosts. - shutil.rmtree(base_root_path) - - @classmethod - def _resolve_ssh_control_path(cls): - base_path = tempfile.mkdtemp() - cls._register_path_for_removal(base_path) - control_path = os.path.join(base_path, "s") - return control_path - - @classmethod - def _resolve_remote_cmds(cls, args): - if (args.remote_exec_pattern or - args.remote_copy_pattern or - args.remote_cmds_cleanup_pattern): - control_path = cls._resolve_ssh_control_path() - # If we constructed patterns for remote commands then there is - # placeholder for ssh ControlPath, format it and we have unique - # ControlPath for each host. - # - # If not then use args.remote_exec/copy that user specified. - if args.remote_exec_pattern: - remote_exec = args.remote_exec_pattern.format(control_path) - else: - remote_exec = args.remote_exec - if args.remote_copy_pattern: - remote_copy = args.remote_copy_pattern.format(control_path) - else: - remote_copy = args.remote_copy - if args.remote_cmds_cleanup_pattern: - remote_cmds_cleanup = args.remote_cmds_cleanup_pattern.format( - control_path) - else: - remote_cmds_cleanup = "" - return (remote_exec, remote_copy, remote_cmds_cleanup, ) - - @staticmethod - def _address_family(args): - if args.force_ipv == 4: - family = socket.AF_INET - elif args.force_ipv == 6: - family = socket.AF_INET6 - else: - family = 0 - return family - - @staticmethod - def resolve_target_addresses(host, family): - try: - return ipaddr.resolve_target_addresses(host, family) - except: # noqa - e = sys.exc_info()[1] - raise cdist.Error(("Error resolving target addresses for host '{}'" - ": {}").format(host, e)) - - @classmethod - def onehost(cls, host, host_tags, host_base_path, host_dir_name, args, - parallel, configuration, remove_remote_files_dirs=False): - """Configure ONE system. - If operating in parallel then return tuple (host, True|False, ) - so that main process knows for which host function was successful. - """ - - log = logging.getLogger(host) - - try: - remote_exec, remote_copy, cleanup_cmd = cls._resolve_remote_cmds( - args) - log.debug("remote_exec for host \"{}\": {}".format( - host, remote_exec)) - log.debug("remote_copy for host \"{}\": {}".format( - host, remote_copy)) - - family = cls._address_family(args) - log.debug("address family: {}".format(family)) - target_host = cls.resolve_target_addresses(host, family) - log.debug("target_host for host \"{}\": {}".format( - host, target_host)) - - local = cdist.exec.local.Local( - target_host=target_host, - target_host_tags=host_tags, - base_root_path=host_base_path, - host_dir_name=host_dir_name, - initial_manifest=args.manifest, - add_conf_dirs=args.conf_dir, - cache_path_pattern=args.cache_path_pattern, - quiet_mode=args.quiet, - configuration=configuration, - exec_path=sys.argv[0], - save_output_streams=args.save_output_streams) - - remote = cdist.exec.remote.Remote( - target_host=target_host, - remote_exec=remote_exec, - remote_copy=remote_copy, - base_path=args.remote_out_path, - quiet_mode=args.quiet, - archiving_mode=args.use_archiving, - configuration=configuration, - stdout_base_path=local.stdout_base_path, - stderr_base_path=local.stderr_base_path, - save_output_streams=args.save_output_streams) - - cleanup_cmds = [] - if cleanup_cmd: - cleanup_cmds.append(cleanup_cmd) - c = cls(local, remote, dry_run=args.dry_run, jobs=args.jobs, - cleanup_cmds=cleanup_cmds, - remove_remote_files_dirs=remove_remote_files_dirs) - c.run() - cls._remove_paths() - - except cdist.Error as e: - log.error(e) - if parallel: - return (host, False, ) - else: - raise - - if parallel: - return (host, True, ) - - @staticmethod - def create_base_root_path(out_path=None): - if out_path: - base_root_path = out_path - else: - base_root_path = tempfile.mkdtemp() - - return base_root_path - - @staticmethod - def create_host_base_dirs(host, base_root_path): - hostdir = cdist.str_hash(host) - host_base_path = os.path.join(base_root_path, hostdir) - - return (host_base_path, hostdir) - - def run(self): - """Do what is most often done: deploy & cleanup""" - start_time = time.time() - - self.log.info("Starting {} run".format( - 'dry' if self.dry_run else 'configuration')) - - self._init_files_dirs() - - self.explorer.run_global_explorers(self.local.global_explorer_out_path) - try: - self.manifest.run_initial_manifest(self.local.initial_manifest) - except cdist.Error as e: - which = "init" - stdout_path = os.path.join(self.local.stdout_base_path, which) - stderr_path = os.path.join(self.local.stderr_base_path, which) - raise cdist.InitialManifestError(self.local.initial_manifest, - stdout_path, stderr_path, e) - self.iterate_until_finished() - self.cleanup() - self._remove_files_dirs() - - self.local.save_cache(start_time) - self.log.info("Finished {} run in {:.2f} seconds".format( - 'dry' if self.dry_run else 'successful', - time.time() - start_time)) - - def cleanup(self): - self.log.debug("Running cleanup commands") - for cleanup_cmd in self.cleanup_cmds: - cmd = cleanup_cmd.split() - cmd.append(self.local.target_host[0]) - try: - if self.log.getEffectiveLevel() <= logging.DEBUG: - quiet_mode = False - else: - quiet_mode = True - self.local.run(cmd, return_output=False, save_output=False, - quiet_mode=quiet_mode) - except cdist.Error as e: - # Log warning but continue. - self.log.warning("Cleanup command failed: %s", e) - - def object_list(self): - """Short name for object list retrieval""" - for cdist_object in core.CdistObject.list_objects( - self.local.object_path, self.local.type_path, - self.local.object_marker_name): - if cdist_object.cdist_type.is_install: - self.log.debug(("Running in config mode, ignoring install " - "object: {0}").format(cdist_object)) - else: - yield cdist_object - - def iterate_once(self): - """ - Iterate over the objects once - helper method for - iterate_until_finished - """ - if self.jobs: - objects_changed = self._iterate_once_parallel() - else: - objects_changed = self._iterate_once_sequential() - return objects_changed - - def _iterate_once_sequential(self): - self.log.debug("Iteration in sequential mode") - objects_changed = False - - for cdist_object in self.object_list(): - if cdist_object.requirements_unfinished( - cdist_object.requirements): - """We cannot do anything for this poor object""" - continue - - if cdist_object.state == core.CdistObject.STATE_UNDEF: - """Prepare the virgin object""" - - self.object_prepare(cdist_object) - objects_changed = True - - if cdist_object.requirements_unfinished( - cdist_object.autorequire): - """The previous step created objects we depend on - - wait for them - """ - continue - - if cdist_object.state == core.CdistObject.STATE_PREPARED: - self.object_run(cdist_object) - objects_changed = True - - return objects_changed - - def _iterate_once_parallel(self): - self.log.debug("Iteration in parallel mode in {} jobs".format( - self.jobs)) - objects_changed = False - - cargo = [] - for cdist_object in self.object_list(): - if cdist_object.requirements_unfinished(cdist_object.requirements): - """We cannot do anything for this poor object""" - continue - - if cdist_object.state == core.CdistObject.STATE_UNDEF: - """Prepare the virgin object""" - - # self.object_prepare(cdist_object) - # objects_changed = True - cargo.append(cdist_object) - - n = len(cargo) - if n == 1: - self.log.debug("Only one object, preparing sequentially") - self.object_prepare(cargo[0]) - objects_changed = True - elif cargo: - self.log.trace("Multiprocessing start method is {}".format( - multiprocessing.get_start_method())) - - self.log.trace("Multiprocessing cargo: %s", cargo) - - cargo_types = set() - for c in cargo: - cargo_types.add(c.cdist_type) - self.log.trace("Multiprocessing cargo_types: %s", cargo_types) - nt = len(cargo_types) - if nt == 1: - self.log.debug(("Only one type, transferring explorers " - "sequentially")) - self.explorer.transfer_type_explorers(cargo_types.pop()) - else: - self.log.trace(("Starting multiprocessing Pool for {} " - "parallel types explorers transferring".format( - nt))) - args = [ - (ct, ) for ct in cargo_types - ] - mp_pool_run(self.explorer.transfer_type_explorers, args, - jobs=self.jobs) - self.log.trace(("Multiprocessing for parallel transferring " - "types' explorers finished")) - - self.log.trace(("Starting multiprocessing Pool for {} parallel " - "objects preparation".format(n))) - args = [ - (c, False, ) for c in cargo - ] - mp_pool_run(self.object_prepare, args, jobs=self.jobs) - self.log.trace(("Multiprocessing for parallel object " - "preparation finished")) - objects_changed = True - - del cargo[:] - for cdist_object in self.object_list(): - if cdist_object.requirements_unfinished(cdist_object.requirements): - """We cannot do anything for this poor object""" - continue - - if cdist_object.state == core.CdistObject.STATE_PREPARED: - if cdist_object.requirements_unfinished( - cdist_object.autorequire): - """The previous step created objects we depend on - - wait for them - """ - continue - - # self.object_run(cdist_object) - # objects_changed = True - - # put objects in chuncks of distinct types - # so that there is no more than one object - # of the same type in one chunk because there is a - # possibility of object's process locking which - # prevents parallel execution at remote - # and do this only for nonparallel marked types - for chunk in cargo: - for obj in chunk: - if (obj.cdist_type == cdist_object.cdist_type and - cdist_object.cdist_type.is_nonparallel): - break - else: - chunk.append(cdist_object) - break - else: - chunk = [cdist_object, ] - cargo.append(chunk) - - for chunk in cargo: - self.log.trace("Running chunk: %s", chunk) - n = len(chunk) - if n == 1: - self.log.debug("Only one object, running sequentially") - self.object_run(chunk[0]) - objects_changed = True - elif chunk: - self.log.trace("Multiprocessing start method is {}".format( - multiprocessing.get_start_method())) - self.log.trace(("Starting multiprocessing Pool for {} " - "parallel object run".format(n))) - args = [ - (c, ) for c in chunk - ] - mp_pool_run(self.object_run, args, jobs=self.jobs) - self.log.trace(("Multiprocessing for parallel object " - "run finished")) - objects_changed = True - - return objects_changed - - def _open_logger(self): - self.log = logging.getLogger(self.local.target_host[0]) - - # logger is not pickable, so remove it when we pickle - def __getstate__(self): - state = self.__dict__.copy() - if 'log' in state: - del state['log'] - return state - - # recreate logger when we unpickle - def __setstate__(self, state): - self.__dict__.update(state) - self._open_logger() - - def _validate_dependencies(self): - ''' - Build dependency graph for unfinished objects and - check for cycles. - ''' - graph = {} - for cdist_object in self.object_list(): - obj_name = cdist_object.name - if obj_name not in graph: - graph[obj_name] = [] - if cdist_object.state == cdist_object.STATE_DONE: - continue - - for requirement in cdist_object.requirements_unfinished( - cdist_object.requirements): - graph[obj_name].append(requirement.name) - - for requirement in cdist_object.requirements_unfinished( - cdist_object.autorequire): - graph[obj_name].append(requirement.name) - return graph_check_cycle(graph) - - def iterate_until_finished(self): - """ - Go through all objects and solve them - one after another - """ - - objects_changed = True - - while objects_changed: - # Check for cycles as early as possible. - has_cycle, path = self._validate_dependencies() - if has_cycle: - raise cdist.UnresolvableRequirementsError( - "Cycle detected in object dependencies:\n{}!".format( - " -> ".join(path))) - objects_changed = self.iterate_once() - - # Check whether all objects have been finished - unfinished_objects = [] - for cdist_object in self.object_list(): - if not cdist_object.state == cdist_object.STATE_DONE: - unfinished_objects.append(cdist_object) - - if unfinished_objects: - info_string = [] - - for cdist_object in unfinished_objects: - - requirement_names = [] - autorequire_names = [] - - for requirement in cdist_object.requirements_unfinished( - cdist_object.requirements): - requirement_names.append(requirement.name) - - for requirement in cdist_object.requirements_unfinished( - cdist_object.autorequire): - autorequire_names.append(requirement.name) - - requirements = "\n ".join(requirement_names) - autorequire = "\n ".join(autorequire_names) - info_string.append(("%s requires:\n" - " %s\n" - "%s ""autorequires:\n" - " %s" % ( - cdist_object.name, - requirements, cdist_object.name, - autorequire))) - - raise cdist.UnresolvableRequirementsError( - ("The requirements of the following objects could not be " - "resolved:\n%s") % ("\n".join(info_string))) - - def _handle_deprecation(self, cdist_object): - cdist_type = cdist_object.cdist_type - deprecated = cdist_type.deprecated - if deprecated is not None: - if deprecated: - self.log.warning("Type %s is deprecated: %s", cdist_type.name, - deprecated) - else: - self.log.warning("Type %s is deprecated.", cdist_type.name) - for param in cdist_object.parameters: - if param in cdist_type.deprecated_parameters: - msg = cdist_type.deprecated_parameters[param] - if msg: - format = "%s parameter of type %s is deprecated: %s" - args = [param, cdist_type.name, msg] - else: - format = "%s parameter of type %s is deprecated." - args = [param, cdist_type.name] - self.log.warning(format, *args) - - def object_prepare(self, cdist_object, transfer_type_explorers=True): - """Prepare object: Run type explorer + manifest""" - self._handle_deprecation(cdist_object) - self.log.verbose("Preparing object {}".format(cdist_object.name)) - self.log.verbose( - "Running manifest and explorers for " + cdist_object.name) - self.explorer.run_type_explorers(cdist_object, transfer_type_explorers) - try: - self.manifest.run_type_manifest(cdist_object) - self.log.trace("[ORDER_DEP] Removing order dep files for %s", - cdist_object) - cdist_object.cleanup() - cdist_object.state = core.CdistObject.STATE_PREPARED - except cdist.Error as e: - raise cdist.CdistObjectError(cdist_object, e) - - def object_run(self, cdist_object): - """Run gencode and code for an object""" - try: - self.log.verbose("Running object " + cdist_object.name) - if cdist_object.state == core.CdistObject.STATE_DONE: - raise cdist.Error(("Attempting to run an already finished " - "object: %s"), cdist_object) - - # Generate - self.log.debug("Generating code for %s" % (cdist_object.name)) - cdist_object.code_local = self.code.run_gencode_local(cdist_object) - cdist_object.code_remote = self.code.run_gencode_remote( - cdist_object) - if cdist_object.code_local or cdist_object.code_remote: - cdist_object.changed = True - - # Execute - if cdist_object.code_local or cdist_object.code_remote: - self.log.info("Processing %s" % (cdist_object.name)) - if not self.dry_run: - if cdist_object.code_local: - self.log.trace("Executing local code for %s" - % (cdist_object.name)) - self.code.run_code_local(cdist_object) - if cdist_object.code_remote: - self.log.trace("Executing remote code for %s" - % (cdist_object.name)) - self.code.transfer_code_remote(cdist_object) - self.code.run_code_remote(cdist_object) - - # Mark this object as done - self.log.trace("Finishing run of " + cdist_object.name) - cdist_object.state = core.CdistObject.STATE_DONE - except cdist.Error as e: - raise cdist.CdistObjectError(cdist_object, e) diff --git a/cdist/configuration.py b/cdist/configuration.py deleted file mode 100644 index f05a5963..00000000 --- a/cdist/configuration.py +++ /dev/null @@ -1,497 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - - -import configparser -import os -import cdist -import cdist.argparse -import re -import multiprocessing -import logging - - -class Singleton(type): - instance = None - - def __call__(cls, *args, **kwargs): - if 'singleton' in kwargs and not kwargs['singleton']: - return super(Singleton, cls).__call__(*args, **kwargs) - else: - if not cls.instance: - cls.instance = super(Singleton, cls).__call__(*args, **kwargs) - return cls.instance - - -_VERBOSITY_VALUES = ( - 'ERROR', 'WARNING', 'INFO', 'VERBOSE', 'DEBUG', 'TRACE', 'OFF', -) -_ARCHIVING_VALUES = ( - 'tar', 'tgz', 'tbz2', 'txz', 'none', -) - - -class OptionBase: - def __init__(self, name): - self.name = name - - def get_converter(self, *args, **kwargs): - raise NotImplementedError('Subclass should implement this method') - - def translate(self, val): - return val - - def update_value(self, currval, newval, update_appends=False): - '''Update current option value currval with new option value newval. - If update_appends is True and if currval and newval are lists then - resulting list contains all values in currval plus all values in - newval. Otherwise, newval is returned. - ''' - if (isinstance(currval, list) and isinstance(newval, list) and - update_appends): - rv = [] - if currval: - rv.extend(currval) - if newval: - rv.extend(newval) - if not rv: - rv = None - return rv - else: - return newval - - def should_override(self, currval, newval): - return True - - -class StringOption(OptionBase): - def __init__(self, name): - super().__init__(name) - - def get_converter(self): - def string_converter(val): - return self.translate(str(val)) - return string_converter - - def translate(self, val): - if val: - return val - else: - return None - - -class BooleanOption(OptionBase): - BOOLEAN_STATES = configparser.ConfigParser.BOOLEAN_STATES - - # If default_overrides is False then previous config value will not be - # overriden with default_value. - def __init__(self, name, default_overrides=True, default_value=True): - super().__init__(name) - self.default_overrides = default_overrides - self.default_value = default_value - - def get_converter(self): - def boolean_converter(val): - v = val.lower() - if v not in self.BOOLEAN_STATES: - raise ValueError('Invalid {} boolean value: {}'.format( - self.name, val)) - return self.translate(v) - return boolean_converter - - def translate(self, val): - return self.BOOLEAN_STATES[val] - - def should_override(self, currval, newval): - if not self.default_overrides: - return newval != self.default_value - return True - - -class IntOption(OptionBase): - def __init__(self, name): - super().__init__(name) - - def get_converter(self): - def int_converter(val): - return self.translate(int(val)) - return int_converter - - -class LowerBoundIntOption(IntOption): - def __init__(self, name, lower_bound): - super().__init__(name) - self.lower_bound = lower_bound - - def get_converter(self): - def lower_bound_converter(val): - converted = super(LowerBoundIntOption, self).get_converter()(val) - if converted < self.lower_bound: - raise ValueError("Invalid {} value: {} < {}".format( - self.name, val, self.lower_bound)) - return converted - return lower_bound_converter - - -class SpecialCasesLowerBoundIntOption(LowerBoundIntOption): - def __init__(self, name, lower_bound, special_cases_mapping): - super().__init__(name, lower_bound) - self.special_cases_mapping = special_cases_mapping - - def translate(self, val): - if val in self.special_cases_mapping: - return self.special_cases_mapping[val] - else: - return val - - -class JobsOption(SpecialCasesLowerBoundIntOption): - def __init__(self, name): - super().__init__(name, -1, {-1: multiprocessing.cpu_count()}) - - -class SelectOption(OptionBase): - def __init__(self, name, valid_values): - super().__init__(name) - self.valid_values = valid_values - - def get_converter(self): - def select_converter(val): - if val in self.valid_values: - return self.translate(val) - else: - raise ValueError("Invalid {} value: {}.".format( - self.name, val)) - return select_converter - - -class VerbosityOption(SelectOption): - def __init__(self): - super().__init__('verbosity', _VERBOSITY_VALUES) - - def translate(self, val): - name = 'VERBOSE_' + val - verbose = getattr(cdist.argparse, name) - return verbose - - -class DelimitedValuesOption(OptionBase): - def __init__(self, name, delimiter): - super().__init__(name) - self.delimiter = delimiter - - def get_converter(self): - def delimited_values_converter(val): - vals = re.split(r'(?. -# -# - -from cdist.core.cdist_type import CdistType -from cdist.core.cdist_type import InvalidTypeError -from cdist.core.cdist_object import CdistObject -from cdist.core.cdist_object import IllegalObjectIdError -from cdist.core.explorer import Explorer -from cdist.core.manifest import Manifest -from cdist.core.code import Code -from cdist.core.util import listdir -from cdist.core.util import log_level_env_var_val, log_level_name_env_var_val diff --git a/cdist/core/cdist_object.py b/cdist/core/cdist_object.py deleted file mode 100644 index 114a47e0..00000000 --- a/cdist/core/cdist_object.py +++ /dev/null @@ -1,286 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011-2015 Nico Schottelius (nico-cdist at schottelius.org) -# 2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os - -import cdist -import cdist.core -from cdist.util import fsproperty - - -class IllegalObjectIdError(cdist.Error): - def __init__(self, object_id, message=None): - self.object_id = object_id - self.message = message or 'Illegal object id' - - def __str__(self): - return '%s: %s' % (self.message, self.object_id) - - -class MissingObjectIdError(cdist.Error): - def __init__(self, type_name): - self.type_name = type_name - self.message = ("Type %s requires object id (is not a " - "singleton type)") % self.type_name - - def __str__(self): - return '%s' % (self.message) - - -class CdistObject(object): - """Represents a cdist object. - - All interaction with objects in cdist should be done through this class. - Directly accessing an object through the file system from python code is - a bug. - - """ - - # Constants for use with Object.state - STATE_UNDEF = "" - STATE_PREPARED = "prepared" - STATE_RUNNING = "running" - STATE_DONE = "done" - - def __init__(self, cdist_type, base_path, object_marker, object_id): - self.cdist_type = cdist_type # instance of Type - self.base_path = base_path - self.object_id = object_id - - self.object_marker = object_marker - - self.validate_object_id() - self.sanitise_object_id() - - self.name = self.join_name(self.cdist_type.name, self.object_id) - self.path = os.path.join(self.cdist_type.path, self.object_id, - self.object_marker) - - self.absolute_path = os.path.join(self.base_path, self.path) - self.code_local_path = os.path.join(self.path, "code-local") - self.code_remote_path = os.path.join(self.path, "code-remote") - self.parameter_path = os.path.join(self.path, "parameter") - self.stdout_path = os.path.join(self.absolute_path, "stdout") - self.stderr_path = os.path.join(self.absolute_path, "stderr") - - @classmethod - def list_objects(cls, object_base_path, type_base_path, object_marker): - """Return a list of object instances""" - for object_name in cls.list_object_names( - object_base_path, object_marker): - type_name, object_id = cls.split_name(object_name) - yield cls(cdist.core.CdistType(type_base_path, type_name), - base_path=object_base_path, - object_marker=object_marker, - object_id=object_id) - - @classmethod - def list_object_names(cls, object_base_path, object_marker): - """Return a list of object names""" - for path, dirs, files in os.walk(object_base_path): - if object_marker in dirs: - yield os.path.relpath(path, object_base_path) - - @classmethod - def list_type_names(cls, object_base_path): - """Return a list of type names""" - return cdist.core.listdir(object_base_path) - - @staticmethod - def split_name(object_name): - """split_name('__type_name/the/object_id') - -> - ('__type_name', 'the/object_id') - - Split the given object name into it's type and object_id parts. - - """ - type_name = object_name.split(os.sep)[0] - object_id = os.sep.join(object_name.split(os.sep)[1:]) - return type_name, object_id - - @staticmethod - def join_name(type_name, object_id): - """join_name('__type_name', 'the/object_id') - -> - __type_name/the/object_id' - - Join the given type_name and object_id into an object name. - - """ - return os.path.join(type_name, object_id) - - def validate_object_id(self): - if self.cdist_type.is_singleton and self.object_id: - raise IllegalObjectIdError(('singleton objects can\'t have an ' - 'object_id')) - - """Validate the given object_id and raise IllegalObjectIdError - if it's not valid. - """ - if self.object_id: - if self.object_marker in self.object_id.split(os.sep): - raise IllegalObjectIdError( - self.object_id, ('object_id may not contain ' - '\'%s\'') % self.object_marker) - if '//' in self.object_id: - raise IllegalObjectIdError( - self.object_id, 'object_id may not contain //') - - _invalid_object_ids = ('.', '/', ) - for ioid in _invalid_object_ids: - if self.object_id == ioid: - raise IllegalObjectIdError( - self.object_id, - 'object_id may not be a {}'.format(ioid)) - - # If no object_id and type is not singleton => error out - if not self.object_id and not self.cdist_type.is_singleton: - raise MissingObjectIdError(self.cdist_type.name) - - # Does not work: - # AttributeError: - # 'CdistObject' object has no attribute 'parameter_path' - - # "Type %s is not a singleton type - missing object id - # (parameters: %s)" % (self.cdist_type.name, self.parameters)) - - def object_from_name(self, object_name): - """Convenience method for creating an object instance from an object - name. - - Mainly intended to create objects when resolving requirements. - - e.g: - .object_from_name('__other/object') -> - - - """ - - base_path = self.base_path - type_path = self.cdist_type.base_path - object_marker = self.object_marker - - type_name, object_id = self.split_name(object_name) - - cdist_type = self.cdist_type.__class__(type_path, type_name) - - return self.__class__(cdist_type, base_path, object_marker, - object_id=object_id) - - def __repr__(self): - return '' % self.name - - def __eq__(self, other): - """define equality as 'name is the same'""" - return self.name == other.name - - def __hash__(self): - return hash(self.name) - - def __lt__(self, other): - return isinstance(other, self.__class__) and self.name < other.name - - def sanitise_object_id(self): - """ - Remove leading and trailing slash (one only) - """ - - # Allow empty object id for singletons - if self.object_id: - # Remove leading slash - if self.object_id[0] == '/': - self.object_id = self.object_id[1:] - - # Remove trailing slash - if self.object_id[-1] == '/': - self.object_id = self.object_id[:-1] - - # FIXME: still needed? - @property - def explorer_path(self): - """Create and return the relative path to this objects explorers""" - # create absolute path - path = os.path.join(self.absolute_path, "explorer") - if not os.path.isdir(path): - os.mkdir(path) - # return relative path - return os.path.join(self.path, "explorer") - - requirements = fsproperty.FileListProperty( - lambda obj: os.path.join(obj.absolute_path, 'require')) - autorequire = fsproperty.FileListProperty( - lambda obj: os.path.join(obj.absolute_path, 'autorequire')) - parameters = fsproperty.DirectoryDictProperty( - lambda obj: os.path.join(obj.base_path, obj.parameter_path)) - explorers = fsproperty.DirectoryDictProperty( - lambda obj: os.path.join(obj.base_path, obj.explorer_path)) - state = fsproperty.FileStringProperty( - lambda obj: os.path.join(obj.absolute_path, "state")) - source = fsproperty.FileListProperty( - lambda obj: os.path.join(obj.absolute_path, "source")) - code_local = fsproperty.FileStringProperty( - lambda obj: os.path.join(obj.base_path, obj.code_local_path)) - code_remote = fsproperty.FileStringProperty( - lambda obj: os.path.join(obj.base_path, obj.code_remote_path)) - typeorder = fsproperty.FileListProperty( - lambda obj: os.path.join(obj.absolute_path, 'typeorder')) - typeorder_dep = fsproperty.FileListProperty( - lambda obj: os.path.join(obj.absolute_path, 'typeorder_dep')) - - def cleanup(self): - try: - os.remove(os.path.join(self.absolute_path, 'typeorder_dep')) - except FileNotFoundError: - pass - - @property - def exists(self): - """Checks wether this cdist object exists on the file systems.""" - return os.path.exists(self.absolute_path) - - def create(self, allow_overwrite=False): - """Create this cdist object on the filesystem. - """ - try: - for path in (self.absolute_path, - os.path.join(self.base_path, self.parameter_path), - self.stdout_path, - self.stderr_path): - os.makedirs(path, exist_ok=allow_overwrite) - except EnvironmentError as error: - raise cdist.Error(('Error creating directories for cdist object: ' - '%s: %s') % (self, error)) - - def requirements_unfinished(self, requirements): - """Return state whether requirements are satisfied""" - - object_list = [] - - for requirement in requirements: - cdist_object = self.object_from_name(requirement) - - if not cdist_object.state == self.STATE_DONE: - object_list.append(cdist_object) - - return object_list diff --git a/cdist/core/cdist_type.py b/cdist/core/cdist_type.py deleted file mode 100644 index 4500f50d..00000000 --- a/cdist/core/cdist_type.py +++ /dev/null @@ -1,298 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import cdist -import cdist.core -import logging - - -class InvalidTypeError(cdist.Error): - def __init__(self, name, type_path, type_absolute_path): - self.name = name - self.type_path = type_path - self.type_absolute_path = type_absolute_path - self.source_path = os.path.realpath(self.type_absolute_path) - - def __str__(self): - return "Invalid type '%s' at '%s' defined at '%s'" % ( - self.type_path, self.type_absolute_path, self.source_path) - - -class CdistType(object): - """Represents a cdist type. - - All interaction with types in cdist should be done through this class. - Directly accessing an type through the file system from python code is - a bug. - - """ - - log = logging.getLogger("cdist-type") - - def __init__(self, base_path, name): - self.base_path = base_path - self.name = name - self.path = self.name - self.absolute_path = os.path.join(self.base_path, self.path) - if not os.path.isdir(self.absolute_path): - raise InvalidTypeError(self.name, self.path, self.absolute_path) - self.manifest_path = os.path.join(self.name, "manifest") - self.explorer_path = os.path.join(self.name, "explorer") - self.gencode_local_path = os.path.join(self.name, "gencode-local") - self.gencode_remote_path = os.path.join(self.name, "gencode-remote") - self.manifest_path = os.path.join(self.name, "manifest") - - self.__explorers = None - self.__required_parameters = None - self.__required_multiple_parameters = None - self.__optional_parameters = None - self.__optional_multiple_parameters = None - self.__boolean_parameters = None - self.__parameter_defaults = None - self.__deprecated_parameters = None - - def __hash__(self): - return hash(self.name) - - @classmethod - def list_types(cls, base_path): - """Return a list of type instances""" - for name in cls.list_type_names(base_path): - try: - yield cls(base_path, name) - except InvalidTypeError as e: - # ignore invalid type, log warning and continue - msg = "Ignoring invalid type '%s' at '%s' defined at '%s'" % ( - e.type_path, e.type_absolute_path, e.source_path) - cls.log.warning(msg) - # remove invalid from runtime conf dir - os.remove(e.type_absolute_path) - - @classmethod - def list_type_names(cls, base_path): - """Return a list of type names""" - return cdist.core.listdir(base_path) - - _instances = {} - - def __getnewargs__(self): - return self.base_path, self.name - - def __new__(cls, *args, **kwargs): - """only one instance of each named type may exist""" - # name is second argument - name = args[1] - if name not in cls._instances: - instance = super(CdistType, cls).__new__(cls) - cls._instances[name] = instance - # return instance so __init__ is called - return cls._instances[name] - - def __repr__(self): - return '' % self.name - - def __eq__(self, other): - return isinstance(other, self.__class__) and self.name == other.name - - def __lt__(self, other): - return isinstance(other, self.__class__) and self.name < other.name - - @property - def is_singleton(self): - """Check whether a type is a singleton.""" - return os.path.isfile(os.path.join(self.absolute_path, "singleton")) - - @property - def is_install(self): - """Check whether a type is used for installation - (if not: for configuration)""" - return os.path.isfile(os.path.join(self.absolute_path, "install")) - - @property - def is_nonparallel(self): - """Check whether a type is a non parallel, i.e. its objects - cannot run in parallel.""" - return os.path.isfile(os.path.join(self.absolute_path, "nonparallel")) - - @property - def deprecated(self): - """Get type deprecation message. If message is None then type - is not deprecated.""" - deprecated_path = os.path.join(self.absolute_path, "deprecated") - try: - with open(deprecated_path, 'r') as f: - return f.read() - except FileNotFoundError: - return None - - @property - def explorers(self): - """Return a list of available explorers""" - if not self.__explorers: - try: - self.__explorers = cdist.core.listdir( - os.path.join(self.absolute_path, "explorer")) - except EnvironmentError: - # error ignored - self.__explorers = [] - return self.__explorers - - @property - def required_parameters(self): - """Return a list of required parameters""" - if not self.__required_parameters: - parameters = [] - try: - with open(os.path.join(self.absolute_path, - "parameter", - "required")) as fd: - for line in fd: - line = line.strip() - if line: - parameters.append(line) - except EnvironmentError: - # error ignored - pass - finally: - self.__required_parameters = parameters - return self.__required_parameters - - @property - def required_multiple_parameters(self): - """Return a list of required multiple parameters""" - if not self.__required_multiple_parameters: - parameters = [] - try: - with open(os.path.join(self.absolute_path, - "parameter", - "required_multiple")) as fd: - for line in fd: - line = line.strip() - if line: - parameters.append(line) - except EnvironmentError: - # error ignored - pass - finally: - self.__required_multiple_parameters = parameters - return self.__required_multiple_parameters - - @property - def optional_parameters(self): - """Return a list of optional parameters""" - if not self.__optional_parameters: - parameters = [] - try: - with open(os.path.join(self.absolute_path, - "parameter", - "optional")) as fd: - for line in fd: - line = line.strip() - if line: - parameters.append(line) - except EnvironmentError: - # error ignored - pass - finally: - self.__optional_parameters = parameters - return self.__optional_parameters - - @property - def optional_multiple_parameters(self): - """Return a list of optional multiple parameters""" - if not self.__optional_multiple_parameters: - parameters = [] - try: - with open(os.path.join(self.absolute_path, - "parameter", - "optional_multiple")) as fd: - for line in fd: - line = line.strip() - if line: - parameters.append(line) - except EnvironmentError: - # error ignored - pass - finally: - self.__optional_multiple_parameters = parameters - return self.__optional_multiple_parameters - - @property - def boolean_parameters(self): - """Return a list of boolean parameters""" - if not self.__boolean_parameters: - parameters = [] - try: - with open(os.path.join(self.absolute_path, - "parameter", - "boolean")) as fd: - for line in fd: - line = line.strip() - if line: - parameters.append(line) - except EnvironmentError: - # error ignored - pass - finally: - self.__boolean_parameters = parameters - return self.__boolean_parameters - - @property - def parameter_defaults(self): - if not self.__parameter_defaults: - defaults = {} - try: - defaults_dir = os.path.join(self.absolute_path, - "parameter", - "default") - for name in cdist.core.listdir(defaults_dir): - try: - with open(os.path.join(defaults_dir, name)) as fd: - defaults[name] = fd.read().strip() - except EnvironmentError: - pass # Swallow errors raised by open() or read() - except EnvironmentError: - pass # Swallow error raised by os.listdir() - finally: - self.__parameter_defaults = defaults - return self.__parameter_defaults - - @property - def deprecated_parameters(self): - if not self.__deprecated_parameters: - deprecated = {} - try: - deprecated_dir = os.path.join(self.absolute_path, - "parameter", - "deprecated") - for name in cdist.core.listdir(deprecated_dir): - try: - with open(os.path.join(deprecated_dir, name)) as fd: - deprecated[name] = fd.read().strip() - except EnvironmentError: - pass # Swallow errors raised by open() or read() - except EnvironmentError: - pass # Swallow error raised by os.listdir() - finally: - self.__deprecated_parameters = deprecated - return self.__deprecated_parameters diff --git a/cdist/core/code.py b/cdist/core/code.py deleted file mode 100644 index 1550880a..00000000 --- a/cdist/core/code.py +++ /dev/null @@ -1,202 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# 2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -from . import util - - -''' -common: - runs only locally, does not need remote - - env: - PATH: prepend directory with type emulator symlinks == local.bin_path - __target_host: the target host we are working on - __target_hostname: the target hostname provided from __target_host - __target_fqdn: the target's fully qualified domain name provided from - __target_host - __cdist_manifest: full qualified path of the manifest == script - __cdist_type_base_path: full qualified path to the directory where - types are defined for use in type emulator - == local.type_path - -gencode-local - script: full qualified path to a types gencode-local - - env: - __target_host: the target host we are working on - __target_hostname: the target hostname provided from __target_host - __target_fqdn: the target's fully qualified domain name provided from - __target_host - __global: full qualified path to the global - output dir == local.out_path - __object: full qualified path to the object's dir - __object_id: the objects id - __object_fq: full qualified object id, iow: $type.name + / + object_id - __type: full qualified path to the type's dir - __files: full qualified path to the files dir - __target_host_tags: comma spearated list of host tags - - returns: string containing the generated code or None - -gencode-remote - script: full qualified path to a types gencode-remote - - env: - __target_host: the target host we are working on - __target_hostname: the target hostname provided from __target_host - __target_fqdn: the target's fully qualified domain name provided from - __target_host - __global: full qualified path to the global - output dir == local.out_path - __object: full qualified path to the object's dir - __object_id: the objects id - __object_fq: full qualified object id, iow: $type.name + / + object_id - __type: full qualified path to the type's dir - __files: full qualified path to the files dir - __target_host_tags: comma spearated list of host tags - - returns: string containing the generated code or None - - -code-local - script: full qualified path to object's code-local - - run script localy - returns: string containing the output - -code-remote - script: full qualified path to object's code-remote - - copy script to remote - - run script remotely - returns: string containing the output -''' - - -class Code(object): - """Generates and executes cdist code scripts. - - """ - # target_host is tuple (target_host, target_hostname, target_fqdn) - def __init__(self, target_host, local, remote, dry_run=False): - self.target_host = target_host - self.local = local - self.remote = remote - self.env = { - '__target_host': self.target_host[0], - '__target_hostname': self.target_host[1], - '__target_fqdn': self.target_host[2], - '__global': self.local.base_path, - '__files': self.local.files_path, - '__target_host_tags': self.local.target_host_tags, - '__cdist_log_level': util.log_level_env_var_val(local.log), - '__cdist_log_level_name': util.log_level_name_env_var_val( - local.log), - } - - if dry_run: - self.env['__cdist_dry_run'] = '1' - - def _run_gencode(self, cdist_object, which): - cdist_type = cdist_object.cdist_type - script = os.path.join(self.local.type_path, - getattr(cdist_type, 'gencode_%s_path' % which)) - if os.path.isfile(script): - env = os.environ.copy() - env.update(self.env) - env.update({ - '__type': cdist_object.cdist_type.absolute_path, - '__object': cdist_object.absolute_path, - '__object_id': cdist_object.object_id, - '__object_name': cdist_object.name, - }) - message_prefix = cdist_object.name - if self.local.save_output_streams: - stderr_path = os.path.join(cdist_object.stderr_path, - 'gencode-' + which) - with open(stderr_path, 'ba+') as stderr: - return self.local.run_script(script, env=env, - return_output=True, - message_prefix=message_prefix, - stderr=stderr) - else: - return self.local.run_script(script, env=env, - return_output=True, - message_prefix=message_prefix) - - def run_gencode_local(self, cdist_object): - """Run the gencode-local script for the given cdist object.""" - return self._run_gencode(cdist_object, 'local') - - def run_gencode_remote(self, cdist_object): - """Run the gencode-remote script for the given cdist object.""" - return self._run_gencode(cdist_object, 'remote') - - def transfer_code_remote(self, cdist_object): - """Transfer the code_remote script for the given object to the - remote side.""" - source = os.path.join(self.local.object_path, - cdist_object.code_remote_path) - destination = os.path.join(self.remote.object_path, - cdist_object.code_remote_path) - self.remote.mkdir(os.path.dirname(destination)) - self.remote.transfer(source, destination) - - def _run_code(self, cdist_object, which, env=None): - which_exec = getattr(self, which) - script = os.path.join(which_exec.object_path, - getattr(cdist_object, 'code_%s_path' % which)) - if which_exec.save_output_streams: - stderr_path = os.path.join(cdist_object.stderr_path, - 'code-' + which) - stdout_path = os.path.join(cdist_object.stdout_path, - 'code-' + which) - with open(stderr_path, 'ba+') as stderr, \ - open(stdout_path, 'ba+') as stdout: - return which_exec.run_script(script, env=env, stdout=stdout, - stderr=stderr) - else: - return which_exec.run_script(script, env=env) - - def run_code_local(self, cdist_object): - """Run the code-local script for the given cdist object.""" - # Put some env vars, to allow read only access to the parameters - # over $__object - env = os.environ.copy() - env.update(self.env) - env.update({ - '__object': cdist_object.absolute_path, - '__object_id': cdist_object.object_id, - }) - return self._run_code(cdist_object, 'local', env=env) - - def run_code_remote(self, cdist_object): - """Run the code-remote script for the given cdist object on the - remote side.""" - # Put some env vars, to allow read only access to the parameters - # over $__object which is already on the remote side - env = { - '__object': os.path.join(self.remote.object_path, - cdist_object.path), - '__object_id': cdist_object.object_id, - } - return self._run_code(cdist_object, 'remote', env=env) diff --git a/cdist/core/explorer.py b/cdist/core/explorer.py deleted file mode 100644 index 353d7681..00000000 --- a/cdist/core/explorer.py +++ /dev/null @@ -1,257 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import logging -import os -import glob -import multiprocessing -import cdist -from cdist.mputil import mp_pool_run -from . import util - -''' -common: - runs only remotely, needs local and remote to construct paths - - env: - __explorer: full qualified path to other global explorers on - remote side - -> remote.global_explorer_path - -a global explorer is: - - a script - - executed on the remote side - - returns its output as a string - - env: - - creates: nothing, returns output - -type explorer is: - - a script - - executed on the remote side for each object instance - - returns its output as a string - - env: - __object: full qualified path to the object's remote dir - __object_id: the objects id - __object_fq: full qualified object id, iow: $type.name + / + object_id - __type_explorer: full qualified path to the other type explorers on - remote side - - creates: nothing, returns output - -''' - - -class Explorer(object): - """Executes cdist explorers. - - """ - def __init__(self, target_host, local, remote, jobs=None, dry_run=False): - self.target_host = target_host - - self._open_logger() - - self.local = local - self.remote = remote - self.env = { - '__target_host': self.target_host[0], - '__target_hostname': self.target_host[1], - '__target_fqdn': self.target_host[2], - '__explorer': self.remote.global_explorer_path, - '__target_host_tags': self.local.target_host_tags, - '__cdist_log_level': util.log_level_env_var_val(self.log), - '__cdist_log_level_name': util.log_level_name_env_var_val( - self.log), - } - - if dry_run: - self.env['__cdist_dry_run'] = '1' - - self._type_explorers_transferred = [] - self.jobs = jobs - - def _open_logger(self): - self.log = logging.getLogger(self.target_host[0]) - - # global - - def list_global_explorer_names(self): - """Return a list of global explorer names.""" - return glob.glob1(self.local.global_explorer_path, '*') - - def run_global_explorers(self, out_path): - """Run global explorers and save output to files in the given - out_path directory. - - """ - self.log.verbose("Running global explorers") - self.transfer_global_explorers() - if self.jobs is None: - self._run_global_explorers_seq(out_path) - else: - self._run_global_explorers_parallel(out_path) - - def _run_global_explorer(self, explorer, out_path): - try: - path = os.path.join(out_path, explorer) - output = self.run_global_explorer(explorer) - with open(path, 'w') as fd: - fd.write(output) - except cdist.Error as e: - local_path = os.path.join(self.local.global_explorer_path, - explorer) - stderr_path = os.path.join(self.local.stderr_base_path, "remote") - raise cdist.GlobalExplorerError(explorer, local_path, stderr_path, - e) - - def _run_global_explorers_seq(self, out_path): - self.log.debug("Running global explorers sequentially") - for explorer in self.list_global_explorer_names(): - self._run_global_explorer(explorer, out_path) - - def _run_global_explorers_parallel(self, out_path): - self.log.debug("Running global explorers in {} parallel jobs".format( - self.jobs)) - self.log.trace("Multiprocessing start method is {}".format( - multiprocessing.get_start_method())) - self.log.trace(("Starting multiprocessing Pool for global " - "explorers run")) - args = [ - (e, out_path, ) for e in self.list_global_explorer_names() - ] - mp_pool_run(self._run_global_explorer, args, jobs=self.jobs) - self.log.trace(("Multiprocessing run for global explorers " - "finished")) - - # logger is not pickable, so remove it when we pickle - def __getstate__(self): - state = self.__dict__.copy() - if 'log' in state: - del state['log'] - return state - - # recreate logger when we unpickle - def __setstate__(self, state): - self.__dict__.update(state) - self._open_logger() - - def transfer_global_explorers(self): - """Transfer the global explorers to the remote side.""" - self.remote.transfer(self.local.global_explorer_path, - self.remote.global_explorer_path, - self.jobs) - self.remote.run(["chmod", "0700", - "%s/*" % (self.remote.global_explorer_path)]) - - def run_global_explorer(self, explorer): - """Run the given global explorer and return it's output.""" - script = os.path.join(self.remote.global_explorer_path, explorer) - return self.remote.run_script(script, env=self.env, return_output=True) - - # type - - def list_type_explorer_names(self, cdist_type): - """Return a list of explorer names for the given type.""" - source = os.path.join(self.local.type_path, cdist_type.explorer_path) - try: - return glob.glob1(source, '*') - except EnvironmentError: - return [] - - def run_type_explorers(self, cdist_object, transfer_type_explorers=True): - """Run the type explorers for the given object and save their output - in the object. - - """ - self.log.verbose("Running type explorers for {}".format( - cdist_object.cdist_type)) - if transfer_type_explorers: - self.log.trace("Transferring type explorers for type: %s", - cdist_object.cdist_type) - self.transfer_type_explorers(cdist_object.cdist_type) - else: - self.log.trace(("No need for transferring type explorers for " - "type: %s"), - cdist_object.cdist_type) - self.log.trace("Transferring object parameters for object: %s", - cdist_object.name) - self.transfer_object_parameters(cdist_object) - cdist_type = cdist_object.cdist_type - for explorer in self.list_type_explorer_names(cdist_type): - self.log.trace("Running type explorer '%s' for object '%s'", - explorer, cdist_object.name) - try: - output = self.run_type_explorer(explorer, cdist_object) - cdist_object.explorers[explorer] = output - except cdist.Error as e: - path = os.path.join(self.local.type_path, - cdist_type.explorer_path, - explorer) - stderr_path = os.path.join(self.local.stderr_base_path, - "remote") - raise cdist.CdistObjectExplorerError( - cdist_object, explorer, path, stderr_path, e) - - def run_type_explorer(self, explorer, cdist_object): - """Run the given type explorer for the given object and return - it's output.""" - cdist_type = cdist_object.cdist_type - env = self.env.copy() - env.update({ - '__object': os.path.join(self.remote.object_path, - cdist_object.path), - '__object_id': cdist_object.object_id, - '__object_name': cdist_object.name, - '__object_fq': cdist_object.path, - '__type_explorer': os.path.join(self.remote.type_path, - cdist_type.explorer_path) - }) - script = os.path.join(self.remote.type_path, cdist_type.explorer_path, - explorer) - return self.remote.run_script(script, env=env, return_output=True) - - def transfer_type_explorers(self, cdist_type): - """Transfer the type explorers for the given type to the - remote side.""" - if cdist_type.explorers: - if cdist_type.name in self._type_explorers_transferred: - self.log.trace(("Skipping retransfer of type explorers " - "for: %s"), cdist_type) - else: - source = os.path.join(self.local.type_path, - cdist_type.explorer_path) - destination = os.path.join(self.remote.type_path, - cdist_type.explorer_path) - self.remote.transfer(source, destination) - self.remote.run(["chmod", "0700", "%s/*" % (destination)]) - self._type_explorers_transferred.append(cdist_type.name) - - def transfer_object_parameters(self, cdist_object): - """Transfer the parameters for the given object to the remote side.""" - if cdist_object.parameters: - source = os.path.join(self.local.object_path, - cdist_object.parameter_path) - destination = os.path.join(self.remote.object_path, - cdist_object.parameter_path) - self.remote.transfer(source, destination) diff --git a/cdist/core/manifest.py b/cdist/core/manifest.py deleted file mode 100644 index 8aeaf860..00000000 --- a/cdist/core/manifest.py +++ /dev/null @@ -1,228 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import logging -import os - -import cdist -from . import util - -''' -common: - runs only locally, does not need remote - - env: - PATH: prepend directory with type emulator symlinks == local.bin_path - __target_host: the target host we are working on - __target_hostname: the target hostname provided from __target_host - __target_fqdn: the target's fully qualified domain name provided from - __target_host - __global: full qualified path to the global - output dir == local.out_path - __cdist_manifest: full qualified path of the manifest == script - __cdist_type_base_path: full qualified path to the directory where - types are defined for use in type emulator - == local.type_path - __files: full qualified path to the files dir - __target_host_tags: comma spearated list of host tags - -initial manifest is: - script: full qualified path to the initial manifest - - env: - __manifest: path to .../conf/manifest/ == local.manifest_path - - creates: new objects through type emulator - -type manifeste is: - script: full qualified path to the type manifest - - env: - __object: full qualified path to the object's dir - __object_id: the objects id - __object_fq: full qualified object id, iow: $type.name + / + object_id - __type: full qualified path to the type's dir - - creates: new objects through type emulator -''' - - -class NoInitialManifestError(cdist.Error): - """ - Display missing initial manifest: - - Display path if user given - - try to resolve link if it is a link - - Omit path if default (is a linked path in temp directory without - much help) - """ - - def __init__(self, manifest_path, user_supplied): - msg_header = "Initial manifest missing" - - if user_supplied: - if os.path.islink(manifest_path): - self.message = "%s: %s -> %s" % ( - msg_header, manifest_path, - os.path.realpath(manifest_path)) - else: - self.message = "%s: %s" % (msg_header, manifest_path) - else: - self.message = "%s" % (msg_header) - - def __str__(self): - return repr(self.message) - - -class Manifest(object): - """Executes cdist manifests. - - """ - - ORDER_DEP_STATE_NAME = 'order_dep_state' - TYPEORDER_DEP_NAME = 'typeorder_dep' - - def __init__(self, target_host, local, dry_run=False): - self.target_host = target_host - self.local = local - - self._open_logger() - - self.env = { - 'PATH': "%s:%s" % (self.local.bin_path, os.environ['PATH']), - # for use in type emulator - '__cdist_type_base_path': self.local.type_path, - '__global': self.local.base_path, - '__target_host': self.target_host[0], - '__target_hostname': self.target_host[1], - '__target_fqdn': self.target_host[2], - '__files': self.local.files_path, - '__target_host_tags': self.local.target_host_tags, - '__cdist_log_level': util.log_level_env_var_val(self.log), - '__cdist_log_level_name': util.log_level_name_env_var_val( - self.log), - } - - if dry_run: - self.env['__cdist_dry_run'] = '1' - - def _open_logger(self): - self.log = logging.getLogger(self.target_host[0]) - - # logger is not pickable, so remove it when we pickle - def __getstate__(self): - state = self.__dict__.copy() - if 'log' in state: - del state['log'] - return state - - # recreate logger when we unpickle - def __setstate__(self, state): - self.__dict__.update(state) - self._open_logger() - - def env_initial_manifest(self, initial_manifest): - env = os.environ.copy() - env.update(self.env) - env['__cdist_manifest'] = initial_manifest - env['__manifest'] = self.local.manifest_path - env['__explorer'] = self.local.global_explorer_out_path - - return env - - def run_initial_manifest(self, initial_manifest=None): - if not initial_manifest: - initial_manifest = self.local.initial_manifest - user_supplied = False - else: - user_supplied = True - - if not os.path.isfile(initial_manifest): - raise NoInitialManifestError(initial_manifest, user_supplied) - - message_prefix = "initialmanifest" - self.log.verbose("Running initial manifest " + initial_manifest) - which = "init" - if self.local.save_output_streams: - stderr_path = os.path.join(self.local.stderr_base_path, which) - stdout_path = os.path.join(self.local.stdout_base_path, which) - with open(stderr_path, 'ba+') as stderr, \ - open(stdout_path, 'ba+') as stdout: - self.local.run_script( - initial_manifest, - env=self.env_initial_manifest(initial_manifest), - message_prefix=message_prefix, - stdout=stdout, stderr=stderr) - else: - self.local.run_script( - initial_manifest, - env=self.env_initial_manifest(initial_manifest), - message_prefix=message_prefix) - - def env_type_manifest(self, cdist_object): - type_manifest = os.path.join(self.local.type_path, - cdist_object.cdist_type.manifest_path) - env = os.environ.copy() - env.update(self.env) - env.update({ - '__cdist_manifest': type_manifest, - '__manifest': self.local.manifest_path, - '__object': cdist_object.absolute_path, - '__object_id': cdist_object.object_id, - '__object_name': cdist_object.name, - '__type': cdist_object.cdist_type.absolute_path, - }) - - return env - - def run_type_manifest(self, cdist_object): - type_manifest = os.path.join(self.local.type_path, - cdist_object.cdist_type.manifest_path) - message_prefix = cdist_object.name - which = 'manifest' - if os.path.isfile(type_manifest): - self.log.verbose("Running type manifest %s for object %s", - type_manifest, cdist_object.name) - if self.local.save_output_streams: - stderr_path = os.path.join(cdist_object.stderr_path, which) - stdout_path = os.path.join(cdist_object.stdout_path, which) - with open(stderr_path, 'ba+') as stderr, \ - open(stdout_path, 'ba+') as stdout: - self.local.run_script( - type_manifest, - env=self.env_type_manifest(cdist_object), - message_prefix=message_prefix, - stdout=stdout, stderr=stderr) - else: - self.local.run_script( - type_manifest, - env=self.env_type_manifest(cdist_object), - message_prefix=message_prefix) - - def cleanup(self): - def _rm_file(fname): - try: - self.log.trace("[ORDER_DEP] Removing %s", fname) - os.remove(os.path.join(self.local.base_path, fname)) - except FileNotFoundError: - pass - _rm_file(Manifest.ORDER_DEP_STATE_NAME) - _rm_file(Manifest.TYPEORDER_DEP_NAME) diff --git a/cdist/core/util.py b/cdist/core/util.py deleted file mode 100644 index 64570d34..00000000 --- a/cdist/core/util.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import logging - - -def listdir(path='.', include_dot=False): - """os.listdir but do not include entries whose names begin with a dot('.') - if include_dot is False. - """ - if include_dot: - return os.listdir(path) - else: - return [x for x in os.listdir(path) if not _ishidden(x)] - - -def _ishidden(path): - return path[0] in ('.', b'.'[0]) - - -def log_level_env_var_val(log): - return str(log.getEffectiveLevel()) - - -def log_level_name_env_var_val(log): - return logging.getLevelName(log.getEffectiveLevel()) diff --git a/cdist/emulator.py b/cdist/emulator.py deleted file mode 100644 index 4800e2a3..00000000 --- a/cdist/emulator.py +++ /dev/null @@ -1,437 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2015 Nico Schottelius (nico-cdist at schottelius.org) -# 2012-2013 Steven Armstrong (steven-cdist at armstrong.cc) -# 2014 Daniel Heule (hda at sfs.biz) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import argparse -import logging -import os -import sys - -import cdist -from cdist import core -from cdist import flock -from cdist.core.manifest import Manifest - - -class MissingRequiredEnvironmentVariableError(cdist.Error): - def __init__(self, name): - self.name = name - self.message = ("Emulator requires the environment variable %s to be " - "setup" % self.name) - - def __str__(self): - return self.message - - -class DefaultList(list): - """Helper class to allow default values for optional_multiple parameters. - - @see https://groups.google.com/forum/#!msg/comp.lang.python/sAUvkJEDpRc/RnRymrzJVDYJ # noqa - """ - def __copy__(self): - return [] - - @classmethod - def create(cls, initial=None): - if initial: - return cls(initial.split('\n')) - - -class Emulator(object): - def __init__(self, argv, stdin=sys.stdin.buffer, env=os.environ): - self.argv = argv - self.stdin = stdin - self.env = env - - self.object_id = '' - - try: - self.global_path = self.env['__global'] - self.target_host = ( - self.env['__target_host'], - self.env['__target_hostname'], - self.env['__target_fqdn'] - ) - - # Internal variables - self.object_source = self.env['__cdist_manifest'] - self.type_base_path = self.env['__cdist_type_base_path'] - self.object_marker = self.env['__cdist_object_marker'] - - except KeyError as e: - raise MissingRequiredEnvironmentVariableError(e.args[0]) - - self.object_base_path = os.path.join(self.global_path, "object") - self.typeorder_path = os.path.join(self.global_path, "typeorder") - - self.typeorder_dep_path = os.path.join(self.global_path, - Manifest.TYPEORDER_DEP_NAME) - self.order_dep_state_path = os.path.join(self.global_path, - Manifest.ORDER_DEP_STATE_NAME) - - self.type_name = os.path.basename(argv[0]) - self.cdist_type = core.CdistType(self.type_base_path, self.type_name) - - # If set then object alreay exists and this var holds existing - # requirements. - self._existing_reqs = None - - self.__init_log() - - def run(self): - """Emulate type commands (i.e. __file and co)""" - - self.commandline() - self.init_object() - - # locking for parallel execution - with flock.Flock(self.flock_path): - self.setup_object() - self.save_stdin() - self.record_requirements() - self.record_auto_requirements() - self.log.trace("Finished %s %s" % ( - self.cdist_object.path, self.parameters)) - - def __init_log(self): - """Setup logging facility""" - - if '__cdist_log_level' in self.env: - try: - loglevel = self.env['__cdist_log_level'] - level = int(loglevel) - except ValueError: - level = logging.WARNING - else: - level = logging.WARNING - try: - logging.root.setLevel(level) - except (ValueError, TypeError): - # if invalid __cdist_log_level value - logging.root.setLevel(logging.WARNING) - - self.log = logging.getLogger(self.target_host[0]) - - def commandline(self): - """Parse command line""" - - parser = argparse.ArgumentParser(add_help=False, - argument_default=argparse.SUPPRESS) - - for parameter in self.cdist_type.required_parameters: - argument = "--" + parameter - parser.add_argument(argument, dest=parameter, action='store', - required=True) - for parameter in self.cdist_type.required_multiple_parameters: - argument = "--" + parameter - parser.add_argument(argument, dest=parameter, action='append', - required=True) - for parameter in self.cdist_type.optional_parameters: - argument = "--" + parameter - default = self.cdist_type.parameter_defaults.get(parameter, None) - parser.add_argument(argument, dest=parameter, action='store', - required=False, default=default) - for parameter in self.cdist_type.optional_multiple_parameters: - argument = "--" + parameter - default = DefaultList.create( - self.cdist_type.parameter_defaults.get( - parameter, None)) - parser.add_argument(argument, dest=parameter, action='append', - required=False, default=default) - for parameter in self.cdist_type.boolean_parameters: - argument = "--" + parameter - parser.add_argument(argument, dest=parameter, - action='store_const', const='') - - # If not singleton support one positional parameter - if not self.cdist_type.is_singleton: - parser.add_argument("object_id", nargs=1) - - # And finally parse/verify parameter - self.args = parser.parse_args(self.argv[1:]) - self.log.trace('Args: %s' % self.args) - - def init_object(self): - # Initialize object - and ensure it is not in args - if self.cdist_type.is_singleton: - self.object_id = '' - else: - self.object_id = self.args.object_id[0] - del self.args.object_id - - # Instantiate the cdist object we are defining - self.cdist_object = core.CdistObject( - self.cdist_type, self.object_base_path, self.object_marker, - self.object_id) - lockfname = ('.' + self.cdist_type.name + - self.object_id + '_' + - self.object_marker + '.lock') - lockfname = lockfname.replace(os.sep, '_') - self.flock_path = os.path.join(self.object_base_path, lockfname) - - def _object_params_in_context(self): - ''' Get cdist_object parameters dict adopted by context. - Context consists of cdist_type boolean, optional, required, - optional_multiple and required_multiple parameters. If parameter - is multiple parameter then its value is a list. - This adaptation works on cdist_object.parameters which are read from - directory based dict where it is unknown what kind of data is in - file. If there is only one line in the file it is unknown if this - is a value of required/optional parameter or if it is one value of - multiple values parameter. - ''' - params = {} - if self.cdist_object.exists: - for param in self.cdist_object.parameters: - value = ('' if param in self.cdist_type.boolean_parameters - else self.cdist_object.parameters[param]) - if ((param in self.cdist_type.required_multiple_parameters or - param in self.cdist_type.optional_multiple_parameters) and - not isinstance(value, list)): - value = [value] - params[param] = value - return params - - def setup_object(self): - # CDIST_ORDER_DEPENDENCY state - order_dep_on = self._order_dep_on() - order_dep_defined = "CDIST_ORDER_DEPENDENCY" in self.env - if not order_dep_defined and order_dep_on: - self._set_order_dep_state_off() - if order_dep_defined and not order_dep_on: - self._set_order_dep_state_on() - - # Create object with given parameters - self.parameters = {} - for key, value in vars(self.args).items(): - if value is not None: - self.parameters[key] = value - - if self.cdist_object.exists and 'CDIST_OVERRIDE' not in self.env: - # Make existing requirements a set so that we can compare it - # later with new requirements. - self._existing_reqs = set(self.cdist_object.requirements) - obj_params = self._object_params_in_context() - if obj_params != self.parameters: - errmsg = ("Object %s already exists with conflicting " - "parameters:\n%s: %s\n%s: %s" % ( - self.cdist_object.name, - " ".join(self.cdist_object.source), - obj_params, - self.object_source, - self.parameters)) - raise cdist.Error(errmsg) - else: - if self.cdist_object.exists: - self.log.debug(('Object %s override forced with ' - 'CDIST_OVERRIDE'), self.cdist_object.name) - self.cdist_object.create(True) - else: - self.cdist_object.create() - self.cdist_object.parameters = self.parameters - # record the created object in typeorder file - with open(self.typeorder_path, 'a') as typeorderfile: - print(self.cdist_object.name, file=typeorderfile) - # record the created object in parent object typeorder file - __object_name = self.env.get('__object_name', None) - depname = self.cdist_object.name - if __object_name: - parent = self.cdist_object.object_from_name(__object_name) - parent.typeorder.append(self.cdist_object.name) - if self._order_dep_on(): - self.log.trace(('[ORDER_DEP] Adding %s to typeorder dep' - ' for %s'), depname, parent.name) - parent.typeorder_dep.append(depname) - elif self._order_dep_on(): - self.log.trace('[ORDER_DEP] Adding %s to global typeorder dep', - depname) - self._add_typeorder_dep(depname) - - # Record / Append source - self.cdist_object.source.append(self.object_source) - - chunk_size = 65536 - - def _read_stdin(self): - return self.stdin.read(self.chunk_size) - - def save_stdin(self): - """If something is written to stdin, save it in the object as - $__object/stdin so it can be accessed in manifest and gencode-* - scripts. - """ - if not self.stdin.isatty(): - try: - # go directly to file instead of using CdistObject's api - # as that does not support streaming - path = os.path.join(self.cdist_object.absolute_path, 'stdin') - with open(path, 'wb') as fd: - chunk = self._read_stdin() - while chunk: - fd.write(chunk) - chunk = self._read_stdin() - except EnvironmentError as e: - raise cdist.Error('Failed to read from stdin: %s' % e) - - def record_requirement(self, requirement): - """record requirement and return recorded requirement""" - - # Raises an error, if object cannot be created - try: - cdist_object = self.cdist_object.object_from_name(requirement) - except core.cdist_type.InvalidTypeError as e: - self.log.error(("%s requires object %s, but type %s does not" - " exist. Defined at %s" % ( - self.cdist_object.name, - requirement, e.name, self.object_source))) - raise - except core.cdist_object.MissingObjectIdError: - self.log.error(("%s requires object %s without object id." - " Defined at %s" % (self.cdist_object.name, - requirement, - self.object_source))) - raise - - self.log.debug("Recording requirement %s for %s", - requirement, self.cdist_object.name) - - # Save the sanitised version, not the user supplied one - # (__file//bar => __file/bar) - # This ensures pattern matching is done against sanitised list - self.cdist_object.requirements.append(cdist_object.name) - - return cdist_object.name - - def _order_dep_on(self): - return os.path.exists(self.order_dep_state_path) - - def _set_order_dep_state_on(self): - self.log.trace('[ORDER_DEP] Setting order dep state on') - with open(self.order_dep_state_path, 'w'): - pass - - def _set_order_dep_state_off(self): - self.log.trace('[ORDER_DEP] Setting order dep state off') - # remove order dep state file - try: - os.remove(self.order_dep_state_path) - except FileNotFoundError: - pass - # remove typeorder dep file - try: - os.remove(self.typeorder_dep_path) - except FileNotFoundError: - pass - - def _add_typeorder_dep(self, name): - with open(self.typeorder_dep_path, 'a') as f: - print(name, file=f) - - def _read_typeorder_dep(self): - try: - with open(self.typeorder_dep_path, 'r') as f: - return f.readlines() - except FileNotFoundError: - return [] - - def record_requirements(self): - """Record requirements.""" - - order_dep_on = self._order_dep_on() - - # Inject the predecessor, but not if its an override - # (this would leed to an circular dependency) - if (order_dep_on and 'CDIST_OVERRIDE' not in self.env): - try: - # __object_name is the name of the object whose type - # manifest is currently executed - __object_name = self.env.get('__object_name', None) - # load object name created befor this one from typeorder - # dep file - if __object_name: - parent = self.cdist_object.object_from_name( - __object_name) - typeorder = parent.typeorder_dep - else: - typeorder = self._read_typeorder_dep() - # get the type created before this one - lastcreatedtype = typeorder[-2].strip() - if 'require' in self.env: - if lastcreatedtype not in self.env['require']: - self.env['require'] += " " + lastcreatedtype - else: - self.env['require'] = lastcreatedtype - self.log.debug(("Injecting require for " - "CDIST_ORDER_DEPENDENCY: %s for %s"), - lastcreatedtype, - self.cdist_object.name) - except IndexError: - # if no second last line, we are on the first type, - # so do not set a requirement - pass - - reqs = set() - if "require" in self.env: - requirements = self.env['require'] - self.log.debug("reqs = " + requirements) - for requirement in requirements.split(" "): - # Ignore empty fields - probably the only field anyway - if len(requirement) == 0: - continue - object_name = self.record_requirement(requirement) - reqs.add(object_name) - if self._existing_reqs is not None: - # If object exists then compare existing and new requirements. - if self._existing_reqs != reqs: - warnmsg = ("Object {} already exists with requirements:\n" - "{}: {}\n" - "{}: {}\n" - "Dependency resolver could not handle dependencies " - "as expected.".format( - self.cdist_object.name, - " ".join(self.cdist_object.source), - self._existing_reqs, - self.object_source, - reqs - )) - self.log.warning(warnmsg) - - def record_auto_requirements(self): - """An object shall automatically depend on all objects that it - defined in it's type manifest. - """ - # __object_name is the name of the object whose type manifest is - # currently executed - __object_name = self.env.get('__object_name', None) - if __object_name: - # The object whose type manifest is currently run - parent = self.cdist_object.object_from_name(__object_name) - # The object currently being defined - current_object = self.cdist_object - # As parent defined current_object it shall automatically - # depend on it. - # But only if the user hasn't said otherwise. - # Must prevent circular dependencies. - if parent.name not in current_object.requirements: - self.log.debug("Recording autorequirement %s for %s", - current_object.name, parent.name) - parent.autorequire.append(current_object.name) diff --git a/cdist/exec/__init__.py b/cdist/exec/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/cdist/exec/local.py b/cdist/exec/local.py deleted file mode 100644 index ad6c6e36..00000000 --- a/cdist/exec/local.py +++ /dev/null @@ -1,372 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011-2015 Nico Schottelius (nico-cdist at schottelius.org) -# 2016-2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import sys -import re -import subprocess -import shutil -import logging -import tempfile -import time -import datetime - -import cdist -import cdist.message -from cdist import core -import cdist.exec.util as util - -CONF_SUBDIRS_LINKED = ["explorer", "files", "manifest", "type", ] - - -class Local(object): - """Execute commands locally. - - All interaction with the local side should be done through this class. - Directly accessing the local side from python code is a bug. - - """ - def __init__(self, - target_host, - target_host_tags, - base_root_path, - host_dir_name, - exec_path=sys.argv[0], - initial_manifest=None, - add_conf_dirs=None, - cache_path_pattern=None, - quiet_mode=False, - configuration=None, - save_output_streams=True): - - self.target_host = target_host - if target_host_tags is None: - self.target_host_tags = "" - else: - self.target_host_tags = ",".join(target_host_tags) - self.hostdir = host_dir_name - self.base_path = os.path.join(base_root_path, "data") - - self.exec_path = exec_path - self.custom_initial_manifest = initial_manifest - self.cache_path_pattern = cache_path_pattern - self.quiet_mode = quiet_mode - if configuration: - self.configuration = configuration - else: - self.configuration = {} - self.save_output_streams = save_output_streams - - self._init_log() - self._init_permissions() - self.mkdir(self.base_path) - self._init_cache_dir(None) - self._init_paths() - self._init_object_marker() - self._init_conf_dirs(add_conf_dirs) - - def _init_log(self): - self.log = logging.getLogger(self.target_host[0]) - - # logger is not pickable, so remove it when we pickle - def __getstate__(self): - state = self.__dict__.copy() - if 'log' in state: - del state['log'] - return state - - # recreate logger when we unpickle - def __setstate__(self, state): - self.__dict__.update(state) - self._init_log() - - def _init_permissions(self): - # Setup file permissions using umask - os.umask(0o077) - - def _init_paths(self): - # Depending on out_path - self.bin_path = os.path.join(self.base_path, "bin") - self.conf_path = os.path.join(self.base_path, "conf") - self.global_explorer_out_path = os.path.join(self.base_path, - "explorer") - self.object_path = os.path.join(self.base_path, "object") - self.messages_path = os.path.join(self.base_path, "messages") - self.stdout_base_path = os.path.join(self.base_path, "stdout") - self.stderr_base_path = os.path.join(self.base_path, "stderr") - - # Depending on conf_path - self.files_path = os.path.join(self.conf_path, "files") - self.global_explorer_path = os.path.join(self.conf_path, "explorer") - self.manifest_path = os.path.join(self.conf_path, "manifest") - self.initial_manifest = (self.custom_initial_manifest or - os.path.join(self.manifest_path, "init")) - - self.type_path = os.path.join(self.conf_path, "type") - - def _init_object_marker(self): - self.object_marker_file = os.path.join(self.base_path, "object_marker") - - # Does not need to be secure - just randomly different from .cdist - self.object_marker_name = tempfile.mktemp(prefix='.cdist-', dir='') - - def _init_conf_dirs(self, add_conf_dirs): - self.conf_dirs = util.resolve_conf_dirs( - self.configuration, add_conf_dirs=add_conf_dirs) - - def _init_directories(self): - self.mkdir(self.conf_path) - self.mkdir(self.global_explorer_out_path) - self.mkdir(self.object_path) - self.mkdir(self.bin_path) - self.mkdir(self.cache_path) - self.mkdir(self.stdout_base_path) - self.mkdir(self.stderr_base_path) - - def create_files_dirs(self): - self._init_directories() - self._create_conf_path_and_link_conf_dirs() - self._create_messages() - self._link_types_for_emulator() - self._setup_object_marker_file() - - def _setup_object_marker_file(self): - with open(self.object_marker_file, 'w') as fd: - fd.write("%s\n" % self.object_marker_name) - - self.log.trace("Object marker %s saved in %s" % ( - self.object_marker_name, self.object_marker_file)) - - def _init_cache_dir(self, cache_dir): - home_dir = cdist.home_dir() - if cache_dir: - self.cache_path = cache_dir - elif home_dir: - self.cache_path = os.path.join(home_dir, "cache") - else: - raise cdist.Error( - "No homedir setup and no cache dir location given") - - def rmdir(self, path): - """Remove directory on the local side.""" - self.log.trace("Local rmdir: %s", path) - shutil.rmtree(path) - - def mkdir(self, path): - """Create directory on the local side.""" - self.log.trace("Local mkdir: %s", path) - os.makedirs(path, exist_ok=True) - - def run(self, command, env=None, return_output=False, message_prefix=None, - stdout=None, stderr=None, save_output=True, quiet_mode=False): - """Run the given command with the given environment. - Return the output as a string. - - """ - assert isinstance(command, (list, tuple)), ( - "list or tuple argument expected, got: %s" % command) - - quiet = self.quiet_mode or quiet_mode - do_save_output = save_output and not quiet and self.save_output_streams - - close_stdout = False - close_stderr = False - if quiet: - stderr = subprocess.DEVNULL - stdout = subprocess.DEVNULL - elif do_save_output: - if not return_output and stdout is None: - stdout = util.get_std_fd(self.stdout_base_path, 'local') - close_stdout = True - if stderr is None: - stderr = util.get_std_fd(self.stderr_base_path, 'local') - close_stderr = True - - if env is None: - env = os.environ.copy() - # Export __target_host, __target_hostname, __target_fqdn - # for use in __remote_{copy,exec} scripts - env['__target_host'] = self.target_host[0] - env['__target_hostname'] = self.target_host[1] - env['__target_fqdn'] = self.target_host[2] - - # Export for emulator - env['__cdist_object_marker'] = self.object_marker_name - - if message_prefix: - message = cdist.message.Message(message_prefix, self.messages_path) - env.update(message.env) - - self.log.trace("Local run: %s", command) - try: - if return_output: - output = subprocess.check_output( - command, env=env, stderr=stderr).decode() - else: - subprocess.check_call(command, env=env, stderr=stderr, - stdout=stdout) - output = None - - if do_save_output: - util.log_std_fd(self.log, command, stderr, 'Local stderr') - util.log_std_fd(self.log, command, stdout, 'Local stdout') - return output - except (OSError, subprocess.CalledProcessError) as error: - raise cdist.Error(" ".join(command) + ": " + str(error.args[1])) - finally: - if message_prefix: - message.merge_messages() - if close_stdout: - stdout.close() - if close_stderr: - stderr.close() - - def run_script(self, script, env=None, return_output=False, - message_prefix=None, stdout=None, stderr=None): - """Run the given script with the given environment. - Return the output as a string. - - """ - if os.access(script, os.X_OK): - self.log.debug('%s is executable, running it', script) - command = [os.path.realpath(script)] - else: - command = [self.configuration.get('local_shell', "/bin/sh"), "-e"] - self.log.debug('%s is NOT executable, running it with %s', - script, " ".join(command)) - command.append(script) - - return self.run(command, env=env, return_output=return_output, - message_prefix=message_prefix, stdout=stdout, - stderr=stderr) - - def _cache_subpath_repl(self, matchobj): - if matchobj.group(2) == '%P': - repl = str(os.getpid()) - elif matchobj.group(2) == '%h': - repl = self.hostdir - elif matchobj.group(2) == '%N': - repl = self.target_host[0] - - return matchobj.group(1) + repl - - def _cache_subpath(self, start_time=time.time(), path_format=None): - if path_format: - repl_func = self._cache_subpath_repl - cache_subpath = re.sub(r'([^%]|^)(%h|%P|%N)', repl_func, - path_format) - dt = datetime.datetime.fromtimestamp(start_time) - cache_subpath = dt.strftime(cache_subpath) - else: - cache_subpath = self.hostdir - - i = 0 - while i < len(cache_subpath) and cache_subpath[i] == os.sep: - i += 1 - cache_subpath = cache_subpath[i:] - if not cache_subpath: - cache_subpath = self.hostdir - return cache_subpath - - def save_cache(self, start_time=time.time()): - self.log.trace("cache subpath pattern: {}".format( - self.cache_path_pattern)) - cache_subpath = self._cache_subpath(start_time, - self.cache_path_pattern) - self.log.debug("cache subpath: {}".format(cache_subpath)) - destination = os.path.join(self.cache_path, cache_subpath) - self.log.trace(("Saving cache: " + self.base_path + " to " + - destination)) - - if not os.path.exists(destination): - shutil.move(self.base_path, destination) - else: - for direntry in os.listdir(self.base_path): - srcentry = os.path.join(self.base_path, direntry) - destentry = os.path.join(destination, direntry) - try: - if os.path.isdir(destentry): - shutil.rmtree(destentry) - elif os.path.exists(destentry): - os.remove(destentry) - except (PermissionError, OSError) as e: - raise cdist.Error( - "Cannot delete old cache entry {}: {}".format( - destentry, e)) - shutil.move(srcentry, destentry) - - # add target_host since cache dir can be hash-ed target_host - host_cache_path = os.path.join(destination, "target_host") - with open(host_cache_path, 'w') as hostf: - print(self.target_host[0], file=hostf) - - def _create_messages(self): - """Create empty messages""" - with open(self.messages_path, "w"): - pass - - def _create_conf_path_and_link_conf_dirs(self): - # Create destination directories - for sub_dir in CONF_SUBDIRS_LINKED: - self.mkdir(os.path.join(self.conf_path, sub_dir)) - - # Iterate over all directories and link the to the output dir - for conf_dir in self.conf_dirs: - self.log.debug("Checking conf_dir %s ..." % (conf_dir)) - for sub_dir in CONF_SUBDIRS_LINKED: - current_dir = os.path.join(conf_dir, sub_dir) - - # Allow conf dirs to contain only partial content - if not os.path.exists(current_dir): - continue - - for entry in os.listdir(current_dir): - src = os.path.abspath(os.path.join(conf_dir, - sub_dir, - entry)) - dst = os.path.join(self.conf_path, sub_dir, entry) - - # Already exists? remove and link - if os.path.exists(dst): - os.unlink(dst) - - self.log.trace("Linking %s to %s ..." % (src, dst)) - try: - os.symlink(src, dst) - except OSError as e: - raise cdist.Error("Linking %s %s to %s failed: %s" % ( - sub_dir, src, dst, e.__str__())) - - def _link_types_for_emulator(self): - """Link emulator to types""" - src = os.path.abspath(self.exec_path) - for cdist_type in core.CdistType.list_types(self.type_path): - dst = os.path.join(self.bin_path, cdist_type.name) - self.log.trace("Linking emulator: %s to %s", src, dst) - - try: - os.symlink(src, dst) - except OSError as e: - raise cdist.Error( - "Linking emulator from %s to %s failed: %s" % ( - src, dst, e.__str__())) diff --git a/cdist/exec/remote.py b/cdist/exec/remote.py deleted file mode 100644 index e0ef66ec..00000000 --- a/cdist/exec/remote.py +++ /dev/null @@ -1,329 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2011-2017 Steven Armstrong (steven-cdist at armstrong.cc) -# 2011-2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import os -import glob -import subprocess -import logging -import multiprocessing - -import cdist -import cdist.exec.util as util -import cdist.util.ipaddr as ipaddr -from cdist.mputil import mp_pool_run - - -def _wrap_addr(addr): - """If addr is IPv6 then return addr wrapped between '[' and ']', - otherwise return it intact.""" - if ipaddr.is_ipv6(addr): - return "".join(("[", addr, "]", )) - else: - return addr - - -class DecodeError(cdist.Error): - def __init__(self, command): - self.command = command - - def __str__(self): - return "Cannot decode output of " + " ".join(self.command) - - -class Remote(object): - """Execute commands remotely. - - All interaction with the remote side should be done through this class. - Directly accessing the remote side from python code is a bug. - - """ - def __init__(self, - target_host, - remote_exec, - remote_copy, - base_path=None, - quiet_mode=None, - archiving_mode=None, - configuration=None, - stdout_base_path=None, - stderr_base_path=None, - save_output_streams=True): - self.target_host = target_host - self._exec = remote_exec - self._copy = remote_copy - - if base_path: - self.base_path = base_path - else: - self.base_path = "/var/lib/cdist" - self.quiet_mode = quiet_mode - self.archiving_mode = archiving_mode - if configuration: - self.configuration = configuration - else: - self.configuration = {} - self.save_output_streams = save_output_streams - - self.stdout_base_path = stdout_base_path - self.stderr_base_path = stderr_base_path - - self.conf_path = os.path.join(self.base_path, "conf") - self.object_path = os.path.join(self.base_path, "object") - - self.type_path = os.path.join(self.conf_path, "type") - self.global_explorer_path = os.path.join(self.conf_path, "explorer") - - self._open_logger() - - self._init_env() - - def _open_logger(self): - self.log = logging.getLogger(self.target_host[0]) - - # logger is not pickable, so remove it when we pickle - def __getstate__(self): - state = self.__dict__.copy() - if 'log' in state: - del state['log'] - return state - - # recreate logger when we unpickle - def __setstate__(self, state): - self.__dict__.update(state) - self._open_logger() - - def _init_env(self): - """Setup environment for scripts.""" - # FIXME: better do so in exec functions that require it! - os.environ['__remote_copy'] = self._copy - os.environ['__remote_exec'] = self._exec - - def create_files_dirs(self): - self.rmdir(self.base_path) - self.mkdir(self.base_path) - self.run(["chmod", "0700", self.base_path]) - self.mkdir(self.conf_path) - - def remove_files_dirs(self): - self.rmdir(self.base_path) - - def rmfile(self, path): - """Remove file on the remote side.""" - self.log.trace("Remote rm: %s", path) - self.run(["rm", "-f", path]) - - def rmdir(self, path): - """Remove directory on the remote side.""" - self.log.trace("Remote rmdir: %s", path) - self.run(["rm", "-rf", path]) - - def mkdir(self, path): - """Create directory on the remote side.""" - self.log.trace("Remote mkdir: %s", path) - self.run(["mkdir", "-p", path]) - - def extract_archive(self, path, mode): - """Extract archive path on the remote side.""" - import cdist.autil as autil - - self.log.trace("Remote extract archive: %s", path) - command = ["tar", "-x", "-m", "-C", ] - directory = os.path.dirname(path) - command.append(directory) - xopt = autil.get_extract_option(mode) - if xopt: - command.append(xopt) - command.append("-f") - command.append(path) - self.run(command) - - def _transfer_file(self, source, destination): - command = self._copy.split() - command.extend([source, '{0}:{1}'.format( - _wrap_addr(self.target_host[0]), destination)]) - self._run_command(command) - - def transfer(self, source, destination, jobs=None): - """Transfer a file or directory to the remote side.""" - self.log.trace("Remote transfer: %s -> %s", source, destination) - # self.rmdir(destination) - if os.path.isdir(source): - self.mkdir(destination) - used_archiving = False - if self.archiving_mode: - self.log.trace("Remote transfer in archiving mode") - import cdist.autil as autil - - # create archive - tarpath, fcnt = autil.tar(source, self.archiving_mode) - if tarpath is None: - self.log.trace(("Files count {} is lower than {} limit, " - "skipping archiving").format( - fcnt, autil.FILES_LIMIT)) - else: - self.log.trace(("Archiving mode, tarpath: %s, file count: " - "%s"), tarpath, fcnt) - # get archive name - tarname = os.path.basename(tarpath) - self.log.trace("Archiving mode tarname: %s", tarname) - # archive path at the remote - desttarpath = os.path.join(destination, tarname) - self.log.trace( - "Archiving mode desttarpath: %s", desttarpath) - # transfer archive to the remote side - self.log.trace("Archiving mode: transferring") - self._transfer_file(tarpath, desttarpath) - # extract archive at the remote - self.log.trace("Archiving mode: extracting") - self.extract_archive(desttarpath, self.archiving_mode) - # remove remote archive - self.log.trace("Archiving mode: removing remote archive") - self.rmfile(desttarpath) - # remove local archive - self.log.trace("Archiving mode: removing local archive") - os.remove(tarpath) - used_archiving = True - if not used_archiving: - self._transfer_dir(source, destination) - elif jobs: - raise cdist.Error("Source {} is not a directory".format(source)) - else: - self._transfer_file(source, destination) - - def _transfer_dir(self, source, destination): - command = self._copy.split() - for f in glob.glob1(source, '*'): - path = os.path.join(source, f) - command.extend([path]) - command.extend(['{0}:{1}'.format( - _wrap_addr(self.target_host[0]), destination)]) - self._run_command(command) - - def run_script(self, script, env=None, return_output=False, stdout=None, - stderr=None): - """Run the given script with the given environment on the remote side. - Return the output as a string. - - """ - - command = [ - self.configuration.get('remote_shell', "/bin/sh"), - "-e" - ] - command.append(script) - - return self.run(command, env=env, return_output=return_output, - stdout=stdout, stderr=stderr) - - def run(self, command, env=None, return_output=False, stdout=None, - stderr=None): - """Run the given command with the given environment on the remote side. - Return the output as a string. - - """ - # prefix given command with remote_exec - cmd = self._exec.split() - cmd.append(self.target_host[0]) - - # can't pass environment to remote side, so prepend command with - # variable declarations - - # cdist command prepended with variable assignments expects - # POSIX shell (bourne, bash) at the remote as user default shell. - # If remote user shell isn't POSIX shell, but for e.g. csh/tcsh - # then these var assignments are not var assignments for this - # remote shell, it tries to execute it as a command and fails. - # So really do this by default: - # /bin/sh -c 'export ; command' - # so that constructed remote command isn't dependent on remote - # shell. Do this only if env is not None. env breaks this. - # Explicitly use /bin/sh, because var assignments assume POSIX - # shell already. - # This leaves the posibility to write script that needs to be run - # remotely in e.g. csh and setting up CDIST_REMOTE_SHELL to e.g. - # /bin/csh will execute this script in the right way. - if env: - remote_env = [" export %s=%s;" % item for item in env.items()] - string_cmd = ("/bin/sh -c '" + " ".join(remote_env) + - " ".join(command) + "'") - cmd.append(string_cmd) - else: - cmd.extend(command) - return self._run_command(cmd, env=env, return_output=return_output, - stdout=stdout, stderr=stderr) - - def _run_command(self, command, env=None, return_output=False, stdout=None, - stderr=None): - """Run the given command with the given environment. - Return the output as a string. - - """ - assert isinstance(command, (list, tuple)), ( - "list or tuple argument expected, got: %s" % command) - - if return_output and stdout is not subprocess.PIPE: - self.log.debug("return_output is True, ignoring stdout") - - close_stdout = False - close_stderr = False - if self.save_output_streams: - if not return_output and stdout is None: - stdout = util.get_std_fd(self.stdout_base_path, 'remote') - close_stdout = True - if stderr is None: - stderr = util.get_std_fd(self.stderr_base_path, 'remote') - close_stderr = True - - # export target_host, target_hostname, target_fqdn - # for use in __remote_{exec,copy} scripts - os_environ = os.environ.copy() - os_environ['__target_host'] = self.target_host[0] - os_environ['__target_hostname'] = self.target_host[1] - os_environ['__target_fqdn'] = self.target_host[2] - - self.log.trace("Remote run: %s", command) - try: - if self.quiet_mode: - stderr = subprocess.DEVNULL - close_stderr = False - if return_output: - output = subprocess.check_output(command, env=os_environ, - stderr=stderr).decode() - else: - subprocess.check_call(command, env=os_environ, stdout=stdout, - stderr=stderr) - output = None - - if self.save_output_streams: - util.log_std_fd(self.log, command, stderr, 'Remote stderr') - util.log_std_fd(self.log, command, stdout, 'Remote stdout') - - return output - except (OSError, subprocess.CalledProcessError) as error: - raise cdist.Error(" ".join(command) + ": " + str(error.args[1])) - except UnicodeDecodeError: - raise DecodeError(command) - finally: - if close_stdout: - stdout.close() - if close_stderr: - stderr.close() diff --git a/cdist/exec/util.py b/cdist/exec/util.py deleted file mode 100644 index 9787f431..00000000 --- a/cdist/exec/util.py +++ /dev/null @@ -1,209 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2016-2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import subprocess -import os -from tempfile import TemporaryFile - -import cdist -import cdist.configuration - - -# IMPORTANT: -# with the code below in python 3.5 when command is executed and error -# occurs then stderr is not captured. -# As it seems from documentation, it is only captured when using -# subprocess.run method with stderr=subprocess.PIPE and is captured -# into CompletedProcess resulting object or into CalledProcessError -# in case of error (only if specified capturing). -# -# If using PIPE then the run is slow. run method uses communicate method -# and internally it uses buffering. -# -# For now we will use capturing only stdout. stderr is written directly to -# stderr from child process. -# -# STDERR_UNSUPPORTED = '' -# -# -# def call_get_output(command, env=None): -# """Run the given command with the given environment. -# Return the tuple of stdout and stderr output as a byte strings. -# """ -# -# assert isinstance(command, (list, tuple)), ( -# "list or tuple argument expected, got: {}".format(command)) -# -# if sys.version_info >= (3, 5): -# return call_get_out_err(command, env) -# else: -# return (call_get_stdout(command, env), STDERR_UNSUPPORTED) -# -# -# def handle_called_process_error(err, command): -# if sys.version_info >= (3, 5): -# errout = err.stderr -# else: -# errout = STDERR_UNSUPPORTED -# raise cdist.Error("Command failed: " + " ".join(command) + -# " with returncode: {} and stdout: {}, stderr: {}".format( -# err.returncode, err.output, errout)) -# -# -# def call_get_stdout(command, env=None): -# """Run the given command with the given environment. -# Return the stdout output as a byte string, stderr is ignored. -# """ -# assert isinstance(command, (list, tuple)), ( -# "list or tuple argument expected, got: {}".format(command)) -# -# with TemporaryFile() as fout: -# subprocess.check_call(command, env=env, stdout=fout) -# fout.seek(0) -# output = fout.read() -# -# return output -# -# -# def call_get_out_err(command, env=None): -# """Run the given command with the given environment. -# Return the tuple of stdout and stderr output as a byte strings. -# """ -# assert isinstance(command, (list, tuple)), ( -# "list or tuple argument expected, got: {}".format(command)) -# -# with TemporaryFile() as fout, TemporaryFile() as ferr: -# subprocess.check_call(command, env=env, -# stdout=fout, stderr=ferr) -# fout.seek(0) -# ferr.seek(0) -# output = (fout.read(), ferr.read()) -# -# return output - -# -# The code below with bufsize=0 does not work either, communicate -# internally uses buffering. It works in case of error, but if everything -# is ok and there is no output in stderr then execution is very very slow. -# -# def _call_get_out_err(command, env=None): -# """Run the given command with the given environment. -# Return the tuple of stdout and stderr output as a byte strings. -# """ -# assert isinstance(command, (list, tuple)), ( -# "list or tuple argument expected, got: {}".format(command)) -# -# result = subprocess.run(command, env=env, bufsize=0, -# stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True) -# -# return (result.stdout, result.stderr) - - -# Currently not used. -def call_get_output(command, env=None, stderr=None): - """Run the given command with the given environment. - Return the tuple of stdout and stderr output as a byte strings. - """ - - assert isinstance(command, (list, tuple)), ( - "list or tuple argument expected, got: {}".format(command)) - return (_call_get_stdout(command, env, stderr), None) - - -# Currently not used. -def handle_called_process_error(err, command): - # Currently, stderr is not captured. - # errout = None - # raise cdist.Error("Command failed: " + " ".join(command) + - # (" with returncode: {}\n" - # "stdout: {}\n" - # "stderr: {}").format( - # err.returncode, err.output, errout)) - if err.output: - output = err.output - else: - output = '' - raise cdist.Error(("Command failed: '{}'\n" - "return code: {}\n" - "---- BEGIN stdout ----\n" - "{}" + ("\n" if output else "") + - "---- END stdout ----").format( - " ".join(command), err.returncode, output)) - - -# Currently not used. -def _call_get_stdout(command, env=None, stderr=None): - """Run the given command with the given environment. - Return the stdout output as a byte string, stderr is ignored. - """ - assert isinstance(command, (list, tuple)), ( - "list or tuple argument expected, got: {}".format(command)) - - with TemporaryFile() as fout: - subprocess.check_call(command, env=env, stdout=fout, stderr=stderr) - fout.seek(0) - output = fout.read() - - return output - - -def get_std_fd(base_path, name): - path = os.path.join(base_path, name) - stdfd = open(path, 'ba+') - return stdfd - - -def log_std_fd(log, command, stdfd, prefix): - if stdfd is not None and stdfd != subprocess.DEVNULL: - stdfd.seek(0, 0) - log.trace("Command: {}; {}: {}".format( - command, prefix, stdfd.read().decode())) - - -def dist_conf_dir(): - return os.path.abspath(os.path.join(os.path.dirname(cdist.__file__), - "conf")) - - -def resolve_conf_dirs(configuration, add_conf_dirs): - conf_dirs = [] - - conf_dirs.append(dist_conf_dir()) - - home_dir = cdist.home_dir() - if home_dir: - conf_dirs.append(home_dir) - - if 'conf_dir' in configuration: - x = configuration['conf_dir'] - if x: - conf_dirs.extend(x) - - if add_conf_dirs: - conf_dirs.extend(add_conf_dirs) - conf_dirs = set(conf_dirs) - return conf_dirs - - -def resolve_conf_dirs_from_config_and_args(args): - cfg = cdist.configuration.Configuration(args) - configuration = cfg.get_config(section='GLOBAL') - return resolve_conf_dirs(configuration, args.conf_dir) diff --git a/cdist/flock.py b/cdist/flock.py deleted file mode 100644 index d8bac916..00000000 --- a/cdist/flock.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import fcntl -import logging -import os - - -log = logging.getLogger('cdist-flock') - - -class Flock(): - def __init__(self, path): - self.path = path - self.lockfd = None - - def flock(self): - log.debug('Acquiring lock on %s', self.path) - self.lockfd = open(self.path, 'w+') - fcntl.flock(self.lockfd, fcntl.LOCK_EX) - log.debug('Acquired lock on %s', self.path) - - def funlock(self): - log.debug('Releasing lock on %s', self.path) - fcntl.flock(self.lockfd, fcntl.LOCK_UN) - self.lockfd.close() - self.lockfd = None - try: - os.remove(self.path) - except FileNotFoundError: - pass - log.debug('Released lock on %s', self.path) - - def __enter__(self): - self.flock() - return self - - def __exit__(self, *args): - self.funlock() - return False diff --git a/cdist/hostsource.py b/cdist/hostsource.py deleted file mode 100644 index a7b8f0b4..00000000 --- a/cdist/hostsource.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2016-2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import fileinput - - -def hostfile_process_line(line, strip_func=str.strip): - """Return entry from read line or None if no entry present.""" - if not line: - return None - # remove comment if present - comment_index = line.find('#') - if comment_index >= 0: - foo = line[:comment_index] - else: - foo = line - # remove leading and trailing whitespaces - foo = strip_func(foo) - # skip empty lines - if foo: - return foo - else: - return None - - -class HostSource(object): - """ - Host source object. - Source can be a sequence or filename (stdin if \'-\'). - In case of filename each line represents one host. - """ - def __init__(self, source): - self.source = source - - def _process_file_line(self, line): - return hostfile_process_line(line) - - def _hosts_from_sequence(self): - for host in self.source: - yield host - - def _hosts_from_file(self): - for line in fileinput.input(files=(self.source)): - host = self._process_file_line(line) - if host: - yield host - - def hosts(self): - if not self.source: - return - - if isinstance(self.source, str): - yield from self._hosts_from_file() - else: - yield from self._hosts_from_sequence() - - def __call__(self): - yield from self.hosts() diff --git a/cdist/info.py b/cdist/info.py deleted file mode 100644 index b896a3d1..00000000 --- a/cdist/info.py +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2019-2020 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import cdist -import cdist.configuration -import cdist.core -import cdist.exec.util as util -import os -import glob -import fnmatch - - -class Info(object): - - def __init__(self, conf_dirs, args): - self.conf_dirs = conf_dirs - self.all = args.all - self.display_global_explorers = args.global_explorers - self.display_types = args.types - if not self.display_global_explorers and not self.display_types: - self.all = True - self.fixed_string = args.fixed_string - self._setup_glob_pattern(args.pattern) - self.full = args.full - - def _setup_glob_pattern(self, pattern): - if pattern is None: - self.glob_pattern = '*' - elif ('?' in pattern or '*' in pattern or '[' in pattern or - self.fixed_string): - self.glob_pattern = pattern - else: - self.glob_pattern = '*' + pattern + '*' - - @classmethod - def commandline(cls, args): - conf_dirs = util.resolve_conf_dirs_from_config_and_args(args) - c = cls(conf_dirs, args) - c.run() - - def _get_global_explorers(self, conf_path): - rv = [] - global_explorer_path = os.path.join(conf_path, "explorer", - self.glob_pattern) - if self.fixed_string: - if os.path.exists(global_explorer_path): - rv.append(global_explorer_path) - else: - for explorer in glob.glob(global_explorer_path): - rv.append(explorer) - return rv - - def _should_display_type(self, dir_entry): - if not dir_entry.is_dir(): - return False - if self.glob_pattern is None: - return True - if self.fixed_string: - return dir_entry.name == self.glob_pattern - else: - return fnmatch.fnmatch(dir_entry.name, self.glob_pattern) - - def _get_types(self, conf_path): - rv = [] - types_path = os.path.join(conf_path, "type") - if not os.path.exists(types_path): - return rv - with os.scandir(types_path) as it: - for entry in it: - if self._should_display_type(entry): - rv.append(entry.path) - return rv - - def _display_details(self, title, details, default_values=None, - deprecated=None): - if not details: - return - if isinstance(details, bool): - print("\t{}: {}".format(title, 'yes' if details else 'no')) - elif isinstance(details, str): - print("\t{}: {}".format(title, details)) - elif isinstance(details, list): - dv = dict(default_values) if default_values else {} - dp = dict(deprecated) if deprecated else {} - - print("\t{}:".format(title)) - for x in sorted(details): - print("\t\t{}".format(x), end='') - has_default = x in dv - is_deprecated = x in dp - need_comma = False - if has_default or is_deprecated: - print(" (", end='') - if has_default: - print("default: {}".format(dv[x]), end='') - need_comma = True - if is_deprecated: - print("{}deprecated".format(', ' if need_comma else ''), - end='') - if has_default or is_deprecated: - print(")", end='') - print() - - def _display_type_parameters(self, cdist_type): - self._display_details("required parameters", - cdist_type.required_parameters, - default_values=cdist_type.parameter_defaults, - deprecated=cdist_type.deprecated_parameters) - self._display_details("required multiple parameters", - cdist_type.required_multiple_parameters, - default_values=cdist_type.parameter_defaults, - deprecated=cdist_type.deprecated_parameters) - self._display_details("optional parameters", - cdist_type.optional_parameters, - default_values=cdist_type.parameter_defaults, - deprecated=cdist_type.deprecated_parameters) - self._display_details("optional multiple parameters", - cdist_type.optional_multiple_parameters, - default_values=cdist_type.parameter_defaults, - deprecated=cdist_type.deprecated_parameters) - self._display_details("boolean parameters", - cdist_type.boolean_parameters, - default_values=cdist_type.parameter_defaults, - deprecated=cdist_type.deprecated_parameters) - - def _display_type_characteristics(self, cdist_type): - characteristics = [] - if cdist_type.is_install: - characteristics.append('install') - else: - characteristics.append('config') - if cdist_type.is_singleton: - characteristics.append('singleton') - if cdist_type.is_nonparallel: - characteristics.append('nonparallel') - else: - characteristics.append('parallel') - if cdist_type.deprecated is not None: - characteristics.append('deprecated') - print("\t{}".format(', '.join(characteristics))) - - def _display_type_details(self, type_path): - dirname, basename = os.path.split(type_path) - cdist_type = cdist.core.CdistType(dirname, basename) - - self._display_type_characteristics(cdist_type) - self._display_type_parameters(cdist_type) - - def run(self): - rv = [] - for cp in self.conf_dirs: - conf_path = os.path.expanduser(cp) - if self.all or self.display_global_explorers: - rv.extend((x, 'E', ) for x in self._get_global_explorers( - conf_path)) - if self.all or self.display_types: - rv.extend((x, 'T', ) for x in self._get_types(conf_path)) - rv = sorted(rv, key=lambda x: x[0]) - for x, t in rv: - print(x) - if self.full and t == 'T': - self._display_type_details(x) diff --git a/cdist/install.py b/cdist/install.py deleted file mode 100644 index b88ad016..00000000 --- a/cdist/install.py +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2013 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import cdist.config -import cdist.core - - -class Install(cdist.config.Config): - def object_list(self): - """Short name for object list retrieval. - In install mode, we only care about install objects. - """ - for cdist_object in cdist.core.CdistObject.list_objects( - self.local.object_path, self.local.type_path, - self.local.object_marker_name): - if cdist_object.cdist_type.is_install: - yield cdist_object - else: - self.log.debug("Running in install mode, ignoring non install" - "object: {0}".format(cdist_object)) diff --git a/cdist/integration.py b/cdist/integration.py deleted file mode 100644 index ee742cc5..00000000 --- a/cdist/integration.py +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import cdist -# needed for cdist.argparse -import cdist.banner -import cdist.config -import cdist.install -import cdist.shell -import cdist.inventory -import cdist.argparse -import cdist.log -import cdist.config -import cdist.install -import sys -import os -import os.path -import collections -import uuid -import shutil - - -def find_cdist_exec_in_path(): - """Search cdist executable in os.get_exec_path() entries. - """ - for path in os.get_exec_path(): - cdist_path = os.path.join(path, 'cdist') - if os.access(cdist_path, os.X_OK): - return cdist_path - return None - - -_mydir = os.path.dirname(__file__) - - -def find_cdist_exec(): - """Search cdist executable starting from local lib directory. - - Detect if ../scripts/cdist (from local lib direcotry) exists and - if it is executable. If not then try to find cdist exec path in - os.get_exec_path() entries. If no cdist path is found rasie - cdist.Error. - """ - cdist_path = os.path.abspath(os.path.join(_mydir, '..', 'scripts', - 'cdist')) - if os.access(cdist_path, os.X_OK): - return cdist_path - cdist_path = find_cdist_exec_in_path() - if not cdist_path: - raise cdist.Error('Cannot find cdist executable from local lib ' - 'directory: {}, nor in PATH: {}.'.format( - _mydir, os.environ.get('PATH'))) - return cdist_path - - -ACTION_CONFIG = 'config' -ACTION_INSTALL = 'install' - - -def _process_hosts_simple(action, host, manifest, verbose, - cdist_path=None): - """Perform cdist action ('config' or 'install') on hosts with specified - manifest using default other cdist options. host parameter can be a - string or iterbale of hosts. verbose is a desired verbosity level - which defaults to VERBOSE_INFO. cdist_path is path to cdist executable, - if it is None then integration lib tries to find it. - """ - if isinstance(host, str): - hosts = [host, ] - elif isinstance(host, collections.Iterable): - hosts = host - else: - raise cdist.Error('Invalid host argument: {}'.format(host)) - - # Setup sys.argv[0] since cdist relies on command line invocation. - if not cdist_path: - cdist_path = find_cdist_exec() - sys.argv[0] = cdist_path - - cname = action.title() - module = getattr(cdist, action) - theclass = getattr(module, cname) - - # Build argv for cdist and use argparse for argument parsing. - remote_out_dir_base = os.path.join('/', 'var', 'lib', 'cdist') - uid = str(uuid.uuid1()) - out_dir = remote_out_dir_base + uid - cache_path_pattern = '%h-' + uid - argv = [action, '-i', manifest, '-r', out_dir, '-C', cache_path_pattern, ] - for i in range(verbose): - argv.append('-v') - for x in hosts: - argv.append(x) - - parser, cfg = cdist.argparse.parse_and_configure(argv, singleton=False) - args = cfg.get_args() - configuration = cfg.get_config(section='GLOBAL') - - theclass.construct_remote_exec_copy_patterns(args) - base_root_path = theclass.create_base_root_path(None) - - for target_host in args.host: - host_base_path, hostdir = theclass.create_host_base_dirs( - target_host, base_root_path) - theclass.onehost(target_host, None, host_base_path, hostdir, args, - parallel=False, configuration=configuration, - remove_remote_files_dirs=True) - shutil.rmtree(base_root_path) - - -def configure_hosts_simple(host, manifest, - verbose=cdist.argparse.VERBOSE_INFO, - cdist_path=None): - """Configure hosts with specified manifest using default other cdist - options. host parameter can be a string or iterbale of hosts. verbose - is a desired verbosity level which defaults to VERBOSE_INFO. - cdist_path is path to cdist executable, if it is None then integration - lib tries to find it. - """ - _process_hosts_simple(action=ACTION_CONFIG, host=host, - manifest=manifest, verbose=verbose, - cdist_path=cdist_path) - - -def install_hosts_simple(host, manifest, - verbose=cdist.argparse.VERBOSE_INFO, - cdist_path=None): - """Install hosts with specified manifest using default other cdist - options. host parameter can be a string or iterbale of hosts. verbose - is a desired verbosity level which defaults to VERBOSE_INFO. - cdist_path is path to cdist executable, if it is None then integration - lib tries to find it. - """ - _process_hosts_simple(action=ACTION_INSTALL, host=host, - manifest=manifest, verbose=verbose, - cdist_path=cdist_path) diff --git a/cdist/inventory.py b/cdist/inventory.py deleted file mode 100644 index 138a2034..00000000 --- a/cdist/inventory.py +++ /dev/null @@ -1,405 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2016 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import cdist -import logging -import os -import os.path -import itertools -import sys -import cdist.configuration -from cdist.hostsource import hostfile_process_line - -DIST_INVENTORY_DB_NAME = "inventory" - -dist_inventory_db = os.path.abspath(os.path.join( - os.path.dirname(cdist.__file__), DIST_INVENTORY_DB_NAME)) - - -def determine_default_inventory_dir(args, configuration): - # The order of inventory dir setting by decreasing priority - # 1. inventory_dir from configuration - # 2. ~/.cdist/inventory if HOME env var is set - # 3. distribution inventory directory - inventory_dir_set = False - if 'inventory_dir' in configuration: - val = configuration['inventory_dir'] - if val: - args.inventory_dir = val - inventory_dir_set = True - if not inventory_dir_set: - home = cdist.home_dir() - if home: - args.inventory_dir = os.path.join(home, DIST_INVENTORY_DB_NAME) - else: - args.inventory_dir = dist_inventory_db - - -def contains_all(big, little): - """Return True if big contains all elements from little, - False otherwise. - """ - return set(little).issubset(set(big)) - - -def contains_any(big, little): - """Return True if big contains any element from little, - False otherwise. - """ - for x in little: - if x in big: - return True - return False - - -def check_always_true(x, y): - return True - - -def rstrip_nl(s): - '''str.rstrip "\n" from s''' - return str.rstrip(s, "\n") - - -class Inventory(object): - """Inventory main class""" - - def __init__(self, db_basedir=dist_inventory_db, configuration=None): - self.db_basedir = db_basedir - if configuration: - self.configuration = configuration - else: - self.configuration = {} - self.log = logging.getLogger("inventory") - self.init_db() - - def init_db(self): - self.log.trace("Init db: {}".format(self.db_basedir)) - if not os.path.exists(self.db_basedir): - os.makedirs(self.db_basedir, exist_ok=True) - elif not os.path.isdir(self.db_basedir): - raise cdist.Error(("Invalid inventory db basedir \'{}\'," - " must be a directory").format(self.db_basedir)) - - @staticmethod - def strlist_to_list(slist): - if slist: - result = [x for x in slist.split(',') if x] - else: - result = [] - return result - - def _input_values(self, source): - """Yield input values from source. - Source can be a sequence or filename (stdin if '-'). - In case of filename each line represents one input value. - """ - if isinstance(source, str): - import fileinput - try: - with fileinput.FileInput(files=(source)) as f: - for x in f: - result = hostfile_process_line(x, strip_func=rstrip_nl) - if result: - yield result - except (IOError, OSError) as e: - raise cdist.Error("Error reading from \'{}\'".format( - source)) - else: - if source: - for x in source: - if x: - yield x - - def _host_path(self, host): - hostpath = os.path.join(self.db_basedir, host) - return hostpath - - def _all_hosts(self): - return os.listdir(self.db_basedir) - - def _check_host(self, hostpath): - if not os.path.exists(hostpath): - return False - else: - if not os.path.isfile(hostpath): - raise cdist.Error(("Host path \'{}\' exists, but is not" - " a valid file").format(hostpath)) - return True - - def _read_host_tags(self, hostpath): - result = set() - with open(hostpath, "rt") as f: - for tag in f: - tag = tag.rstrip("\n") - if tag: - result.add(tag) - return result - - def _get_host_tags(self, host): - hostpath = self._host_path(host) - if self._check_host(hostpath): - return self._read_host_tags(hostpath) - else: - return None - - def _write_host_tags(self, host, tags): - hostpath = self._host_path(host) - if self._check_host(hostpath): - with open(hostpath, "wt") as f: - for tag in tags: - f.write("{}\n".format(tag)) - return True - else: - return False - - @classmethod - def commandline(cls, args): - """Manipulate inventory db""" - log = logging.getLogger("inventory") - if 'taglist' in args: - args.taglist = cls.strlist_to_list(args.taglist) - - cfg = cdist.configuration.Configuration(args) - configuration = cfg.get_config(section='GLOBAL') - determine_default_inventory_dir(args, configuration) - - log.debug("Using inventory: {}".format(args.inventory_dir)) - log.trace("Inventory args: {}".format(vars(args))) - log.trace("Inventory command: {}".format(args.subcommand)) - - if args.subcommand == "list": - c = InventoryList(hosts=args.host, istag=args.tag, - hostfile=args.hostfile, - db_basedir=args.inventory_dir, - list_only_host=args.list_only_host, - has_all_tags=args.has_all_tags, - configuration=configuration) - elif args.subcommand == "add-host": - c = InventoryHost(hosts=args.host, hostfile=args.hostfile, - db_basedir=args.inventory_dir, - configuration=configuration) - elif args.subcommand == "del-host": - c = InventoryHost(hosts=args.host, hostfile=args.hostfile, - all=args.all, db_basedir=args.inventory_dir, - action="del", configuration=configuration) - elif args.subcommand == "add-tag": - c = InventoryTag(hosts=args.host, tags=args.taglist, - hostfile=args.hostfile, tagfile=args.tagfile, - db_basedir=args.inventory_dir, - configuration=configuration) - elif args.subcommand == "del-tag": - c = InventoryTag(hosts=args.host, tags=args.taglist, - hostfile=args.hostfile, tagfile=args.tagfile, - all=args.all, db_basedir=args.inventory_dir, - action="del", configuration=configuration) - else: - raise cdist.Error("Unknown inventory command \'{}\'".format( - args.subcommand)) - c.run() - - -class InventoryList(Inventory): - def __init__(self, hosts=None, istag=False, hostfile=None, - list_only_host=False, has_all_tags=False, - db_basedir=dist_inventory_db, configuration=None): - super().__init__(db_basedir, configuration) - self.hosts = hosts - self.istag = istag - self.hostfile = hostfile - self.list_only_host = list_only_host - self.has_all_tags = has_all_tags - - def _print(self, host, tags): - if self.list_only_host: - print("{}".format(host)) - else: - print("{} {}".format(host, ",".join(sorted(tags)))) - - def _do_list(self, it_tags, it_hosts, check_func): - if (it_tags is not None): - param_tags = set(it_tags) - self.log.trace("param_tags: {}".format(param_tags)) - else: - param_tags = set() - for host in it_hosts: - self.log.trace("host: {}".format(host)) - tags = self._get_host_tags(host) - if tags is None: - self.log.debug("Host \'{}\' not found, skipped".format(host)) - continue - self.log.trace("tags: {}".format(tags)) - if check_func(tags, param_tags): - yield host, tags - - def entries(self): - if not self.hosts and not self.hostfile: - self.log.trace("Listing all hosts") - it_hosts = self._all_hosts() - it_tags = None - check_func = check_always_true - else: - it = itertools.chain(self._input_values(self.hosts), - self._input_values(self.hostfile)) - if self.istag: - self.log.trace("Listing by tag(s)") - it_hosts = self._all_hosts() - it_tags = it - if self.has_all_tags: - check_func = contains_all - else: - check_func = contains_any - else: - self.log.trace("Listing by host(s)") - it_hosts = it - it_tags = None - check_func = check_always_true - for host, tags in self._do_list(it_tags, it_hosts, check_func): - yield host, tags - - def host_entries(self): - for host, tags in self.entries(): - yield host - - def run(self): - for host, tags in self.entries(): - self._print(host, tags) - - -class InventoryHost(Inventory): - def __init__(self, hosts=None, hostfile=None, - db_basedir=dist_inventory_db, all=False, action="add", - configuration=None): - super().__init__(db_basedir, configuration) - self.actions = ("add", "del") - if action not in self.actions: - raise cdist.Error("Invalid action \'{}\', valid actions are:" - " {}\n".format(action, self.actions.keys())) - self.action = action - self.hosts = hosts - self.hostfile = hostfile - self.all = all - - if not self.hosts and not self.hostfile: - self.hostfile = "-" - - def _new_hostpath(self, hostpath): - # create empty file - with open(hostpath, "w"): - pass - - def _action(self, host): - if self.action == "add": - self.log.debug("Adding host \'{}\'".format(host)) - elif self.action == "del": - self.log.debug("Deleting host \'{}\'".format(host)) - hostpath = self._host_path(host) - self.log.trace("hostpath: {}".format(hostpath)) - if self.action == "add" and not os.path.exists(hostpath): - self._new_hostpath(hostpath) - else: - if not os.path.isfile(hostpath): - raise cdist.Error(("Host path \'{}\' is" - " not a valid file").format(hostpath)) - if self.action == "del": - os.remove(hostpath) - - def run(self): - if self.action == "del" and self.all: - self.log.trace("Doing for all hosts") - it = self._all_hosts() - else: - self.log.trace("Doing for specified hosts") - it = itertools.chain(self._input_values(self.hosts), - self._input_values(self.hostfile)) - for host in it: - self._action(host) - - -class InventoryTag(Inventory): - def __init__(self, hosts=None, tags=None, hostfile=None, tagfile=None, - db_basedir=dist_inventory_db, all=False, action="add", - configuration=None): - super().__init__(db_basedir, configuration) - self.actions = ("add", "del") - if action not in self.actions: - raise cdist.Error("Invalid action \'{}\', valid actions are:" - " {}\n".format(action, self.actions.keys())) - self.action = action - self.hosts = hosts - self.tags = tags - self.hostfile = hostfile - self.tagfile = tagfile - self.all = all - - if not self.hosts and not self.hostfile: - self.allhosts = True - else: - self.allhosts = False - if not self.tags and not self.tagfile: - self.tagfile = "-" - - if self.hostfile == "-" and self.tagfile == "-": - raise cdist.Error("Cannot read both, hosts and tags, from stdin") - - def _read_input_tags(self): - self.input_tags = set() - for tag in itertools.chain(self._input_values(self.tags), - self._input_values(self.tagfile)): - self.input_tags.add(tag) - - def _action(self, host): - host_tags = self._get_host_tags(host) - if host_tags is None: - print("Host \'{}\' does not exist, skipping".format(host), - file=sys.stderr) - return - self.log.trace("existing host_tags: {}".format(host_tags)) - if self.action == "del" and self.all: - host_tags = set() - else: - for tag in self.input_tags: - if self.action == "add": - self.log.debug("Adding tag \'{}\' for host \'{}\'".format( - tag, host)) - host_tags.add(tag) - elif self.action == "del": - self.log.debug("Deleting tag \'{}\' for host " - "\'{}\'".format(tag, host)) - if tag in host_tags: - host_tags.remove(tag) - self.log.trace("new host tags: {}".format(host_tags)) - if not self._write_host_tags(host, host_tags): - self.log.trace("{} does not exist, skipped".format(host)) - - def run(self): - if self.allhosts: - self.log.trace("Doing for all hosts") - it = self._all_hosts() - else: - self.log.trace("Doing for specified hosts") - it = itertools.chain(self._input_values(self.hosts), - self._input_values(self.hostfile)) - if not(self.action == "del" and self.all): - self._read_input_tags() - for host in it: - self._action(host) diff --git a/cdist/log.py b/cdist/log.py deleted file mode 100644 index 5d431130..00000000 --- a/cdist/log.py +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2010-2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import logging -import sys -import datetime - - -# Define additional cdist logging levels. -logging.OFF = logging.CRITICAL + 10 # disable logging -logging.addLevelName(logging.OFF, 'OFF') - -logging.VERBOSE = logging.INFO - 5 -logging.addLevelName(logging.VERBOSE, 'VERBOSE') - - -def _verbose(msg, *args, **kwargs): - logging.log(logging.VERBOSE, msg, *args, **kwargs) - - -logging.verbose = _verbose - -logging.TRACE = logging.DEBUG - 5 -logging.addLevelName(logging.TRACE, 'TRACE') - - -def _trace(msg, *args, **kwargs): - logging.log(logging.TRACE, msg, *args, **kwargs) - - -logging.trace = _trace - - -class DefaultLog(logging.Logger): - - FORMAT = '%(levelname)s: %(message)s' - - class StdoutFilter(logging.Filter): - def filter(self, rec): - return rec.levelno != logging.ERROR - - class StderrFilter(logging.Filter): - def filter(self, rec): - return rec.levelno == logging.ERROR - - def __init__(self, name): - super().__init__(name) - - formatter = logging.Formatter(self.FORMAT) - - self.addFilter(self) - - stdout_handler = logging.StreamHandler(sys.stdout) - stdout_handler.addFilter(self.StdoutFilter()) - stdout_handler.setLevel(logging.TRACE) - stdout_handler.setFormatter(formatter) - - stderr_handler = logging.StreamHandler(sys.stderr) - stderr_handler.addFilter(self.StderrFilter()) - stderr_handler.setLevel(logging.ERROR) - stderr_handler.setFormatter(formatter) - - self.addHandler(stdout_handler) - self.addHandler(stderr_handler) - - def filter(self, record): - """Prefix messages with logger name""" - - record.msg = self.name + ": " + str(record.msg) - - return True - - def verbose(self, msg, *args, **kwargs): - self.log(logging.VERBOSE, msg, *args, **kwargs) - - def trace(self, msg, *args, **kwargs): - self.log(logging.TRACE, msg, *args, **kwargs) - - -class TimestampingLog(DefaultLog): - - def filter(self, record): - """Add timestamp to messages""" - - super().filter(record) - now = datetime.datetime.now() - timestamp = now.strftime("%Y%m%d%H%M%S.%f") - record.msg = "[" + timestamp + "] " + str(record.msg) - - return True - - -class ParallelLog(DefaultLog): - FORMAT = '%(levelname)s: [%(process)d]: %(message)s' - - -class TimestampingParallelLog(TimestampingLog, ParallelLog): - pass - - -def setupDefaultLogging(): - del logging.getLogger().handlers[:] - logging.setLoggerClass(DefaultLog) - - -def setupTimestampingLogging(): - del logging.getLogger().handlers[:] - logging.setLoggerClass(TimestampingLog) - - -def setupTimestampingParallelLogging(): - del logging.getLogger().handlers[:] - logging.setLoggerClass(TimestampingParallelLog) - - -def setupParallelLogging(): - del logging.getLogger().handlers[:] - logging.setLoggerClass(ParallelLog) - - -setupDefaultLogging() diff --git a/cdist/message.py b/cdist/message.py deleted file mode 100644 index 450fc3c3..00000000 --- a/cdist/message.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2013 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import logging -import os -import shutil -import tempfile - -log = logging.getLogger(__name__) - - -class Message(object): - """Support messaging between types - - """ - def __init__(self, prefix, messages): - self.prefix = prefix - self.global_messages = messages - - in_fd, self.messages_in = tempfile.mkstemp(suffix='.cdist_message_in') - out_fd, self.messages_out = tempfile.mkstemp( - suffix='.cdist_message_out') - - os.close(in_fd) - os.close(out_fd) - - self._copy_messages() - - @property - def env(self): - env = {} - env['__messages_in'] = self.messages_in - env['__messages_out'] = self.messages_out - - return env - - def _copy_messages(self): - """Copy global contents into our copy""" - shutil.copyfile(self.global_messages, self.messages_in) - - def _cleanup(self): - """remove temporary files""" - if os.path.exists(self.messages_in): - os.remove(self.messages_in) - if os.path.exists(self.messages_out): - os.remove(self.messages_out) - - def _merge_messages(self): - """merge newly written lines into global file""" - with open(self.messages_out) as fd: - content = fd.readlines() - - with open(self.global_messages, 'a') as fd: - for line in content: - fd.write("%s:%s" % (self.prefix, line)) - - def merge_messages(self): - self._merge_messages() - self._cleanup() diff --git a/cdist/mputil.py b/cdist/mputil.py deleted file mode 100644 index 56fcfe39..00000000 --- a/cdist/mputil.py +++ /dev/null @@ -1,65 +0,0 @@ -# -*- coding: utf-8 -*- -# -# 2016-2017 Darko Poljak (darko.poljak at gmail.com) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - - -import multiprocessing -import concurrent.futures as cf -import itertools -import os -import signal -import logging - - -log = logging.getLogger("cdist-mputil") - - -def mp_sig_handler(signum, frame): - log.trace("signal %s, SIGKILL whole process group", signum) - os.killpg(os.getpgrp(), signal.SIGKILL) - - -def mp_pool_run(func, args=None, kwds=None, jobs=multiprocessing.cpu_count()): - """Run func using concurrent.futures.ProcessPoolExecutor with jobs jobs - and supplied iterables of args and kwds with one entry for each - parallel func instance. - Return list of results. - """ - if args and kwds: - fargs = zip(args, kwds) - elif args: - fargs = zip(args, itertools.repeat({})) - elif kwds: - fargs = zip(itertools.repeat(()), kwds) - else: - return [func(), ] - - retval = [] - with cf.ProcessPoolExecutor(jobs) as executor: - try: - results = [ - executor.submit(func, *a, **k) for a, k in fargs - ] - for f in cf.as_completed(results): - retval.append(f.result()) - return retval - except KeyboardInterrupt: - mp_sig_handler(signal.SIGINT, None) - raise diff --git a/cdist/preos.py b/cdist/preos.py deleted file mode 100644 index bf2a8e60..00000000 --- a/cdist/preos.py +++ /dev/null @@ -1,130 +0,0 @@ -import os -import os.path -import sys -import inspect -import argparse -import cdist -import logging -import cdist.argparse -import cdist.configuration -import cdist.exec.util as util - - -_PREOS_CALL = "commandline" -_PREOS_NAME = "_preos_name" -_PREOS_MARKER = "_cdist_preos" -_PLUGINS_DIR = "preos" -_PLUGINS_PATH = [os.path.join(os.path.dirname(__file__), _PLUGINS_DIR), ] -log = logging.getLogger("PreOS") - - -def extend_plugins_path(dirs): - for dir in dirs: - preos_dir = os.path.expanduser(os.path.join(dir, "preos")) - if os.path.isdir(preos_dir): - _PLUGINS_PATH.append(preos_dir) - - -def preos_plugin(obj): - """It is preos if _PREOS_MARKER is True and has _PREOS_CALL.""" - if hasattr(obj, _PREOS_MARKER): - is_preos = getattr(obj, _PREOS_MARKER) - else: - is_preos = False - - if is_preos and hasattr(obj, _PREOS_CALL): - yield obj - - -def scan_preos_dir_plugins(dir): - for fname in os.listdir(dir): - if os.path.isfile(os.path.join(dir, fname)): - fname = os.path.splitext(fname)[0] - module_name = fname - try: - module = __import__(module_name) - yield from preos_plugin(module) - clsmembers = inspect.getmembers(module, inspect.isclass) - for cm in clsmembers: - c = cm[1] - yield from preos_plugin(c) - except ImportError as e: - log.warning("Cannot import '{}': {}".format(module_name, e)) - - -def find_preos_plugins(): - for dir in _PLUGINS_PATH: - yield from scan_preos_dir_plugins(dir) - - -def find_preoses(): - preoses = {} - for preos in find_preos_plugins(): - if hasattr(preos, _PREOS_NAME): - preos_name = getattr(preos, _PREOS_NAME) - else: - preos_name = preos.__name__.lower() - preoses[preos_name] = preos - return preoses - - -def check_root(): - if os.geteuid() != 0: - raise cdist.Error("Must be run with root privileges") - - -def get_available_preoses_string(cls): - preoses = [' - {}'.format(x) for x in sorted(set(cls.preoses))] - return "Available PreOS-es:\n{}".format("\n".join(preoses)) - - -class PreOS(object): - preoses = None - - @classmethod - def commandline(cls, argv): - cdist_parser = cdist.argparse.get_parsers() - parser = argparse.ArgumentParser( - description="Create PreOS", prog="cdist preos", - parents=[cdist_parser['loglevel'], ]) - parser.add_argument('preos', help='PreOS to create', - nargs='?', default=None) - parser.add_argument('-c', '--conf-dir', - help=('Add configuration directory (one that ' - 'contains "preos" subdirectory)'), - action='append') - parser.add_argument('-g', '--config-file', - help='Use specified custom configuration file.', - dest="config_file", required=False) - parser.add_argument('-L', '--list-preoses', - help='List available PreOS-es', - action='store_true', default=False) - parser.add_argument('remainder_args', nargs=argparse.REMAINDER) - args = parser.parse_args(argv[1:]) - cdist.argparse.handle_loglevel(args) - log.debug("preos args : {}".format(args)) - - conf_dirs = util.resolve_conf_dirs_from_config_and_args(args) - - extend_plugins_path(conf_dirs) - sys.path.extend(_PLUGINS_PATH) - cls.preoses = find_preoses() - - if args.list_preoses or not args.preos: - print(get_available_preoses_string(cls)) - sys.exit(0) - - preos_name = args.preos - if preos_name in cls.preoses: - preos = cls.preoses[preos_name] - func = getattr(preos, _PREOS_CALL) - if inspect.ismodule(preos): - func_args = [preos, args.remainder_args, ] - else: - func_args = [args.remainder_args, ] - log.info("Running preos : {}".format(preos_name)) - func(*func_args) - else: - raise cdist.Error( - "Invalid PreOS {}. {}".format( - preos_name, get_available_preoses_string(cls))) diff --git a/cdist/preos/debootstrap/__init__.py b/cdist/preos/debootstrap/__init__.py deleted file mode 100644 index 6d340b4a..00000000 --- a/cdist/preos/debootstrap/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from debootstrap.debootstrap import Debian, Ubuntu, Devuan diff --git a/cdist/preos/debootstrap/debootstrap.py b/cdist/preos/debootstrap/debootstrap.py deleted file mode 100644 index f53dd4a7..00000000 --- a/cdist/preos/debootstrap/debootstrap.py +++ /dev/null @@ -1,239 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# 2016 Darko Poljak (darko.poljak at ungleich.ch) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -import cdist -import cdist.config -import cdist.core -import cdist.preos -import argparse -import cdist.argparse -import logging -import os -import subprocess - - -class Debian(object): - _preos_name = 'debian' - _cdist_preos = True - - _files_dir = os.path.join(os.path.dirname(__file__), "files") - - @classmethod - def default_args(cls): - default_remote_exec = os.path.join(cls._files_dir, "remote-exec.sh") - default_remote_copy = os.path.join(cls._files_dir, "remote-copy.sh") - default_init_manifest = os.path.join( - cls._files_dir, "init-manifest-{}".format(cls._preos_name)) - - defargs = argparse.Namespace() - defargs.arch = 'amd64' - defargs.bootstrap = False - defargs.configure = False - defargs.cdist_params = '-v' - defargs.rm_bootstrap_dir = False - defargs.suite = 'stable' - defargs.remote_exec = default_remote_exec - defargs.remote_copy = default_remote_copy - defargs.manifest = default_init_manifest - - return defargs - - @classmethod - def get_parser(cls): - defargs = cls.default_args() - cdist_parser = cdist.argparse.get_parsers() - parser = argparse.ArgumentParser( - prog='cdist preos {}'.format(cls._preos_name), - parents=[cdist_parser['loglevel'], cdist_parser['beta']]) - parser.add_argument('target_dir', nargs=1, - help=("target directory where PreOS will be " - "bootstrapped")) - parser.add_argument( - '-a', '--arch', - help="target debootstrap architecture, by default '{}'".format( - defargs.arch), dest='arch', default=defargs.arch) - parser.add_argument( - '-B', '--bootstrap', - help='do bootstrap step', - dest='bootstrap', action='store_true', default=defargs.bootstrap) - parser.add_argument( - '-C', '--configure', - help='do configure step', - dest='configure', action='store_true', default=defargs.configure) - parser.add_argument( - '-c', '--cdist-params', - help=("parameters that will be passed to cdist config, by default" - " '{}' is used".format(defargs.cdist_params)), - dest='cdist_params', default=defargs.cdist_params) - parser.add_argument( - '-D', '--drive-boot', - help='create bootable PreOS on specified drive', - dest='drive') - parser.add_argument( - '-e', '--remote-exec', - help=("remote exec that cdist config will use, by default " - "internal script is used"), - dest='remote_exec', default=defargs.remote_exec) - parser.add_argument( - '-i', '--init-manifest', - help=("init manifest that cdist config will use, by default " - "internal init manifest is used"), - dest='manifest', default=defargs.manifest) - parser.add_argument( - '-k', '--keyfile', action="append", - help=("ssh key files that will be added to cdist config; " - "'__ssh_authorized_keys root ...' type is appended to " - "initial manifest"), - dest='keyfile') - parser.add_argument( - '-m', '--mirror', - help='use specified mirror for debootstrap', - dest='mirror') - parser.add_argument( - '-P', '--root-password', - help='Set specified password for root, generated by default', - dest='root_password') - parser.add_argument('-p', '--pxe-boot-dir', help='PXE boot directory', - dest='pxe_boot_dir') - parser.add_argument( - '-r', '--rm-bootstrap-dir', - help='remove target directory after finishing', - dest='rm_bootstrap_dir', action='store_true', - default=defargs.rm_bootstrap_dir) - parser.add_argument( - '-S', '--script', - help='use specified script for debootstrap', - dest='script') - parser.add_argument('-s', '--suite', - help="suite used for debootstrap, " - "by default '{}'".format(defargs.suite), - dest='suite', default=defargs.suite) - parser.add_argument( - '-y', '--remote-copy', - help=("remote copy that cdist config will use, by default " - "internal script is used"), - dest='remote_copy', default=defargs.remote_copy) - parser.epilog = cdist.argparse.EPILOG - - return parser - - @classmethod - def update_env(cls, env): - pass - - @classmethod - def commandline(cls, argv): - log = logging.getLogger(cls.__name__) - - parser = cls.get_parser() - args = parser.parse_args(argv) - if args.script and not args.mirror: - raise cdist.Error("script option cannot be used without " - "mirror option") - - args.command = cls._preos_name - cdist.argparse.check_beta(vars(args)) - - cdist.preos.check_root() - - args.target_dir = os.path.realpath(args.target_dir[0]) - args.os = cls._preos_name - args.remote_exec = os.path.realpath(args.remote_exec) - args.remote_copy = os.path.realpath(args.remote_copy) - args.manifest = os.path.realpath(args.manifest) - if args.keyfile: - new_keyfile = [os.path.realpath(x) for x in args.keyfile] - args.keyfile = new_keyfile - if args.pxe_boot_dir: - args.pxe_boot_dir = os.path.realpath(args.pxe_boot_dir) - - cdist.argparse.handle_loglevel(args) - log.debug("preos: {}, args: {}".format(cls._preos_name, args)) - try: - env = vars(args) - new_env = {} - for key in env: - if key == 'verbose' and env[key]: - if env[key] >= 3: - new_env['debug'] = "yes" - elif env[key] == 2: - new_env['verbose'] = "yes" - elif not env[key]: - new_env[key] = '' - elif isinstance(env[key], bool) and env[key]: - new_env[key] = "yes" - elif isinstance(env[key], list): - val = env[key] - new_env[key + "_cnt"] = str(len(val)) - for i, v in enumerate(val): - new_env[key + "_" + str(i)] = v - else: - new_env[key] = str(env[key]) - env = new_env - env.update(os.environ) - cls.update_env(env) - log.debug("preos: {} env: {}".format(cls._preos_name, env)) - cmd = os.path.join(cls._files_dir, "code") - info_msg = ["Running preos: {}, suite: {}, arch: {}".format( - cls._preos_name, args.suite, args.arch), ] - if args.mirror: - info_msg.append("mirror: {}".format(args.mirror)) - if args.script: - info_msg.append("script: {}".format(args.script)) - if args.bootstrap: - info_msg.append("bootstrapping") - if args.configure: - info_msg.append("configuring") - if args.pxe_boot_dir: - info_msg.append("creating PXE") - if args.drive: - info_msg.append("creating bootable drive") - log.info(info_msg) - log.debug("cmd={}".format(cmd)) - subprocess.check_call(cmd, env=env, shell=True) - except subprocess.CalledProcessError as e: - log.error("preos {} failed: {}".format(cls._preos_name, e)) - - -class Ubuntu(Debian): - _preos_name = "ubuntu" - - @classmethod - def default_args(cls): - defargs = super().default_args() - defargs.suite = 'xenial' - return defargs - - -class Devuan(Debian): - _preos_name = "devuan" - - @classmethod - def default_args(cls): - defargs = super().default_args() - defargs.suite = 'jessie' - return defargs - - @classmethod - def update_env(cls, env): - env['DEBOOTSTRAP_DIR'] = os.path.join(cls._files_dir, - 'devuan-debootstrap') diff --git a/cdist/preos/debootstrap/files/code b/cdist/preos/debootstrap/files/code deleted file mode 100755 index 9e37003b..00000000 --- a/cdist/preos/debootstrap/files/code +++ /dev/null @@ -1,274 +0,0 @@ -#!/bin/sh -## -## 2016 Darko Poljak (darko.poljak at ungleich.ch) -## -## This file is part of cdist. -## -## cdist is free software: you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## cdist is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with cdist. If not, see . - -set -e - -if [ "${debug}" ] -then - set -x - cdist_params="${cdist_params} -d" -fi - -bootstrap_dir="${target_dir}" - -case "${os}" in - ubuntu|debian|devuan) - # nothing, those are valid values - ;; - *) - echo "ERROR: invalid os value: ${os}" >&2 - exit 1 - ;; -esac - -check_bootstrap_dir() { - if [ ! -e "$1" ] - then - echo "ERROR: bootstrap directory $1 does not exist" >&2 - exit 1 - fi -} - -# bootstrap -if [ "${bootstrap}" ] -then - if [ "${DEBOOTSTRAP_DIR}" ] - then - debootstrap_cmd="${DEBOOTSTRAP_DIR}/debootstrap" - else - command -v debootstrap 2>&1 > /dev/null || { - echo "ERROR: debootstrap not found" >&2 - exit 1 - } - debootstrap_cmd="debootstrap" - fi - - # If PreOS on drive then do not check for directory emptiness. - # Partition can at least contain 'lost+found' directory. - if [ ! "${drive}" ] - then - if [ -e "${bootstrap_dir}" ] - then - dir_content=$(ls -A "${bootstrap_dir}" | wc -l) - else - dir_content=0 - fi - if [ "${dir_content}" -ne 0 ] - then - echo "ERROR: "${bootstrap_dir}" not empty " >&2 - exit 1 - fi - fi - - if [ "${verbose}" -o "${debug}" ] - then - echo "bootstrapping..." - fi - mkdir -p "${bootstrap_dir}" - "${debootstrap_cmd}" --include=openssh-server --arch=${arch} ${suite} ${bootstrap_dir} \ - ${mirror} ${script} - if [ "${verbose}" -o "${debug}" ] - then - echo "bootstrap finished" - fi -fi - -chroot_mount() { - mount -t proc none "${bootstrap_dir}/proc" || true - mount -t sysfs none "${bootstrap_dir}/sys" || true - mount -o bind /dev "${bootstrap_dir}/dev" || true - mount -t devpts none "${bootstrap_dir}/dev/pts" || true -} - -chroot_umount() { - umount "${bootstrap_dir}/dev/pts" || true - umount "${bootstrap_dir}/dev" || true - umount "${bootstrap_dir}/sys" || true - umount "${bootstrap_dir}/proc" || true -} - -TRAPFUNC="umount \"${bootstrap_dir}/dev/pts\" || true; \ -umount \"${bootstrap_dir}/dev\" || true; \ -umount \"${bootstrap_dir}/sys\" || true; \ -umount \"${bootstrap_dir}/proc\" || true;" - -# config -if [ "${configure}" ] -then - if [ ! -f "${manifest}" ] - then - echo "ERROR: ${manifest} does not exist" >&2 - exit 1 - fi - if [ ! -f "${remote_exec}" ] - then - echo "ERROR: ${remote_exec} does not exist" >&2 - exit 1 - fi - if [ ! -f "${remote_copy}" ] - then - echo "ERROR: ${remote_copy} does not exist" >&2 - exit 1 - fi - - if [ "${keyfile_cnt}" -a "${keyfile_cnt}" -gt 0 ] - then - i="$((keyfile_cnt - 1))" - keyfiles="" - while [ "${i}" -ge 0 ] - do - kf_var="keyfile_${i}" - eval kf='$'"${kf_var}" - if [ ! -f "${kf}" ] - then - echo "ERROR: ${kf} does not exist" >&2 - exit 1 - fi - key=$(cat "${kf}") - keyfiles="${keyfiles} --key '${key}'" - i=$((i - 1)) - done - ssh_auth_keys_line="__ssh_authorized_keys root ${keyfiles}\n" - else - ssh_auth_keys_line="" - fi - - check_bootstrap_dir "${bootstrap_dir}" - - if [ "${verbose}" -o "${debug}" ] - then - echo "configuring..." - fi - - trap "${TRAPFUNC}" 0 1 2 3 15 - - chroot_mount - - chroot "${bootstrap_dir}" /usr/bin/apt-get update - - if [ "${drive}" ] - then - grub_manifest_line="__package grub-pc --state present\n" - grub_kern_params_line="__line linux_kernel_params \ ---file /etc/default/grub \ ---line 'GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash net.ifnames=0\"'\n" - else - grub_manifest_line="" - grub_kern_params_line="" - fi - grub_lines="${grub_manifest_line}${grub_kern_params_line}" - - printf "${ssh_auth_keys_line}${grub_lines}" \ - | cat "${manifest}" - |\ - cdist config \ - ${cdist_params} -i - \ - --remote-exec "${remote_exec}" \ - --remote-copy "${remote_copy}" \ - "${bootstrap_dir}" - - # __hostname with systmed uses hostnamectl which needs dbus running - # set hostname explicitly here instead - printf "preos\n" > "${bootstrap_dir}/etc/hostname" - - chroot "${bootstrap_dir}" /usr/bin/apt-get autoclean - chroot "${bootstrap_dir}" /usr/bin/apt-get clean - chroot "${bootstrap_dir}" /usr/bin/apt-get autoremove - - chroot_umount - - trap - 0 1 2 3 15 - - if [ "${verbose}" -o "${debug}" ] - then - echo "configuring finished" - fi -fi - -if [ "${pxe_boot_dir}" ] -then - check_bootstrap_dir "${bootstrap_dir}" - - if [ "${verbose}" -o "${debug}" ] - then - echo "creating pxe..." - fi - - mkdir -p "${pxe_boot_dir}" - cp "${bootstrap_dir}"/boot/vmlinuz-* "${pxe_boot_dir}/kernel" - cd "${bootstrap_dir}" - find . -print0 | cpio --null -o --format=newc | gzip -9 > "${pxe_boot_dir}/initramfs" - - mkdir -p "${pxe_boot_dir}/pxelinux.cfg" - cat < "${pxe_boot_dir}/pxelinux.cfg/default" - DEFAULT preos - LABEL preos - KERNEL kernel - APPEND utf8 load_ramdisk=1 root=/dev/ram nofb initrd=initramfs console=ttyS1,115200 net.ifnames=0 -EOPXEF - - cp "${bootstrap_dir}/usr/lib/PXELINUX/pxelinux.0" "${pxe_boot_dir}/pxelinux.0" - cp "${bootstrap_dir}/usr/lib/syslinux/modules/bios/ldlinux.c32" \ - "${pxe_boot_dir}/ldlinux.c32" - # network boot need all files world readable - chmod -R 644 "${pxe_boot_dir}"/* - - if [ "${verbose}" -o "${debug}" ] - then - echo "pxe creation finished" - fi -fi - -if [ "${drive}" ] -then - trap "${TRAPFUNC}" 0 1 2 3 15 - chroot_mount - chroot "${bootstrap_dir}" grub-install ${drive} - chroot "${bootstrap_dir}" /bin/sh -c "GRUB_DISABLE_OS_PROBER=true update-grub" - # set root password - if [ ! "${root_password}" ] - then - if ! which strings >/dev/null 2>&1 - then - printf "strings is missing\n" >&2 - exit 1 - fi - root_password="$(head -n 1000 /dev/urandom | strings | \ - grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n')" - printf "Generated root password (without quotes):'${root_password}'\n" - fi - chroot "${bootstrap_dir}" /bin/sh -c "echo \"root:${root_password}\" | \ - chpasswd" - # /etc/securetty must not be world writeable. - chmod 644 "${bootstrap_dir}"/etc/securetty - chroot_umount - trap - 0 1 2 3 15 -fi - -if [ "${rm_bootstrap_dir}" ] -then - if [ "${verbose}" -o "${debug}" ] - then - echo "removing bootstrap dir..." - fi - rm -r -f "${bootstrap_dir}" - if [ "${verbose}" -o "${debug}" ] - then - echo "removing bootstrap dir finished" - fi -fi diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/Makefile b/cdist/preos/debootstrap/files/devuan-debootstrap/Makefile deleted file mode 100644 index 85168031..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# avoid dpkg-dev dependency; fish out the version with sed -VERSION := $(shell sed 's/.*(\(.*\)).*/\1/; q' debian/changelog) - -all: - -clean: - -DSDIR=$(DESTDIR)/usr/share/debootstrap -install: - mkdir -p $(DSDIR)/scripts - mkdir -p $(DESTDIR)/usr/sbin - - cp -a scripts/* $(DSDIR)/scripts/ - install -o root -g root -m 0644 functions $(DSDIR)/ - - sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)/usr/sbin/debootstrap - chown root:root $(DESTDIR)/usr/sbin/debootstrap - chmod 0755 $(DESTDIR)/usr/sbin/debootstrap diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/README b/cdist/preos/debootstrap/files/devuan-debootstrap/README deleted file mode 100644 index 4d8c3049..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/README +++ /dev/null @@ -1,65 +0,0 @@ -README for debootstrap -====================== - -See the manpage for (some) documentation. - -Running debootstrap from source -------------------------------- - -You can run debootstrap from its source tree without installing it. This -can be useful if you want a quick way to make a Debian chroot on another -system, or if you are testing modifications to debootstrap. - -First, get the source. - -* Either by using git - git clone https://anonscm.debian.org/git/d-i/debootstrap.git - -* Or by visiting - and downloading the tar.gz file - -Then in the debootstrap source directory: - - export DEBOOTSTRAP_DIR=`pwd` - sudo ./debootstrap stable my-stable-dir - -If you are running a multi-stage boot strap (for example for a QEMU -rootfs) you don't even need root: - - export DEBOOTSTRAP_DIR=`pwd` - fakeroot ./debootstrap --foreign --arch=armhf testing my-testing-dir http://deb.debian.org/debian - -Of course you will need to execute the second stage as root to finish the bootstrap: - - (on foreign hardware) - /debootstrap/debootstrap --second-stage - - -Future ------- - - * Cross-strap support - so you can bootstrap a filesystem to the - point where it will successfully boot, and finish installing itself - without having to be running the target architecture or OS yourself. - - debootstrap --arch powerpc sarge ./sarge-ppc-chroot ... - - on an i386 system, boot a powerpc box with sarge-ppc-chroot as its - root files system, and have it "work". The cross-hurd package does - something similar, and should be replaced by this feature. - - * There should be some (better) way of telling debootstrap what "base" - packages you want to install -- this varies between making a chroot, - doing an install, and doing a buildd. Also, some installs want - different base packages (to setup networking, or kernels, eg) - - -NMUing ------- - -If there's a problem with debootstrap that you need fixed, feel free to do -an NMU to fix it. Usual rules: try not to break anything, and mail the -patch to the BTS. Don't worry about asking first though. - -However, note that debootstrap is now team maintained. Anyone in d-i can do -a release without the bother of a NMU. diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/TODO b/cdist/preos/debootstrap/files/devuan-debootstrap/TODO deleted file mode 100644 index e5fde0e4..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/TODO +++ /dev/null @@ -1,11 +0,0 @@ - -Features: - ++ second stage via chroot debootstrap/debootstrap - ++ debootstrap/deb file to record deb destinations/information - - -- configuration file - -- versus command line - -- support for sources (vs mirrors) - -- faux-pinning for packages - - ++ makedev in second stage diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/.gitignore b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/.gitignore deleted file mode 100644 index 39638d97..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -debootstrap -debootstrap-udeb -files -*.debhelper.log -*.substvars - diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/README.DevuanSource b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/README.DevuanSource deleted file mode 100644 index 6446a088..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/README.DevuanSource +++ /dev/null @@ -1,15 +0,0 @@ -To sync up with debians source for inspiration you should run the following: - - `git remote add alioth-git git://anonscm.debian.org/d-i/debootstrap.git` - `git fetch alioth-git` - -After that you can either cherry-pick or merge releases from debian. To -merge a release, it's do: - `git tag` to list the release tags -and - `git merge ` -followed by all the fixups and then commit with an appropriate message like - "Merging Release from debian" - -Copyright 2016 Daniel Reurich - diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/changelog b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/changelog deleted file mode 100644 index 8688197d..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/changelog +++ /dev/null @@ -1,2655 +0,0 @@ -debootstrap (1.0.87+devuan1.1) unstable; urgency=medium - - * add git to builddeps - - -- Daniel Reurich Fri, 13 Jan 2017 23:12:50 +1300 - -debootstrap (1.0.87+devuan1.0) unstable; urgency=high - - [ Julien Cristau ] - * Default to split /usr again, as merged-/usr breaks dpkg-shlibdeps - (closes: #844221). - - [ Riku Voipio ] - * remove scratchbox2 support (closes: #796189) - - -- Christian Perrier Wed, 16 Nov 2016 06:47:27 +0100 - -debootstrap (1.0.86+devuan1.0) unstable; urgency=high - - [ Daniel Reurich ] - * Restore Devuan Jessie version - * switch to 3.0 (git) source format - * set git-depth - * Add directions for inspiration from debians source - * removed file so we can build using git source format - * merge 1.0.86 for jessie - - -- Daniel Reurich Fri, 13 Jan 2017 15:58:19 +1300 - -debootstrap (1.0.86) unstable; urgency=high - - * Rework split_inline_sig by using shell built-ins instead of trying to - mix sed and tr together, which might work on regular systems but not - from inside the Debian Installer (Closes: #842591). Thanks to Ansgar - Burchardt for the proof of concept! - - -- Cyril Brulebois Sun, 30 Oct 2016 23:35:45 +0100 - -debootstrap (1.0.85-1+devuan1) unstable; urgency=medium - - * sync with debian upstream package - * add right keyrings with the new schema on devuan-keyring package - - -- Franco (nextime) Lanza Sat, 29 Oct 2016 23:21:57 +0200 - - -debootstrap (1.0.85) unstable; urgency=medium - - [ Julien Cristau ] - * Add support for downloading and validating InRelease files, by splitting - up detached signature from signed data. - * Switch default mirror to deb.debian.org. - - [ Colin Watson ] - * Add (Ubuntu) zesty as a symlink to gutsy. - - [ Ansgar Burchardt ] - * Add jessie-kfreebsd to merged-/usr blacklist. - * No longer Build-Depend on makedev. The code using it was already - removed in debootstrap 1.0.82. - * Do not use `tar -k` for older releases which might have file - conflicts between the packages to be installed. (Closes: #838388) - * Error out when seeing short options. (Closes: #548880) - * Add oldoldstable -> sid script symlink. (Closes: #792734) - * Add buster -> sid and bullseye -> sid script symlinks. - * Only unpack and configure the base system when there are actually - packages to install. (Closes: #825034) - * debootstrap.8: Use stretch instead of wheezy in examples. - - [ Marco d'Itri ] - * Enable merged-/usr by default. (Closes: #839046) - - -- Julien Cristau Fri, 21 Oct 2016 20:22:49 +0200 - -debootstrap (1.0.84) unstable; urgency=medium - - [ Ansgar Burchardt ] - * Add support for xz-compressed Packages indices. (Closes: #837649) - - -- Christian Perrier Thu, 06 Oct 2016 06:59:38 +0200 - -debootstrap (1.0.83) unstable; urgency=medium - - [ Ansgar Burchardt ] - * functions: Validate that the requested suite is listed in the - Release file's Suite or Codename field. (Closes: #837075) - * Add support for merged-/usr, enabled by a new --merged-usr option. - (Closes: #810301) - * Feign install of dpkg in second stage. This avoids problems when - using dpkg-deb together with busybox' tar. (Closes: #837185) - * README: Use https://. - - [ Steve McIntyre ] - * Update Standards-Version to 3.9.8 (no changes needed) - - -- Steve McIntyre <93sam@debian.org> Tue, 13 Sep 2016 13:16:41 +0100 - -debootstrap (1.0.82) unstable; urgency=medium - - [ Alex Bennée ] - * Excise all devices.tar.gz code. Closes: #830869 - - -- Christian Perrier Thu, 08 Sep 2016 07:09:56 +0200 - -debootstrap (1.0.81) unstable; urgency=medium - - [ Luca Falavigna ] - * Add (Ubuntu) yakkety as a symlink to gutsy. - - -- Christian Perrier Tue, 03 May 2016 06:51:57 +0200 - -debootstrap (1.0.80-1+devuan1) unstable; urgency=medium - - * sync with debian upstream package. - - -- Franco (nextime) Lanza Sun, 24 Apr 2016 06:16:29 +0200 - -debootstrap (1.0.80) unstable; urgency=medium - - [ Jon Boden ] - * scripts/gutsy: Support kfreebsd & hurd arches on Ubuntu targets - (closes: #818748) - - -- Christian Perrier Tue, 22 Mar 2016 19:27:45 +0100 - -debootstrap (1.0.79) unstable; urgency=medium - - [ Samuel Thibault ] - * hurd: move setting up dev and servers firmlink to setup_proc stage. Also - firmlink proc there. Thanks Gabriele Giacone for all the investigation! - (Closes: #768102) - - -- Christian Perrier Fri, 19 Feb 2016 07:23:59 +0100 - -debootstrap (1.0.78+nmu1) unstable; urgency=medium - - * Non-maintainer upload. - * Split setup_devices in setup_devices (which now only deals with static - device nodes) and setup_dynamic_devices, and move the calls to - setup_devices from the beginning of the second stage to the end of the - first stage. - setup_dynamic_devices mounts the appropriate filesystems which provide - dynamic device nodes for the architectures which need one in - debootstrap (kfreebsd and hurd). - This fixes a bug in --second-stage introduced in 1.0.34 and exposed - by the devices-related changes of 1.0.76: the second stage debootstrap - runs "dpkg --print-architecture >/dev/null" at the very beginning of - the program when /dev is still empty, so it creates an empty regular - file in place of /dev/null and this will cause mknod to fail later. - (Closes: #813232) - - -- Marco d'Itri Wed, 17 Feb 2016 01:23:23 +0100 - -debootstrap (1.0.78) unstable; urgency=high - - * Use HTTPS for Vcs-* URLs, and link to cgit rather than gitweb. - * Don't call mknod with the --mode option, it's not supported in - busybox. Use -m instead - fixes the broken fix for #812811. - Closes: #813124. Urgency high to get this fix propagated quickly - - it's breaking d-i installs right now. Adding myself to uploaders and - uploading. - - -- Steve McIntyre <93sam@debian.org> Fri, 29 Jan 2016 16:36:00 +0000 - -debootstrap (1.0.77) unstable; urgency=medium - - [ Marco d'Itri ] - * Fix permissions on device nodes (Closes: #812811). - - -- Cyril Brulebois Wed, 27 Jan 2016 20:22:05 +0100 - -debootstrap (1.0.76) unstable; urgency=medium - - [ Marco d'Itri ] - * Stop creating useless device nodes (Closes: #571136). - - -- Cyril Brulebois Sun, 24 Jan 2016 08:55:18 +0100 - -debootstrap (1.0.75-1+devuan1) unstable; urgency=medium - - * sync with debian upstream package - - -- Franco (nextime) Lanza Wed, 02 Dec 2015 04:05:36 +0100 - -debootstrap (1.0.75) unstable; urgency=medium - - * Stop cleaning KEEP_DEBOOTSTRAP_DIR twice, as spotted by Chris Lamb - (Closes: #804415). - * Add Tanglu support (Closes: #771687), thanks to Matthias Klumpp. At - the moment, the following extra suites are recognized: - - aequorea - - bartholomea - - chromodoris - - dasyatis - - -- Cyril Brulebois Wed, 11 Nov 2015 18:49:28 +0100 - -debootstrap (1.0.74) unstable; urgency=medium - - [ Colin Watson ] - * Add (Ubuntu) xenial as a symlink to gutsy. - - -- Christian Perrier Tue, 03 Nov 2015 07:09:23 +0100 - -debootstrap (1.0.73) unstable; urgency=medium - - * Generate a deburis file with (package, version, uri) tuples, similar - to the existing debpaths. - - -- Cyril Brulebois Thu, 22 Oct 2015 12:43:35 +0200 - -debootstrap (1.0.72-1+devuan1) unstable; urgency=medium - - * Rebase on debian 1.0.70 debootstrap version - * Added Daniel Reurich in Uploaders - * Integrating Daniel Reurich patches for d-i - * Updated manpage with Daniel Reurich changes - - -- Franco (nextime) Lanza Thu, 21 May 2015 05:45:36 +0200 - -debootstrap (1.0.72) unstable; urgency=medium - - [ Iain Lane ] - * Add (Ubuntu) wily as a symlink to gutsy (closes: #787117). - - [ Colin Watson ] - * Fix resolve_deps and setup_available to work in the --foreign case - (closes: #757819, LP: #1450980). - - -- Colin Watson Tue, 28 Jul 2015 14:32:19 +0100 - -debootstrap (1.0.71-1+devuan1) unstable; urgency=medium - - * make devuan-baseconf and devuan-keyring requireds packages - * make sure we have sysvinit-core and not systemd in the chroot - - -- Franco (nextime) Lanza Fri, 01 May 2015 02:13:04 +0200 - -debootstrap (1.0.71) unstable; urgency=medium - - * Adjust sed call to render it more portable (missing ';'), making it - work with FreeBSD sed. Thanks to Nikolai Lifanov for the report and - the patch (Closes: #791802). - - -- Cyril Brulebois Fri, 10 Jul 2015 01:29:52 +0200 - -debootstrap (1.0.70-1+devuan1) unstable; urgency=medium - - * Debianization of debootstrap. - * added ceres script and link jessie and ascii to it - - -- Franco (nextime) Lanza Sat, 11 Apr 2015 08:03:36 +0200 - -debootstrap (1.0.70) unstable; urgency=medium - - * Use tr instead of (missing in d-i) xargs (Closes: #785693). Thanks, - Julian Schauder! - - -- Cyril Brulebois Tue, 19 May 2015 11:38:27 +0200 - -debootstrap (1.0.69-1+devuan1) unstable; urgency=medium - - * Fix package description. - - -- Franco (nextime) Lanza Sat, 07 Mar 2015 21:31:07 +0100 - -debootstrap (1.0.69) unstable; urgency=medium - - [ Cyril Brulebois ] - * Make sure to deduplicate package list in download_release to avoid - issues while counting downloaded packages. The failure path could lead - to printing some strange integer (Closes: #709751, #768445, #785276, - #774752). - This was reported to mostly happen whenever --no-resolve-deps is used. - * Add support for --force-check-gpg so that one can programmatically - make sure keyring checks are used and that no fallback to an https - mirror happens (Closes: #661501, #733179, #775454). - * Switch default mirror from ftp.us.debian.org to the new, official - http redirector service: httpredir.debian.org - * Make it possible to override the MAKEDEV variable (Closes: #734743). - Thanks, Wookey! - - [ Christian Perrier ] - * Update Standards to 3.9.6 (checked) - - -- Christian Perrier Mon, 18 May 2015 14:07:43 +0200 - -debootstrap (1.0.68-2+devuan1) unstable; urgency=medium - - * Added missing symlink. - - -- Franco (nextime) Lanza Sat, 07 Mar 2015 21:18:26 +0100 - -debootstrap (1.0.68-1+devuan1) unstable; urgency=medium - - * Added script for ascii. - - -- Franco (nextime) Lanza Sat, 07 Mar 2015 11:47:02 +0100 -debootstrap (1.0.68) unstable; urgency=medium - - [ Steven Chamberlain ] - * Support the jessie-kfreebsd suite, by using the same script as - jessie (a symlink to sid) (Closes: #784927). - - -- Christian Perrier Mon, 11 May 2015 07:46:19 +0200 - -debootstrap (1.0.67-1+devuan2) unstable; urgency=medium - - * Switch to quilt format - - -- Franco (nextime) Lanza Tue, 03 Mar 2015 07:44:11 +0100 - -debootstrap (1.0.67+devuan1) unstable; urgency=medium - - * Applied init freedom patch (debian bug 668001) - * moved to devuan - - -- Franco (nextime) Lanza Tue, 03 Mar 2015 07:09:36 +0100 - -debootstrap (1.0.67) unstable; urgency=medium - - [ Cyril Brulebois ] - * Apply patch by Jérémy Bobbio to support reproducible builds: specify - a modification time on the tar side, and add the -n option to gzip - (Closes: #774069). Thanks, Jérémy! - * Update setup_apt_sources to look at USE_COMPONENTS if COMPONENTS is - empty, fixing the empty sources.list bug with foreign architectures - (Closes: #732255, #773867). - - -- Christian Perrier Wed, 14 Jan 2015 07:03:17 +0100 - -debootstrap (1.0.66) unstable; urgency=low - - [ Cyril Brulebois ] - * Specify gzip compression in debian/source/options to allow for better - portability on other platforms (Closes: #770214). Thanks, Joey Hess! - * Specify gzip compression for debootstrap, and xz for debootstrap-udeb, - to mitigate the need for xz on non-Debian platforms (see: #770217). - - -- Christian Perrier Mon, 24 Nov 2014 09:15:50 +0100 - -debootstrap (1.0.65) unstable; urgency=medium - - [ Julien Cristau ] - * Add support for stretch. - - -- Christian Perrier Mon, 10 Nov 2014 09:24:56 +0100 - -debootstrap (1.0.64) unstable; urgency=medium - - * Add (Ubuntu) vivid as a symlink to gutsy. - - -- Colin Watson Mon, 20 Oct 2014 16:48:49 +0100 - -debootstrap (1.0.63) unstable; urgency=medium - - [ Joey Hess ] - * Move set -e out of shebang line. Closes: #762713 - - -- Christian Perrier Thu, 25 Sep 2014 06:44:16 +0200 - -debootstrap (1.0.62) unstable; urgency=medium - - [ Cyril Brulebois ] - * Fix reporting of package version in retrieval and validation steps - to cope with epochs. - - -- Christian Perrier Mon, 15 Sep 2014 11:40:54 +0200 - -debootstrap (1.0.61) unstable; urgency=medium - - * Fix "possibly the package $pkg is at fault" warnings to account for - changed error output in dpkg 1.17.2. - - -- Colin Watson Sun, 31 Aug 2014 22:07:49 +0100 - -debootstrap (1.0.60) unstable; urgency=medium - - [ Adam Conrad ] - * Add (Ubuntu) utopic as a symlink to gutsy. - - [ Guillem Jover ] - * Sync deb support with latest dpkg-deb (closes: #739136): - - Add uncompressed data.tar deb member support. - - Add uncompressed and xz control.tar deb member support. - - -- Colin Watson Tue, 06 May 2014 09:37:34 +0100 - -debootstrap (1.0.59) unstable; urgency=medium - - * Install ca-certificates as well as apt-transport-https for HTTPS - installations. This makes it possible to copy certificates that were - built into the installer to /usr/local/share/ca-certificates/ and thus - have them continue to be trusted after installation. - - -- Colin Watson Thu, 13 Feb 2014 13:42:54 +0000 - -debootstrap (1.0.58) unstable; urgency=medium - - * Policy version 3.9.5: no changes required. - * Install apt-transport-https if installing from an HTTPS mirror - (LP: #1135163). It may still be necessary to copy certificates into - place, but there's at least a reasonable chance that somebody installing - from HTTPS may want to keep using it, and we have to install - apt-transport-https at this point otherwise they won't be able to do - that end-to-end. - - -- Colin Watson Tue, 11 Feb 2014 17:46:41 +0000 - -debootstrap (1.0.57) unstable; urgency=medium - - * pkgdetails_perl: Only interpret percentages following whitespace, to - cope with GNU wget outputting the local file name (which may contain "%" - due to URL-encoding) after it finishes the download (LP: #1172101). - - -- Colin Watson Fri, 07 Feb 2014 16:12:23 +0000 - -debootstrap (1.0.56) unstable; urgency=low - - [ Tollef Fog Heen ] - * Install base-passwd and base-files in two calls rather than one to - avoid problems with home-built media with different ordering in - Packages. Thanks to Jo Shields for pointing this out and providing - the workaround. Closes: #601670. LP: #1001131. - - [ Joey Hess ] - * When deboostrapping Debian, and the debian-archive-keyring is not - available, switch the default mirror to a https url. This way at - least the CA level of security is available even for users who - have no way to check gpg keys in the WoT. The https mirror is - currently https://mirrors.kernel.org/debian. - * Avoid writing https urls into sources.list, as apt does not support https. - - -- Christian Perrier Mon, 30 Dec 2013 08:00:41 +0100 - -debootstrap (1.0.55) unstable; urgency=low - - [ Matthias Klose ] - * Add (Ubuntu) trusty as a symlink to gutsy. - - -- Christian Perrier Tue, 22 Oct 2013 13:43:23 +0200 - -debootstrap (1.0.53) unstable; urgency=low - - [ Dmitrijs Ledkovs ] - * Set debian source format to '3.0 (native)'. - * Bump debhelper compat level to 9. - * Set Vcs-* to canonical format. - - [ Christian Perrier ] - * Update Standards to 3.9.4 (checked) - - -- Christian Perrier Sun, 14 Jul 2013 13:06:33 +0200 - -debootstrap (1.0.52) unstable; urgency=low - - * scripts/gutsy: Make the fake initctl pass through "initctl version" - calls, used by such things as invoke-rc.d to figure out whether it's - running under Upstart (LP: #1182540). - * scripts/sid, scripts/gutsy: Add a policy-rc.d, matching that in - debian-installer-utils. This is the primary way to disable daemon - startup. - - -- Colin Watson Wed, 22 May 2013 16:55:59 +0100 - -debootstrap (1.0.51) unstable; urgency=low - - [ Scott Kitterman ] - * Add (Ubuntu) saucy as a symlink to gutsy (closes: #706989). - - [ Colin Watson ] - * Clarify location of pkgdetails.c in error message (closes: #708771). - * Resolve mount point symlinks relative to the target chroot before - unmounting them (closes: #702861, #703037, #704744). - - -- Colin Watson Sat, 18 May 2013 23:18:08 +0100 - -debootstrap (1.0.50) unstable; urgency=low - - [ Hector Oron ] - * Report package version information on package retrieve and validation. - Closes: #697675 - - -- Christian Perrier Fri, 17 May 2013 13:34:34 +0200 - -debootstrap (1.0.49) unstable; urgency=medium - - * Add support for jessie. Closes: #706788 - - -- Joey Hess Sat, 04 May 2013 23:37:52 -0400 - -debootstrap (1.0.48) unstable; urgency=low - - * Team upload - - [ Julien Cristau ] - * Disable InRelease support. gpgv won't give us back the signed data, and - full gpg is not available inside d-i (closes: #703889). - * Move extract_release_components to after signature verification. - Suggested by Ansgar Burchardt. - - -- Didier Raboud Thu, 04 Apr 2013 16:17:57 +0200 - -debootstrap (1.0.47) unstable; urgency=low - - * Team upload - * Properly decrypt the InRelease file when downloading from an archive - where InRelease is used. This longstanding bug was masked by former - APT behaviour and was revealed only with recent APT versions - Closes: #703146 - Thanks to Michael Vogt for the analysis and patch - * Add a dependency on gpg because of the above change. - - -- Christian Perrier Wed, 20 Mar 2013 21:34:29 +0100 - -debootstrap (1.0.46) unstable; urgency=low - - * Team upload. - * Use `which` to find out sh only if /bin/sh does not exist. - - -- Samuel Thibault Thu, 27 Dec 2012 15:47:16 +0100 - -debootstrap (1.0.45) unstable; urgency=low - - [ Joey Hess ] - * Better support use on Android by not hardcoding /bin/sh - in a test file that's created, and instead putting in the - actual path to sh. Closes: #694310 Thanks, Shawn Landden - - -- Christian Perrier Sat, 22 Dec 2012 12:56:32 +0100 - -debootstrap (1.0.44) unstable; urgency=low - - * Remove double quotes to fix for loop on GNU/kFreeBSD, thanks to - Oleg Ginzburg (Closes: #693718). - - -- Cyril Brulebois Tue, 20 Nov 2012 23:55:53 +0100 - -debootstrap (1.0.43) unstable; urgency=low - - [ Joey Hess ] - * Fix "arc" typo. Closes: #686680 - - [ Colin Watson ] - * Add (Ubuntu) raring as a symlink to gutsy. - - [ Christian Perrier ] - * Add myself to Uploaders and drop Anthony Towns who is no - longer active in debootstrap maintenance for a few years. Thanks - for your work, Anthony. - * Bump Standards to 3.9.3 (checked) - * Replace XC-Package-Type by Package-Type in debian/control - - -- Christian Perrier Sat, 27 Oct 2012 12:46:46 +0200 - -debootstrap (1.0.42) unstable; urgency=low - - * Downgrade the absence of an InRelease file from a warning to an info - message. For now, debootstrap can cope fine without, and it's possible - there are Debian mirrors that don't have InRelease; Ubuntu doesn't quite - have InRelease support yet either (LP: #1017398). - - -- Colin Watson Tue, 03 Jul 2012 15:34:57 +0100 - -debootstrap (1.0.41) unstable; urgency=low - - [ Mehdi Dogguy ] - * Add support for InRelease files (Closes: #638682) - - -- Joey Hess Thu, 21 Jun 2012 13:16:22 -0400 - -debootstrap (1.0.40) unstable; urgency=low - - [ Joey Hess ] - * When installation or configuration of a package fails, output a message - that points the user to the log file. Attempt to grep out the first - package that dpkg failed on and show its name too. Closes: #472704 - - [ Colin Watson ] - * Add (Ubuntu) quantal as a symlink to gutsy. - - -- Colin Watson Thu, 26 Apr 2012 17:44:44 +0100 - -debootstrap (1.0.39) unstable; urgency=low - - * Retry corrupted downloads rather than carrying on almost regardless. - Patch mostly due to Michael Gilbert, rearranged somewhat by me (closes: - #618920). - * Stop at the end of the retrieval phase if any packages failed to - download. - - -- Colin Watson Tue, 13 Mar 2012 17:21:13 +0000 - -debootstrap (1.0.38) unstable; urgency=low - - [ Joey Hess ] - * Improve error message when a decompressor is not available, - to indicate which package has been built with bzip today. - Closes: #644719 - - [ Otavio Salvador ] - * Fix --print-debs support when using --foreign param. Closes: - #551837. - - [ Colin Watson ] - * pkgdetails_perl: Use the last of a sequence of stanzas for the same - package name, rather than the first (closes: #649319). - - -- Colin Watson Mon, 21 Nov 2011 13:20:53 +0000 - -debootstrap (1.0.37) unstable; urgency=low - - * Add (Ubuntu) precise as a symlink to gutsy. - - -- Colin Watson Wed, 05 Oct 2011 21:58:37 +0100 - -debootstrap (1.0.36) unstable; urgency=low - - * Guess host OS based on uname for non-Debian systems. Closes: #637363 - * Clarify "target" in usage message. - * Fix support for running debootstrap on a FreeBSD host to create a kFreeBSD - chroot or jail. Thanks, Arno Toell. - * Search PATH for programs, rather than checking hardcoded locations. - * Support using md5 and shaN programs, as found on FreeBSD, in addition - to md5sum and shaNsum. - * When FreeBSD (not kfreebsd) is the host, don't chroot to mount special - filesystems. - * When debootstrapping on FreeBSD, warn if necessary modules are not - loaded. Thanks, Arno Toell. - * Workaround for umount bug #634107, which broke pbuilder and "debootstrap ." - Closes: #631087 - - -- Joey Hess Sun, 21 Aug 2011 18:39:26 -0400 - -debootstrap (1.0.35) unstable; urgency=low - - [ Robert Millan ] - * Don't build devices.tar.gz if building on GNU/kFreeBSD (closes: - #637297). - * Don't use --arch when we specifically care about the host architecture - (closes: #637298). - - -- Colin Watson Wed, 10 Aug 2011 13:04:41 +0100 - -debootstrap (1.0.34) unstable; urgency=low - - * Add more information regarding the version and architecture in case - a download fails. Closes: #633625. - * add /usr/sbin and /sbin to PATH for fakechroot variant. Closes: - #588773 - * Move setup_devices to second stage of bootstrap. Closes: #498731, - #531316 - - -- Otavio Salvador Thu, 28 Jul 2011 19:13:10 +0200 - -debootstrap (1.0.33) unstable; urgency=low - - [ Joey Hess ] - * Mention minbase variant in --help. Closes: #632418 - * Use md5sums for sarge, which did not consistently have sha1sums - everywhere. Closes: #633158 - - [ Colin Watson ] - * Improve text of error message when decompression command is not - available. - - -- Otavio Salvador Sun, 24 Jul 2011 10:33:56 +0200 - -debootstrap (1.0.32) unstable; urgency=low - - * Use md5sums for woody and potato, which only had those checksums - in the Packages files. Closes: #627365 - - -- Joey Hess Mon, 30 May 2011 13:57:46 -0400 - -debootstrap (1.0.31) unstable; urgency=low - - [ Mark Hymers ] - * Don't use the Build-Essential: yes field in Debian, use the - build-essential package. Closes: #619700. - - [ Colin Watson ] - * If ubuntu-keyring is installed, check Release signatures against it when - bootstrapping Ubuntu gutsy and later. - * Recommend ubuntu-keyring rather than debian-archive-keyring on - Ubuntu-derived systems. - - -- Colin Watson Fri, 20 May 2011 09:45:48 +0100 - -debootstrap (1.0.30) unstable; urgency=low - - [ Joey Hess ] - * Recommend debian-archive-keyring, and if it is installed, - default to checking gpg signatures of the Release file against it - when bootstrapping sid, squeeze, wheezy, etch, and lenny. - Closes: #560038 - * Add --no-check-gpg option that can be used to disable release file - verification. Closes: #624229 - * Needs base-installer 1.117. - * Add a warning message if the keyring file is not available, and - --no-check-gpg is not specified. - * Clear all global variables used for options, so that unclean - environment doesn't break debootstrap. Closes: #621657 - * Removed the --boot-floppies switch and mode. Assuming this has - not been used in 10 years. - - [ Colin Watson ] - * Resolve dependencies from all requested components (LP: #740167). - - -- Joey Hess Tue, 26 Apr 2011 17:10:00 -0400 - -debootstrap (1.0.29) unstable; urgency=low - - [ Joey Hess ] - * Support bootstrapping oldstable. (Lenny could already be bootstrapped - using that suite name.) - - [ Colin Watson ] - * Add (Ubuntu) oneiric as a symlink to gutsy. - - -- Colin Watson Tue, 22 Mar 2011 10:58:49 +0000 - -debootstrap (1.0.28) unstable; urgency=low - - [ Miguel Figueiredo ] - * Fix for ar usage, thanks to Guillem Jover. Closes: #598729 - - [ Joey Hess ] - * Remove 5 second sleeps when debootstrap finds additional required - dependencies. d-i just got that much faster. - * Use SHA checksums. Defaulting to SHA256, and configurable by - SHA_SIZE environment variable. Closes: #614315 - * If a sha256sum program is not available, fall back to sha1sum. - This is to support debootstrap use on embedded systems, which are more - likely to have the latter. - * Avoid new(?) warning from dpkg about missing Maintainer field when - feigning install of a package. - - -- Joey Hess Mon, 21 Feb 2011 20:48:46 -0400 - -debootstrap (1.0.27) unstable; urgency=low - - [ Miguel Figueiredo ] - * Fix bug and typo on --private-key - Patch by Jonathan Klee. - - [ Jeremie Koenig ] - * Hurd support: - - Use the newer setup-translators script and firmlink - $TARGET/{dev,servers} in setup_devices_hurd; - - Don't attempt to build devices.tar.gz, which is not needed. - - -- Otavio Salvador Mon, 07 Feb 2011 19:40:24 -0200 - -debootstrap (1.0.26) unstable; urgency=low - - [ Christian Perrier ] - * Consistently use tab indenting in scripts/gutsy and scripts/sid - Patch by Karl Goetz. Closes: #601821 - * Fix a typo in the debootstrap script - Patch by Karl Goetz. Closes: #601822 - - [ Joey Hess ] - * sid: Remove old workaround for etch era coreutils/textutils md5sum - diversion problem. (#329394) - - -- Otavio Salvador Fri, 12 Nov 2010 10:07:41 -0200 - -debootstrap (1.0.25) unstable; urgency=low - - * Remove debug statement that slipped in. - * Add test to guard against devices.tar.gz being empty. - * /dev/MAKEDEV cannot be relied on (udev likes to make it a symlink to - true). Always use /sbin/MAKEDEV. Closes: #598080 - - -- Joey Hess Sun, 26 Sep 2010 13:18:31 -0400 - -debootstrap (1.0.24) unstable; urgency=low - - [ Miguel Figueiredo ] - * Apply patches from by Jonathan Klee and Guillaume Chauvel - to add support to https (closes: #521196). - - [ Colin Watson ] - * Add (Ubuntu) natty as a symlink to gutsy. - - [ Joey Hess ] - * Add support for wheezy. Closes: #597461 - - -- Joey Hess Sun, 19 Sep 2010 21:40:00 -0400 - -debootstrap (1.0.23) unstable; urgency=low - - * Add (Ubuntu) maverick as a symlink to gutsy. - * Add ${misc:Depends}. - - -- Colin Watson Wed, 19 May 2010 13:35:34 +0100 - -debootstrap (1.0.22) unstable; urgency=low - - * Redo release since it ended up with testing directory in tar.gz. - - -- Otavio Salvador Mon, 22 Feb 2010 16:52:49 -0300 - -debootstrap (1.0.21) unstable; urgency=low - - [ Otavio Salvador ] - * Apply patch from Clint Adams to add support for - gz/bz2/xz data.tar (closes: #458663). - - [ Guillem Jover ] - * Refactor deb extractors into two new functions. - * Use dpkg-deb if available instead of ar (closes: #557296). - * Add an --extractor option to override the automatic extractor selection. - - [ Otavio Salvador ] - * Document new --extractor option in manpage. - * Apply patch from Vagrant Cascadian not - fail if resolv.conf is a broken symlink (closes: #390647). - - [ Frans Pop ] - * Use tab indentation in scripts/debian/sid to reduce its size (relevant - for Debian Installer). - * Add apt to base packages for the buildd variant as it is no longer marked - Build-Essential. - - [ Otavio Salvador ] - * Apply patch from Andres Salomon to honor - --components when using mirror_style 'main' (closes: #561283). - * Apply patch from Andres Salomon to fix - iteration through components in download_main (closes: #561298). - - [ Joey Hess ] - * Allow the suite to be stable, testing, or unstable when debootstrapping - Debian. Closes: #288109 - * Make scripts directory in source tree look like installed directory, - and add a section to README explaining an easy way to run - debootstrap w/o installing it. Closes: #345762 - * Convert rules file to use dh with overrides. - * Remove binary-basedebs target from debian/rules. - This target has been broken in multiple ways since 2007. While I - accidentially partially fixed it with the above changes, this is evidence - it's dead code that can be safely removed. - - -- Otavio Salvador Sun, 21 Feb 2010 23:11:06 -0300 - -debootstrap (1.0.20) unstable; urgency=low - - * For recent Ubuntu versions, move $TARGET/sbin/initctl aside in the same - way we do start-stop-daemon, so that attempts to control Upstart jobs - won't inadvertently affect jobs in the host system. - * Rename EXAMPLE section in debootstrap(8) to EXAMPLES (closes: #548458). - - -- Colin Watson Sun, 04 Oct 2009 21:23:07 +0100 - -debootstrap (1.0.19) unstable; urgency=low - - * Ignore failures from dpkg --predep-package. It exits 1 if there are no - suitable packages available, which isn't an error for us, but in_target - complains anyway, so just use in_target_nofail; the termination - condition is handled immediately afterwards anyway. - - -- Colin Watson Thu, 24 Sep 2009 19:57:05 +0100 - -debootstrap (1.0.18) unstable; urgency=low - - * Only use dpkg from the chroot, as there is no guarantee dpkg is - available outside of the chroot (d-i installation for example). - - -- Aurelien Jarno Wed, 23 Sep 2009 11:37:01 +0200 - -debootstrap (1.0.17) unstable; urgency=low - - * Remove boneheaded use of sudo left over from testing (closes: #547949). - - -- Colin Watson Tue, 22 Sep 2009 20:10:19 +0100 - -debootstrap (1.0.16) unstable; urgency=low - - [ Colin Watson ] - * Cope with pre-dependencies of included packages that aren't in Priority: - required (closes: #487908). - * Upgrade to debhelper v7. (Override rules get pretty hairy for this - package, so I haven't switched to dh(1).) - * Use ports.ubuntu.com as default mirror on sparc for Ubuntu hardy and - beyond (LP: #431145). - * Add (Ubuntu) lucid as a symlink to gutsy. - - [ Frans Pop ] - * Makefile: remove unused ARCH variable. - - -- Colin Watson Mon, 21 Sep 2009 16:28:40 +0100 - -debootstrap (1.0.15) unstable; urgency=low - - * On Linux, clear out /etc/mtab on exit if it's not a symlink. Should fix - problems Wouter Verhelst and Martin Michlmayr are seeing with - initramfs-tools MODULES=dep, although it probably isn't a perfect - solution. - - -- Colin Watson Thu, 23 Jul 2009 16:45:00 +0100 - -debootstrap (1.0.14) unstable; urgency=low - - * Apply patch from Felix Zielcke to use "dpkg - --print-architecture" to avoid deprecation warning. Closes: #531680. - * Reference squeeze instead of sarge in manpage. Based on a patch from - Geoff Simmons . Closes: #534575. - * Apply patch from Riku Voipio to add support for - scratchbox variant. Closes: #536820. - - -- Otavio Salvador Wed, 22 Jul 2009 12:34:54 -0300 - -debootstrap (1.0.13) unstable; urgency=low - - [ Otavio Salvador ] - * Apply patch from Luca Favatella to improve - coding style. - - [ Colin Watson ] - * Add (Ubuntu) karmic as a symlink to gutsy. - - -- Colin Watson Fri, 24 Apr 2009 20:08:24 +0100 - -debootstrap (1.0.12) unstable; urgency=low - - [ Otavio Salvador ] - * Improve code to choose between libc packages. Thanks to Luca Favatella - for first version of the patch. - - [ Colin Watson ] - * Remove partial support for emitting translated progress messages with - gettext. Don't panic; d-i still has all the support necessary for this. - debootstrap's own support for doing this outside d-i with gettext's - shell bindings has been completely broken ever since it was added in - 2003, though, and nobody has complained. Fixing it would require a big - pile of infrastructure and some non-trivial patches, plus arranging to - copy all the translations over from base-installer, and it just doesn't - seem worth it, so lose the cruft (LP: #188690). - * Export PATH, just to make sure. It isn't necessarily exported by shells - running from init=/bin/sh or similar, and the upstream bash maintainer - is unwilling to export it by default; it's easy enough to do so here - (LP: #320188). - - -- Colin Watson Tue, 17 Mar 2009 16:38:46 +0000 - -debootstrap (1.0.11) unstable; urgency=low - - * Add (Ubuntu) jaunty as a symlink to gutsy. - * Clarify that --second-stage is needed to complete the bootstrapping - process after --foreign. - * Fix --make-tarball= option (closes: #484869). - * Fix old Debian scripts and all Ubuntu scripts to cope with Anthony's - change in 1.0.8 to make --second-stage not bother recalculating required - and base. - * Rename 'repeat' to 'repeatn', since 'repeat' is a reserved word in zsh; - although strictly speaking this seems like an incompatibility in zsh - when linked to /bin/sh (closes: #340058). - * Fix --unpack-tarball= option (thanks, Torsten Landschoff; closes: - #500759). - * Fix handling of relative DEBOOTSTRAP_DIR (thanks, Mikhail Gusarov; - closes: #503460). - * Cope with ancient versions of chroot(8) that don't call chdir() (thanks, - Patrik Arvhult; closes: #350635). - * Recommend gnupg for --keyring option (thanks, Robert Millan; closes: - #467571). - * Note that you can't --include packages with non-required Pre-Depends - (see #487908). - * Mention /sys in EXAMPLE section of manual page, and use "defaults" - rather than "none" as the mount options for /proc (thanks, Raúl Sánchez - Siles; closes: #410787). - * Add /dev/console to devices.tar.gz (after all, MAKEDEV's 'consoleonly' - was added for boot-floppies in the first place; see - https://lists.ubuntu.com/archives/ubuntu-devel/2009-January/027230.html). - * Add support for squeeze (closes: #513488). - - -- Colin Watson Wed, 18 Feb 2009 23:46:12 +0000 - -debootstrap (1.0.10) unstable; urgency=low - - [ Joey Hess ] - * Avoid "broken pipe" errors in bootstrap.log from the the smallyes function. - The errors themselves are inherent to how the function is used, so just - suppress them. Closes: #480560. - - [ Frans Pop ] - * Do not cache Release and Release.gpg files. Closes: #488424. - * Abort if a Packages file failed to verify. - * Update standards version to 3.8.0; no other changes needed. - - -- Frans Pop Wed, 02 Jul 2008 17:44:25 +0200 - -debootstrap (1.0.9) unstable; urgency=low - - [ Frans Pop ] - * Error out on unrecognized options to avoid invalid options to be - recognized as arguments. - - [ Colin Watson ] - * Use 'chown 0:0' in all scripts rather than deprecated 'chown 0.0' - (thanks, Evan Klitzke). - * Add (Ubuntu) intrepid as a symlink to gutsy. - - -- Colin Watson Tue, 29 Apr 2008 19:36:19 +0100 - -debootstrap (1.0.8) unstable; urgency=low - - [ Frans Pop ] - * Change Priority for the udeb to extra in line with overrides file. - - [ Colin Watson ] - * Partially revert r50134; there are people who depend on being able to - use the "upstream" Makefile on non-Debian systems. Create necessary - directories in the Makefile rather than relying on dh_installdirs to do - it (LP: #172645). - * Use ftp.us.debian.org rather than ftp.debian.org - (http://lists.debian.org/debian-devel-announce/2007/12/msg00002.html). - - [ Anthony Towns ] - * Add minbase variant for the sid script that only install apt (and - its dependencies) instead of all of base. (Closes: Bug#351912, - Bug#452654) - * Make --second-stage not bother recalculating required and base as - it's not needed. - * Make --arch and other arguments accept both "--arch i386" and - "--arch=i386" forms of specifying a parameter to avoid the - inconsistency. - - [ Stephen R. Marenka ] - * Allow installation of etch-m68k. (Closes: Bug#458965) - - [ Colin Watson ] - * Add minbase variant for Ubuntu gutsy/hardy; see Anthony's change above. - * Minor manual page formatting improvements. - - -- Colin Watson Tue, 15 Jan 2008 11:19:34 +0000 - -debootstrap (1.0.7) unstable; urgency=low - - * No longer include full devices tarball in udeb. - * Also try 'udpkg --print-architecture' when determining the target - architecture. - * Utility pkgdetails moved from debootstrap-udeb to bootstrap-base so that - the udeb can become 'Architecture: all'. - * Change /usr/lib/debootstrap to /usr/share/debootstrap. Closes: #430615. - * Use tab indentation in debootstrap and functions saving 3kB (relevant for - Debian Installer). - * Fix various inconsistencies in build scripts. - * Fix dpkg-genchanges warning 'missing Priority for source files'. - * Update Standards-Version to 3.7.2. No changes needed. - * Changes in udeb require base-installer 1.85. - - -- Frans Pop Wed, 14 Nov 2007 12:15:45 +0100 - -debootstrap (1.0.6) unstable; urgency=low - - * Ensure that the target directory exists in check_sane_mount. - * Don't ignore 'make clean' errors. (The Makefile is always present.) - - -- Colin Watson Sun, 21 Oct 2007 10:50:59 +0100 - -debootstrap (1.0.5) unstable; urgency=low - - [ Colin Watson ] - * Don't rely on GNU sed's s///I extension (closes: #350583). - - [ Joey Hess ] - * Skip the noexec/nodev test when running --print-debs or other operations - that do not involve building systems. - - -- Joey Hess Sat, 20 Oct 2007 23:10:34 -0400 - -debootstrap (1.0.4) unstable; urgency=low - - [ Neil Williams ] - * Add --second-stage-target option that allows embedded to test for - installations in a chroot on the device (closes: #445157). - - [ Colin Watson ] - * Add (Ubuntu) hardy as a symlink to gutsy. - * Unmount /lib/init/rw on exit (closes: #391604). - * Cope if uncompressed Packages is missing from Release (closes: #402380). - * Don't rely on XSI test(1) extensions. - * Add support for ssh:/// URLs (thanks, Steffen Joeris; closes: #434893). - * Fix Ubuntu hoary and breezy scripts to unmount /dev etc. on exit - (closes: #327708). - * Emit an error if we cannot create working devices or executables on the - target (based on work by Bastian Kleineidam; closes: #233798). - - -- Colin Watson Fri, 19 Oct 2007 14:57:37 +0100 - -debootstrap (1.0.3) unstable; urgency=low - - * Ignore errors when unmounting filesystems, to avoid stopping at the - first one with problems. - - -- Colin Watson Tue, 21 Aug 2007 12:32:37 +0100 - -debootstrap (1.0.2) unstable; urgency=low - - [ Joey Hess ] - * Document --components in man page. - * Update man page, as packages listed in --include should now be auto - dep-resolved by default. - - [ Colin Watson ] - * Extensive quoting fixes, allowing installation to a target containing - spaces (closes: #387673). - * scripts/debian/sid: Handle libc0.3 on hurd-i386 (thanks, Michael Banck; - closes: #314304). - * functions: Stub out /proc setup and add device setup for the Hurd - (thanks, Michael Banck; closes: #314311). - * Add --version option (closes: #294484). - - [ Otavio Salvador ] - * Fix bunzip2 path. Thanks Martín Ferrari by - the patch (closes: #436218). - - -- Otavio Salvador Tue, 07 Aug 2007 20:12:55 -0300 - -debootstrap (1.0.1) unstable; urgency=low - - * scripts/ubuntu/gutsy: Determine buildd variant dynamically using - Build-Essential: yes. - * scripts/ubuntu/gutsy.fakechroot: Remove devmapper postinst hack, no - longer needed. - * scripts/ubuntu/*.fakechroot: Merge into the corresponding main scripts - as variants. - - -- Colin Watson Fri, 20 Jul 2007 11:55:22 +0100 - -debootstrap (1.0.0) unstable; urgency=low - - [ Anthony Towns ] - * Make debootstrap team maintained under the d-i banner. - * Add Joey, Frans and Junichi as uploaders, remove JHM (not in the - d-i group). - * Make pkgdetails.c not need C99 extensions. (Closes: Bug#398977) - * Fix am_doing_phase implementation in debootstrap script. Thanks to - Tero Janka for spotting the problem and the fix. (Closes: Bug#409881) - - [ Joey Hess ] - * Drop support for sarge from the udeb. - * Update README.Debian: - - One todo item is done. (I think cross-strap is too, but unsure.) - - Reword NMU policy to note that it's team-maintained now. - * ACK my prior NMU. Closes: #418600 - * If /dev/MAKEDEV DNE, as on certain s390 machines, use /sbin/MAKEDEV. - Closes: #420908 - Note that /dev/MAKEDEV is still the correct location, and is still tried - first so that building works on all FHS systems, as noted in #190239. - - [ Colin Watson ] - * Add support for Ubuntu dapper (Closes: #342838), edgy, feisty, and - gutsy. Exclude everything but gutsy from the udeb. - * Fix "deboostrap" typo in debootstrap(8) (thanks, Adam Conrad). - * Fix "htp" typo in temporary /etc/apt/sources.list. - * Drop support for woody from the udeb too. - * When removing $TARGET/debootstrap, debootstrap.log is still open as - stdout/stderr and needs to remain so, but after unlinking it some NFS - servers implement this by a temporary file in the same directory, which - makes it impossible to rmdir that directory. Moving it instead works - around the problem (thanks, Steven McCoy; - https://launchpad.net/bugs/65003). - * Fix formatting error in debootstrap(8) (.R is not a macro). - * Reorganise scripts into scripts/debian/ and scripts/ubuntu/ directories - in the source tree to declutter the top level. - * Add default_mirror function; reorganise the debootstrap script a little - so that it works. Set the default mirror for Ubuntu suites to - http://archive.ubuntu.com/ubuntu, and the default mirror for Debian - etch/lenny/sid architectures other than amd64 and i386 to - http://ftp.us.debian.org/debian (per ajt; see bug #363049). - * Add devices created by fd to devices-std.tar.gz, so that - /dev/std{in,out,err} is available conveniently in chroots with /proc and - /dev/pts mounted (thanks, Matthias Klose). - * Document --keyring and --make-tarball. (Closes: #368988) - * Update Ubuntu mirrors: warty/hoary/breezy => old-releases.ubuntu.com, - unsupported architectures => ports.ubuntu.com. - * Add myself to Uploaders. - * Bump to 1.0.0. Nobody uses debootstrap in production, do they? - - [ Joey Hess ] - * Remove the extended package description (aka bloat) from the udeb. - - -- Colin Watson Sat, 23 Jun 2007 02:19:27 +0100 - -debootstrap (0.3.3.3) unstable; urgency=low - - * NMU - * Add support for lenny. - - -- Joey Hess Tue, 10 Apr 2007 15:24:15 -0400 - -debootstrap (0.3.3.2) unstable; urgency=low - - * NMU with maintainer approval - * Remove --force-auto-select option for 'sid' script as it is no longer - supported by dpkg. Closes: #409527. - - -- Frans Pop Fri, 16 Feb 2007 20:43:36 +0100 - -debootstrap (0.3.3.1) unstable; urgency=low - - * NMU with maintainer approval - * functions/get_debs: build list of available packages from all specified - sources; this allows debootstrap to also use e.g. custom versions of base - packages from a source of local packages included on an installation CD. - Closes: #398762. - - -- Frans Pop Thu, 16 Nov 2006 05:30:43 +0100 - -debootstrap (0.3.3) unstable; urgency=low - - * Include kFreeBSD and fakechroot support from 0.3.2.1 and 0.3.2.2 NMUs, - thanks to Otavio Salvador and Piotr Roszatycki. (Closes: Bug#319100, - Bug#328446, Bug#204652, Bug#315044, Bug#Bug#319799) - - * Require target to be specified in all cases; document usage of target - for --print-debs. (Closes: Bug#335922, Bug#337230) - - * Use ln -sf when symlinking awk for woody and sarge. (Closes: Bug#299048) - - -- Anthony Towns Sun, 6 Nov 2005 04:12:39 +1000 - -debootstrap (0.3.2.2) unstable; urgency=low - - * NMU - * Added relicensed fakechroot variant. Closes: #204652. - - -- Piotr Roszatycki Sat, 29 Oct 2005 11:29:00 +0200 - -debootstrap (0.3.2.1) unstable; urgency=low - - * NMU with maintainer approval - * Applied patch from Robert Millan to add support to - Debian GNU/kFreeBSD. Closes: #319799 - - -- Otavio Salvador Fri, 28 Oct 2005 16:14:57 -0200 - -debootstrap (0.3.2) unstable; urgency=low - - * Revert fakechroot NMUs (0.3.1.1, 0.3.1.3, 0.3.1.7) due to incompatible - license requirements (GPL) (Reopens: Bug#204652) - - * Changes from 0.3.1.2 NMU, thanks to Joey Hess: (Closes: Bug#314810) - + Fix incorrect use of "$@" in local. Closes: #314157, #314547 - + Fix fd redirection in download progress code. See #314373 - + Remove md5sums file from udeb. Closes: #314378 - + Fix debian-installer mode warning code. Closes: #314340 - - * Changes from 0.3.1.4 NMU, thanks to Joey Hess: - + Wrap eval statement in exit_function in parens, working around - bug #315444 in busybox sh. Closes: #314373 - - * Changes from 0.3.1.5 NMU, thanks to Anibal Monsalve Salazar: - + Fixed "--variant=buildd option does not work" for pbuilder, - closes: #314858. Patch by Matt Kraai . - - * Changes from 0.3.1.6 NMU, thanks to Joey Hess: - + Patch from Colin to redirect status messages to stderr when running - --print-debs. Closes: #315875 - + Restore logging to stderr in debian-installer mode. Closes: #314160 - - * Changes from 0.3.1.8 NMU, thanks to Petter Reinholdtsen: - + [functions] Mount /sys if it exist and is supported by the kernel. - Patch from Cajus Pollmeier, Colin Watson and Ubuntu. (Closes: #289105) - + [debootstrap] Document --resolve-deps in usage info. (Closes: #328161) - + [etch] Replace libsigc++-1.2-5c102 with libsigc++-1.2-5c2. (Closes: #334506) - + [etch] Remove pppoe from base, and only install - ipchains on m68k. Patch from Sven Luther. (Closes: #239390) - + [sarge] Remove duplicate entries for m68k and amd64. Patch from - Frans Pop. (Workaround for bug #319777) - + [etch] Add support for ppc64. The patch for 'sid' did no longer - apply. Patch from Andreas Jochens. (Closes: #313353) - + [sarge,etch,sid] Set DEBCONF_NONINTERACTIVE_SEEN=true during build, to - avoid questions during upgrade. (Closes: #238301) - + Add script for breezy. Patch from Colin Watson. (Closes: #315940) - - * Changes from 0.3.1.9 NMU, thanks to Joey Hess: - + Replace the etch script with a copy of the sid script, which pulls in - gnupg, so the installed etch system has a usable apt. Closes: #334521 - - * Create /dev/ptmx in minimal devices tarball. (Closes: Bug#317072) - - * Don't create empty available files, since old dpkg and new kernels can't - deal with them. (Closes: Bug#308169, Bug#329468) - - * Bump Standards-Version. Bump debhelper compatability level to 4. - * Cleanup debian/rules, thanks to Joey Hess. (Closes: Bug#314863) - - * Emit error message if no pkgdetails is available. (Closes: Bug#326831) - - * Turn on --resolve-deps by default. Add --no-resolve-deps as an option. - Combined with the previous changes to make the etch script dynamically - determine base, this should resolve all the "can't install " - bugs. (Closes: Bug#280210, Bug#308361, Bug#318281, Bug#323362, - Bug#318254, Bug#313292, Bug#334683, Bug#248578, Bug#289635) - - * md5sum doesn't exist when coreutils is unpacked but not configured; - cp it across so it's available for --second-stage. (Closes: Bug#329394) - - * Catch failures in "dpkg --status-fd" (Closes: Bug#317447, Bug#323661) - - * Make "without" work right for duplicates (Closes: Bug#316884, - Bug#319777) - - * Simplify and correct file descriptor handling and debootstrap.log - behaviour. - - * Delete $TARGET with --print-debs and --make-tarball. (Closes: Bug#328369) - - * Add a --make-tarball option. (Closes: Bug#152845) - - * Create a default sources.list for apt. (Closes: Bug#283234, Bug#315225) - - * Update manpage to talk about woody instead of sarge. (Closes: Bug#315862) - - * Use partial/ directory when downloading. (Closes: Bug#109176) - - -- Anthony Towns Sun, 23 Oct 2005 14:49:08 +1000 - -debootstrap (0.3.1) unstable; urgency=low - - * sid script updated: - - Determine base dynamically (Priority: required for required packages, - Priority: important for base packages, Build-Essential: yes for buildd - variant base). (Closes: Bug#88984, Bug#193134) - - Use fine grained dpkg progress display, thanks again to Colin Watson. - (Closes: Bug#229314, Bug#231109, Bug#244563) - - * dpkg output (etc) goes to /var/log/bootstrap.log in the target, rather - than stdout. This is probably difficult for frontends to capture - at present. - - * Parsing of Packages file sped up. (Yay!) - - * debootstrap.deb now arch: all (Closes: Bug#122465, Bug#131552) - - perl implementation of pkgdetails used by preference - - devices.tar.gz reduced to minimal set of devices; frontends should - setup udev or supply their own devices or similar in future - - /usr/lib/debootstrap/arch not shipped - - none of the above applies to udebs yet; though the devices.tar.gz - change will eventually - - * Support for verifying based on Release.gpg files (--keyring). Thanks - to Colin Watson. (Closes: Bug#313383) - - -- Anthony Towns Tue, 14 Jun 2005 00:22:55 +1000 - -debootstrap (0.3.0) unstable; urgency=low - - * The Gernot Heiser release, dedicated to everyone who drinks enough to - lose their better judgement, and those of us who didn't have any in - the first place. - - * Major update. New features: - + Use $TARGET/debootstrap directory for state info - (--keep-debootstrap-dir) - + Support for cross-strapping (--foreign / --second-stage) - (Closes: Bug#202529) - + Support for resolving dependencies (--resolve-deps) - + Support for Debian etch, and Ubuntu warty and hoary (Closes: Bug#312417) - + Support for handling variants within the main suite script - + Support for other versions of base packages in /v/c/apt/archives - + Initial support for fine-grained dpkg progress display, thanks to - Colin Watson (currently only for warty and hoary) - + Initial support for determining base system dynamically. - + No longer display "debootstrap.invalid" when working with - Release/Packages files. (Closes: Bug#241795, Bug#256255) - + Ignores failures for on_exit cleanup commands. (Closes: Bug#253387, - Bug#253468, Bug#308774) - + Early reporting of unavailable packages. - + More efficient parsing of Packages files. - + Generalised additions and exclusions. (Closes: Bug#191793) - + Handles symlinked configuration files in /etc a little better. - (Closes: Bug#161987, Bug#252907, Bug#272257) - - * Dropped support for slink. - - * Use ln -fs for mawk/awk link. (Closes: Bug#248398, Bug#258524) - - * Dropped mail-transport-agent, and hence mailx and at from sid/etch base. - (Closes: Bug#168473) - * Dropped ipchains for i386 (Closes: Bug#266119) - * Other minor changes to meet dependencies, also. (Closes: Bug#312701) - - * Minor manpage fixes. (Closes: Bug#285777) - * Add check for specifying no components (CloseS: Bug#283810) - - * Include 0.2.45 NMUs, thanks to Steve Langasek. - (Closes: Bug#295571, Bug#283752, Bug#278158) - - -- Anthony Towns Sun, 12 Jun 2005 23:49:58 +1000 - -debootstrap (0.2.45-0.2) unstable; urgency=low - - * Non-maintainer upload. - * [sarge, sid] Replace libparted1.6-0 with libparted1.6-12 for ia64, - to keep up with the ABI changes for that package. (Closes: #295571) - * [sarge, sid] include pciutils on hppa as well, per request of the - hppa folks. (Closes: #283752) - - -- Steve Langasek Fri, 25 Feb 2005 22:23:30 -0800 - -debootstrap (0.2.45-0.1) unstable; urgency=low - - * Non-maintainer upload. - * [sarge, sid] Drop libgnutls10 and libgcrypt7, since they are no - longer needed by exim4. (Closes: #278158). - - -- Steve Langasek Thu, 20 Jan 2005 21:20:22 -0800 - -debootstrap (0.2.45) unstable; urgency=high - - * Acknowledge NMUs. (Closes: #270135) - * [woody.buildd] Corrected ia64 special cases. Patch by Brett Johnson - . (Closes: #271894) - - -- J.H.M. Dassen (Ray) Sat, 18 Sep 2004 13:49:23 +0200 - -debootstrap (0.2.44.2) unstable; urgency=low - - * NMU again, this time using the makedev in unstable instead of the - experimental so devices.tar.gz isn't empty on ia64... oops... /o\ - - -- Bdale Garbee Tue, 14 Sep 2004 20:03:56 -0600 - -debootstrap (0.2.44.1) unstable; urgency=low - - * NMU to resolve d-i inability to install sid on ia64 - * add pciutils to the base package list for ia64, to avoid having to regress - efibootmgr in unstable, closes: #270315, #268490 - - -- Bdale Garbee Mon, 13 Sep 2004 15:11:11 -0500 - -debootstrap (0.2.44) unstable; urgency=high - - * [sarge] Removed "gcc-3.0-base" and "libstdc++3" for HPPA as they have been - removed from sarge as well on that arch. (Closes: #268917) - - -- J.H.M. Dassen (Ray) Mon, 30 Aug 2004 08:53:30 +0200 - -debootstrap (0.2.43) unstable; urgency=high - - * [sarge] Added back libgnutls10 in order not to break d-i testing. - (Closes: #268578, #268663). - - -- J.H.M. Dassen (Ray) Sun, 29 Aug 2004 09:08:48 +0200 - -debootstrap (0.2.42) unstable; urgency=high - - * Acknowledge NMUs. (Closes: #262137, #262165, #262178, #262375) - * [sarge] Switch to libgnutls11 so exim4 can switch. (Closes: #268325) - * [sid] Removed "gcc-3.0-base" and "libstdc++3" for HPPA as they have been - removed from sid. (Closes: #268049) - * [Makefile] Make the regular video devices on all archs. (Closes: #265081) - * [Makefile,debootstrap] Switched away from deprecated chown syntax; - switched away from XSIisms '-a' and '-o'. (Closes: #256098) - * [debootstrap.8] Use '\-' rather than '-' in options. (Closes: #263955) - Confirmed that the "exlude" typo has already been fixed. (Closes: #254108) - Applied patch by Javier Fernández-Sanguino Peña - for "file" URL documentation and a more complete example. (Closes: #226662) - - -- J.H.M. Dassen (Ray) Fri, 27 Aug 2004 15:40:02 +0200 - -debootstrap (0.2.41-0.2) unstable; urgency=low - - * Non-maintainer upload - * [sarge, sid] Add missing libgcrypt11 to base, needed by libgnutls11 - in sid and needed in sarge for opencdk8 to be rebuilt against it - (closes: #262375, #262178). - - -- Steve Langasek Fri, 30 Jul 2004 20:26:57 -0700 - -debootstrap (0.2.41-0.1) unstable; urgency=low - - * Non-maintainer upload with consent of JHM. - * Pull libfribidi0 back out of base, it's opportunistically installed - by d-i now for the locales that need it (closes: #262137). - * Re-add bootloaders on ia64, sparc, mips, hppa, and m68k to base, - because debian-installer isn't ready for this change (closes: #262165). - - -- Steve Langasek Thu, 29 Jul 2004 14:14:33 -0700 - -debootstrap (0.2.41) unstable; urgency=high - - * High urgency upload as per tbm's request. - * [sarge, sid] No longer install setserial, as it causes problems on some - systems (e.g. #212646) and there is a consensus it is no longer needed in - a base environment. - * [sarge, sid] Removed aboot, aboot-base, elilo, efibootmgr, silo, dvhtool, - delo, palo, vmelilo. As per the consensus reached in the thread starting - with http://lists.debian.org/debian-boot/2004/04/msg00634.html, the - installation of boot loaders is now debian-installer's responsibility. - (Closes: #247906) - * [sarge, sid] Added libfribidi0 to base to make debconf localisation into - right to left languages possible. (Closes: #253229) - * [sarge.buildd] Drop libdb4.0 for libdb4.2 as needed by perl. - * [sid] Added libgnutls11 as libgnutls10 is being phased out. - * [Makefile] Include /dev/ida on ia64. (Closes: #258055) - - -- J.H.M. Dassen (Ray) Thu, 29 Jul 2004 20:37:37 +0200 - -debootstrap (0.2.40) unstable; urgency=medium - - * [woody.buildd] Ensure the on_exit umounting of /dev/pts doesn't mess up - an otherwise OK exit status. (Closes: #260699) - * Acknowledge NMUs. (Closes: #258350, #260253) - - -- J.H.M. Dassen (Ray) Thu, 22 Jul 2004 21:53:20 +0200 - -debootstrap (0.2.39.2) unstable; urgency=low - - * Non-maintainer upload. - * [sarge, sid] Drop quik from powerpc, as debian-installer handles this - now (closes: #260253). - - -- Colin Watson Thu, 22 Jul 2004 16:56:19 +0100 - -debootstrap (0.2.39.1) unstable; urgency=low - - * NMU - * add passwd to sid.buildd,sarge.buildd as bash depends on them - - -- Junichi Uekawa Fri, 9 Jul 2004 09:07:28 +0900 - -debootstrap (0.2.39) unstable; urgency=medium - - * [sarge,sid] Dropped libdb2. Thanks Matt Zimmerman. (Closes: #250813) - * [sarge,sid] Dropped libident. Thanks LaMont Jones. (Closes: #251320) - * [sarge,sid] Dropped slang1. Thanks LaMont Jones. (Closes: #251328) - * [woody.buildd] Install libperl5.6. Thanks Rene Engelhard. (Closes: #251702) - * [sarge.buildd] Install libc6.1 rather than libc6 on alpha. Thanks Rene - Engelhard. (Closes: #251703) - - Goswin von Brederlow - * Copy script for sarge to sid - * Add handling for amd64 to sarge/sid scripts - * Dropped gcc-3.2-base. (Closes: #250836) - - -- J.H.M. Dassen (Ray) Sat, 5 Jun 2004 10:02:50 +0200 - -debootstrap (0.2.38.1) unstable; urgency=low - - * NMU. - * [sarge] Add libdb4.2 since apt-utils (0.5.25) depends on this. - - -- Otavio Salvador Thu, 20 May 2004 22:18:41 -0300 - -debootstrap (0.2.38) unstable; urgency=medium - - * [woody.buildd] Readd libgdbmg1 (for perl-modules). - - -- J.H.M. Dassen (Ray) Fri, 7 May 2004 10:55:13 +0200 - -debootstrap (0.2.37) unstable; urgency=medium - - * [debian/control] Bumped makedev build dependency so as not to get pty - permissions problems. (Closes: #246709) - * [sid, sid.buildd] Add/switch to libdb4.2 for the new perl packages. - * Acknowledge NMU 0.2.36.1. (Closes: #246368) - - -- J.H.M. Dassen (Ray) Tue, 4 May 2004 07:58:02 +0200 - -debootstrap (0.2.36.1) unstable; urgency=low - - * Non-maintainer upload with maintainer permission. - * [sarge, sid] Drop yaboot from powerpc, as debian-installer handles this - now (closes: #246368). - - -- Colin Watson Fri, 30 Apr 2004 00:05:02 +0100 - -debootstrap (0.2.36) unstable; urgency=high - - Joey Hess : - * [sid, sarge] Add a subst_package function, and use it to replace libc6 - with libc6.1 on alpha and ia64, to avoid reordering libc in the required - list and work around bug #238963. (Closes: #245680) - - -- J.H.M. Dassen (Ray) Sun, 25 Apr 2004 18:37:42 +0200 - -debootstrap (0.2.35) unstable; urgency=high - - * [sarge, sid] Dropped syslinux. (Closes: #205379) - * [woody, woody.buildd] Removed libgdbmg1. (Closes: #244447) - * [debootstrap, functions] Sync at the end of debootstrap. (Closes: #225742) - - -- J.H.M. Dassen (Ray) Thu, 22 Apr 2004 16:51:49 +0200 - -debootstrap (0.2.34) unstable; urgency=high - - * [sid] Dropped libpci1 and libpci2 as the pciutils dependency change has - been reverted. (Closes: #244344) - - -- J.H.M. Dassen (Ray) Thu, 22 Apr 2004 08:14:28 +0200 - -debootstrap (0.2.33) unstable; urgency=high - - * [sid] Added libpci1 and libpci2 for all archs where pciutils is installed, - as pciutils now depends on them. (Closes: #244344) - - -- J.H.M. Dassen (Ray) Sun, 18 Apr 2004 09:41:23 +0200 - -debootstrap (0.2.32) unstable; urgency=high - - * [sarge, sid] No longer try to filter out console-tools on s390. While - console-tools is basically useless on s390, base-config depends on it. - (Closes: #241727) - - -- J.H.M. Dassen (Ray) Fri, 9 Apr 2004 16:26:23 +0200 - -debootstrap (0.2.31) unstable; urgency=medium - - * [sarge] Exim has changed GnuTLS dependencies. Added libgnutls10, - libgcrypt7, libgpg-error0, libopencdk8, libtasn1-2; dropped libgnutls7, - libgcrypt1, libtasn1-0. - * [sarge] Removed libgnutls7, libgcrypt1, libtasn1-0. - - -- J.H.M. Dassen (Ray) Tue, 23 Mar 2004 22:47:28 +0100 - -debootstrap (0.2.30) unstable; urgency=medium - - * [sarge, sid] aboot needs aboot-base. (Closes: #236368, #239302) - - -- J.H.M. Dassen (Ray) Mon, 22 Mar 2004 21:10:31 +0100 - -debootstrap (0.2.29) unstable; urgency=low - - * NMU with permission of maintainer. - * Added {woody,sarge,sid}.buildd scripts to create build chroots. - Closes: #236418. - * Added --variant=buildd option for convenient access to these scripts. - - -- Daniel Schepler Wed, 10 Mar 2004 02:29:27 -0800 - -debootstrap (0.2.28) unstable; urgency=medium - - * [sid] Exim has changed GnuTLS dependencies. Added libgnutls10, libgcrypt7, - libgpg-error0, libopencdk8, libtasn1-2; dropped libgnutls7, libgcrypt1, - libtasn1-0. - * [sarge,sid] Dropped lilo, mbr, modconf, libdevmapper1.00 as - debian-installer handles the bootloader installation and modules - configuration. (Closes: #232667, #232672, #232673) - - -- J.H.M. Dassen (Ray) Tue, 24 Feb 2004 09:57:35 +0100 - -debootstrap (0.2.27) unstable; urgency=medium - - * [sarge] Lilo now needs libdevmapper1.00; Removed libopencdk8, libgcrypt7, - libgpg-error0. - - -- J.H.M. Dassen (Ray) Sat, 14 Feb 2004 01:19:48 +0100 - -debootstrap (0.2.26) unstable; urgency=medium - - * [sarge] Removed gcc-3.2-base. (Closes: #230697) - * [sid] Lilo now needs libdevmapper1.00 . - - -- J.H.M. Dassen (Ray) Tue, 3 Feb 2004 08:27:54 +0100 - -debootstrap (0.2.25) unstable; urgency=high - - * [functions] Unmount proc/bus/usb, not proc/usb. (Closes: #229122) - - -- J.H.M. Dassen (Ray) Fri, 30 Jan 2004 18:01:29 +0100 - -debootstrap (0.2.24) unstable; urgency=high - - * [functions, sarge, sid] Try to unmount proc/usb, dev/shm, dev/pts on exit; - don't fail when there's nothing to unmount. - (Closes: #229122, #229901, #229907) - * [woody] Don't fail when there's no dev/pts to unmount. - * [sarge, sid] Don't install pcmcia-cs as debian-installer takes care of - that where needed. (Closes: #221907) - * [sid] Removed libopencdk8, libgcrypt7, libgpg-error0. - * [sarge] libopencdk8 (needed for exim4-daemon-light via libgnutls7) - Depends: libgcrypt7, libgpg-error0. (Closes: #229989) - - -- J.H.M. Dassen (Ray) Wed, 28 Jan 2004 18:48:02 +0100 - -debootstrap (0.2.23) unstable; urgency=high - - * [sarge] Dropped libopencdk4 in favour of libopencdk8 as gnutls has switched. - - -- J.H.M. Dassen (Ray) Thu, 1 Jan 2004 01:30:02 +0100 - -debootstrap (0.2.22) unstable; urgency=high - - * [sid] libopencdk8 Depends: libgcrypt7, libgpg-error0. - - -- J.H.M. Dassen (Ray) Wed, 31 Dec 2003 12:35:03 +0100 - -debootstrap (0.2.21) unstable; urgency=high - - * [sarge] Added coreutils' new predependencies libacl1 and libattr1; removed - libsasl2 as it is no longer needed. - - -- J.H.M. Dassen (Ray) Sun, 28 Dec 2003 22:54:08 +0100 - -debootstrap (0.2.20) unstable; urgency=high - - * [sarge] base-config now Depends: aptitude; aptitude Depends: - libsigc++-1.2-5c102. - - -- J.H.M. Dassen (Ray) Sun, 28 Dec 2003 15:11:31 +0100 - -debootstrap (0.2.19) unstable; urgency=high - - * [sid] base-config now Depends: aptitude; aptitude Depends: - libsigc++-1.2-5c102. - - -- J.H.M. Dassen (Ray) Wed, 24 Dec 2003 09:03:44 +0100 - -debootstrap (0.2.18) unstable; urgency=low - - * Thanks to Steinar Gunderson and Matt Kraii for the NMU fixing some - d-i related problems. (Closes: Bug#220150) - * Acknowledge that the problems really are fixed now. (Closes: - Bug#213669, Bug#209273, Bug#210912) - - * Fix downloading of Packages files to retry if bz2 or gz isn't available - on the mirror. (Closes: Bug#194592) - - -- Anthony Towns Sat, 15 Nov 2003 00:13:13 +1000 - -debootstrap (0.2.17.1) unstable; urgency=high - - * NMU - * [sarge,sid] Display only the package name when retrieving packages. - (Closes: #213669, #209273) - * [sarge,sid] Added progress information for downloading package - details. (Closes: #210912) - - -- Steinar H. Gunderson Mon, 10 Nov 2003 15:11:09 +0100 - -debootstrap (0.2.17) unstable; urgency=high - - * [sarge] Fixed typo: libreadlin4 -> libreadline4. (Closes: #219655) - - -- J.H.M. Dassen (Ray) Sat, 8 Nov 2003 23:23:37 +0100 - -debootstrap (0.2.16) unstable; urgency=high - - * [sarge,sid] libreadline4 is required for amiga-fdisk on powerpc. - (Closes: #218533) - * [sarge,sid] Put libreadline4 in required rather than base for ia64. - - -- J.H.M. Dassen (Ray) Wed, 5 Nov 2003 08:09:41 +0100 - -debootstrap (0.2.15) unstable; urgency=high - - * ia64 fixes by Richard Hirst : (Closes: #218533) - * [sarge, sid] Add libreadline4 to base for ia64 as parted needs it. - * [sarge, sid] Remove gcc-2.96-base from required for ia64. - - -- J.H.M. Dassen (Ray) Sat, 1 Nov 2003 12:58:34 +0100 - -debootstrap (0.2.14) unstable; urgency=high - - * [sarge] Made exim4 the default MTA. (Closes: #217657) - * [sarge] Removed libstdc++2.10-glibc2.2, libldap2 . - * [sid] Dropped libopencdk4 in favour of libopencdk8 as gnutls has switched. - - -- J.H.M. Dassen (Ray) Tue, 28 Oct 2003 09:56:27 +0100 - -debootstrap (0.2.13) unstable; urgency=high - - * [sarge] Added libtextwrap1 for tasksel. - - -- J.H.M. Dassen (Ray) Wed, 22 Oct 2003 08:10:37 +0200 - -debootstrap (0.2.12) unstable; urgency=high - - * [sarge, sid] Add libreadline4 to required for m68k as amiga-fdisk needs - it. (Closes: #216617) - - -- J.H.M. Dassen (Ray) Mon, 20 Oct 2003 10:05:09 +0200 - -debootstrap (0.2.11) unstable; urgency=high - - * [sid] Added libc6-sparc64 lib64gcc1 lib64ncurses5 to base for sparc. - (Closes: #215590) - * [sarge, sid] Dropped libreadline as bash no longer depends on it. - * [sid] Dropped libstdc++2.10-glibc2.2 and its associated special cases as - it is no longer needed. - - -- J.H.M. Dassen (Ray) Wed, 15 Oct 2003 19:42:58 +0200 - -debootstrap (0.2.10) unstable; urgency=high - - * [sid] Fixed /usr/sbin/sendmail symlink to point to exim4. (Closes: #213734) - - -- J.H.M. Dassen (Ray) Sat, 4 Oct 2003 15:47:31 +0200 - -debootstrap (0.2.9) unstable; urgency=high - - * [sarge] Added libgdbm3 for man-db. - - -- J.H.M. Dassen (Ray) Thu, 2 Oct 2003 23:57:09 +0200 - -debootstrap (0.2.8) unstable; urgency=high - - * [sid] Added libtextwrap1 for tasksel; removed libsasl2 as it is no longer - needed. - - -- J.H.M. Dassen (Ray) Thu, 2 Oct 2003 07:57:16 +0200 - -debootstrap (0.2.7) unstable; urgency=high (fixes RC d-i bug) - - * [sarge] Reinstated special-case for libperl5.8; it is still needed for - non-i386 until sarge has perl >= 5.8.0-20. (Closes: #213280) - * [debian/control] Updated Standards-Version; fixed removal of slink and - potato scripts from udeb. - * [debian/control] Updated priorities; debootstrap-udeb is required (for - debian-installer). - * [debian/rules] Fixed dpkg-distaddfile accordingly. - - -- J.H.M. Dassen (Ray) Tue, 30 Sep 2003 14:31:57 +0200 - -debootstrap (0.2.6) unstable; urgency=low - - * [sarge] Added e2fslibs, libcomerr2, libss2, libuuid1 for e2fsprogs. - - -- J.H.M. Dassen (Ray) Fri, 26 Sep 2003 13:50:58 +0200 - -debootstrap (0.2.5) unstable; urgency=low - - * [sid] Added libgdbm3 for man-db. - * [sarge, sid] Dropped special-case for libperl5.8 (Closes: #210425). - * [sid] Make exim4 the default MTA as it is configured through debconf. - (Closes: #208047) - * [sid] Removed libldap2 which is no longer needed. - - -- J.H.M. Dassen (Ray) Sun, 21 Sep 2003 13:30:49 +0200 - -debootstrap (0.2.4) unstable; urgency=low - - * [sid] Added coreutils' new predependencies libacl1 and libattr1. - * [debian/README.Debian] Corrected example invocation. (Closes: #206142) - * [debian/README.Debian] Fixed a typo. - - -- J.H.M. Dassen (Ray) Wed, 20 Aug 2003 10:28:49 +0200 - -debootstrap (0.2.3) unstable; urgency=low - - * [sarge] Add new dependencies of debconf: debconf-i18n - liblocale-gettext-perl libtext-wrapi18n-perl libtext-charwidth-perl. - * Acknowledge NMU. (Closes: #203370) - - -- J.H.M. Dassen (Ray) Sat, 16 Aug 2003 20:15:40 +0200 - -debootstrap (0.2.2-0.1) unstable; urgency=low - - * NMU. - * Fix typo in woody script. (Closes: #203370) - - -- Petter Reinholdtsen Tue, 29 Jul 2003 20:29:01 +0200 - -debootstrap (0.2.2) unstable; urgency=low - - * [debian/changelog] Included entries for NMUs 0.1.17.31 through .34 whose - changes were incorporated by aj already. - * [Makefile] Invoke MAKEDEV through its FHS location (noted by Matt - Zimmerman). (Closes: #190239) - * Acknowledge older NMUs whose changes have been incoporated. - (Closes: #135675, #161695, #191849) - - -- J.H.M. Dassen (Ray) Tue, 29 Jul 2003 18:31:49 +0200 - -debootstrap (0.2.1) unstable; urgency=low - - * The Day of the Daffodils release. - - * Accept NMUs up to 0.1.17.30. Thanks guys! (Closes: Bug#148377, - Bug#150161, Bug#150492, Bug#153962, Bug#154463, Bug#155906, - Bug#160879, Bug#161469, Bug#161469, Bug#161722, Bug#163860, - Bug#172118, Bug#176221, Bug#179504, Bug#179725, Bug#185397, - Bug#187893, Bug#188053, Bug#189472, Bug#189551, Bug#190108, - Bug#191288, Bug#193794, Bug#193806, Bug#195012, Bug#195742, - Bug#199333, Bug#201066) - * JHM added to Uploaders. - - * Change the info/error/warning/progress calls to include a unique word - for each string, a printf format string, and any arguments to the - printf string. - * Add support for debian-installer interaction - - * Add some support for l10n. Gettext is used if it's available; no - translations are included as of yet. This support doesn't - affect debian-installer, which has its own stuff for i18n, nor - boot-floppies. (Closes: Bug#125647) - - * Some initial support for cross-bootstrapping in the sid script. - - * Use dpkg --print-installation-architecture instead of - --print-architecture. (Closes: Bug#138526, Bug#159720) - - * Add new dependencies of debconf: debconf-i18n liblocale-gettext-perl - libtext-wrapi18n-perl libtext-charwidth-perl. (Closes: Bug#201066) - * Add new dependencies of libldap2: libgnutls7 libgcrypt1 liblzo1 - libopencdk4 libtasn1-0 zlib1g. (Closes: Bug#201663) - * Remove libgdbmg1. (Closes: Bug#202304) - * Add new dependecies of e2fsprogs: e2fslibs libcomerr2 libss2 libuuid1. - (Closes: Bug#203033) - * Add wget to base. (Closes: Bug#145635) - * Switch from netkit-ping to iputils-ping. - - * Changed the manpage a little. (Closes: Bug#126864) - * Updated README.Debian. - - -- Anthony Towns Tue, 29 Jul 2003 18:15:24 +1000 - -debootstrap (0.1.17.34) unstable; urgency=medium - - * [sid] Added e2fsprogs' new predependencies (e2fslibs, libcomerr2, libss2, - libuuid1). - * [sarge] Removed libgdbmg1 as it is no longer needed. - - -- J.H.M. Dassen (Ray) Sun, 27 Jul 2003 09:20:49 +0200 - -debootstrap (0.1.17.33) unstable; urgency=medium - - * [sid] Removed libgdbmg1 as it is no longer needed. - * [sarge] libldap2 now Depends: libgnutls7, libsasl2; added those and their - dependencies (libgcrypt1 liblzo1 libopencdk4 libtasn1-0 zlib1g). Dropped - libsasl7 in favour of libsasl2. - - -- J.H.M. Dassen (Ray) Mon, 21 Jul 2003 19:00:28 +0200 - -debootstrap (0.1.17.32) unstable; urgency=medium - - * [sid] libldap2 now Depends: libgnutls7; added that and its dependencies - (libgcrypt1 liblzo1 libopencdk4 libtasn1-0 zlib1g); dropped libssl0.9.7 . - - -- J.H.M. Dassen (Ray) Thu, 17 Jul 2003 07:05:09 +0200 - -debootstrap (0.1.17.31) unstable; urgency=medium - - * [sid] Follow debconf changes. debconf now Depends: debconf-i18n | - debconf-english; debconf-i18n having Priority: important and - debconf-english having Priority: extra, so we satisfy the dependency - through debconf-i18n. debconf-i18n in turn pulls in three additional - packages: liblocale-gettext-perl, libtext-wrapi18n-perl, - libtext-charwidth-perl . - - -- J.H.M. Dassen (Ray) Sun, 13 Jul 2003 08:52:55 +0200 - -debootstrap (0.1.17.30) unstable; urgency=medium - - * [sarge] - * Added sysv-rc for /usr/sbin/update-rc.d . - * Added initscripts to satisfy sysvinit's predependency. - * libparted1.6-0 has replaced libparted1.4 on ia64. (Closes: #197957) - - -- J.H.M. Dassen (Ray) Mon, 30 Jun 2003 07:05:22 +0200 - -debootstrap (0.1.17.29) unstable; urgency=medium - - * [sid] libconsole has replaced console-tools-libs. (Closes: #195722) - * [sarge] libperl5.6 has been replaced by libperl5.8 . (Closes: #195588) - - -- J.H.M. Dassen (Ray) Mon, 2 Jun 2003 00:40:54 +0200 - -debootstrap (0.1.17.28) unstable; urgency=medium - - * [sarge] libnewt0.51 has replaced libnewt0; it requires slang1a-utf8. - - -- J.H.M. Dassen (Ray) Wed, 28 May 2003 07:42:14 +0200 - -debootstrap (0.1.17.27) unstable; urgency=medium - - * urgency medium to not hold up .26 with that longer as necessary - * [sarge] added libtext-iconv-perl (this is the second part - from .22) (closes: #184539) - - -- Rene Engelhard Mon, 19 May 2003 00:08:48 +0200 - -debootstrap (0.1.17.26) unstable; urgency=medium - - * [sarge] libpcap0.7 has replaced libpcap0. - - -- J.H.M. Dassen (Ray) Sun, 18 May 2003 23:23:46 +0200 - -debootstrap (0.1.17.25) unstable; urgency=medium - - * [sarge] Added libblkid1 (for e2fsprogs). - - -- J.H.M. Dassen (Ray) Sun, 4 May 2003 12:44:00 +0200 - -debootstrap (0.1.17.24) unstable; urgency=medium - - * [sid] Updates for new whiptail: - * Replaced libnewt0 by libnewt0.51. - * Added slang1a-utf8. - - -- J.H.M. Dassen (Ray) Tue, 29 Apr 2003 19:04:51 +0200 - -debootstrap (0.1.17.23) unstable; urgency=medium - - * [sid] - * Added sysv-rc for /usr/sbin/update-rc.d . - * Added initscripts to satisfy sysvinit's predependency. - * For exim, dropped libsasl7 in favour of libsasl2. - * Added libssl0.9.7 for libsasl2. - - -- J.H.M. Dassen (Ray) Tue, 22 Apr 2003 06:56:25 +0200 - -debootstrap (0.1.17.22) unstable; urgency=low - - * [sid] added libtext-iconv-perl which is needed to display - localized po-debconf templates actually localized. - This needs a second step later for sarge but that only is possible - after libtext-iconv-perl 1.2-2 went into sarge. - - -- Rene Engelhard Fri, 18 Apr 2003 16:25:17 +0200 - -debootstrap (0.1.17.21) unstable; urgency=medium - - * [sarge, sid] Added gcc-3.3-base (as it is needed for current libstdc++5). - - -- J.H.M. Dassen (Ray) Fri, 18 Apr 2003 08:11:55 +0200 - -debootstrap (0.1.17.20) unstable; urgency=medium - - * [woody, sarge, sid] Add devfsd on s390 as that architecture uses devfs by - default. (Closes: #180252) - * [sarge] Removed the dummy fileutils package. - - -- J.H.M. Dassen (Ray) Mon, 7 Apr 2003 19:59:42 +0200 - -debootstrap (0.1.17.19) unstable; urgency=medium - - * [sid] Added libblkid1 (for e2fsprogs). - - -- J.H.M. Dassen (Ray) Sun, 6 Apr 2003 21:43:29 +0200 - -debootstrap (0.1.17.18) unstable; urgency=medium - - * [sarge] Added libgcc1, libstdc++5, gcc-3.2-base; dropped aptitude, - libsigc++0 . - * Debootstrap has depended on binutils since 0.1.17.3. (Closes: #184304) - - -- J.H.M. Dassen (Ray) Wed, 19 Mar 2003 06:55:56 +0100 - -debootstrap (0.1.17.17) unstable; urgency=medium - - * NMU - * Really drop aptitude from the sid script, not just libsigc++0. - - -- J.H.M. Dassen (Ray) Tue, 4 Feb 2003 06:49:36 +0100 - -debootstrap (0.1.17.16) unstable; urgency=medium - - * NMU - * Drop aptitude from the sid script (base-config 1.51 dropped its dependency - on it) and libsigc++0 (which was only needed for aptitude). This makes - "pbuilder create --distribution sid" work again. (Closes: #177221, #177998). - - -- J.H.M. Dassen (Ray) Sun, 2 Feb 2003 20:41:35 +0100 - -debootstrap (0.1.17.15) unstable; urgency=low - - * NMU - * For gcc-transition, libgcc1 and libstdc++5 and gcc-3.2-base - required by groff-base, and potentially other packages compiled with - gcc-3.2. - - -- Junichi Uekawa Mon, 13 Jan 2003 15:39:55 +0900 - -debootstrap (0.1.17.14) unstable; urgency=low - - * NMU - * Remove debootstrap-udeb's dependency on retriever. - - -- Tollef Fog Heen Sat, 7 Dec 2002 14:53:52 +0100 - -debootstrap (0.1.17.13) unstable; urgency=low - - * NMU - * sarge: Removed shellutils, textutils and added coreutils instead. - Verified that the result works for "pbuilder create --distribution sarge" - (Closes: #163789) - Fileutils is still in there for now, due to sarge's debconf versioned - dependency on it. - - -- J.H.M. Dassen (Ray) Tue, 8 Oct 2002 23:17:47 +0200 - -debootstrap (0.1.17.12) unstable; urgency=low - - * NMU - * Fix shell variable quoting problem, to change $10 -> ${10} - (closes: #161468) - - -- Junichi Uekawa Sat, 21 Sep 2002 13:39:47 +0900 - -debootstrap (0.1.17.11) unstable; urgency=low - - * NMU - * sarge: added libdb1-compat. - - -- J.H.M. Dassen (Ray) Sat, 21 Sep 2002 00:37:36 +0200 - -debootstrap (0.1.17.10) unstable; urgency=low - - * NMU - * sid: Removed shellutils, fileutils, and added coreutils for required - target (closes: #161332) - * sid: change libperl5.6 to libperl5.8 (closes: #158606) - - -- Junichi Uekawa Wed, 18 Sep 2002 21:41:36 +0900 - -debootstrap (0.1.17.9) unstable; urgency=low - - * NMU - * Added "libdb1-compat" to sid and verified that the resulting package is - usable for "pbuilder create --distribution sid". - - -- J.H.M. Dassen (Ray) Sat, 14 Sep 2002 15:09:10 +0200 - -debootstrap (0.1.17.8) unstable; urgency=low - - * NMU - * The "it didn't change the way the installer worked" release. - * Makefile: create $(DESTDIR)/usr/share/man/man8 before attempting to - install a file to it (Closes: #139543) - * functions: fix race condition in smallyes() implementation; thanks to Matt - Zimmerman for the analysis. "Sometimes, dpkg finishes executing before - smallyes runs, and it loops forever while echo fails repeatedly due to the - broken pipe." To fix this race, we simply swap the loop condition and - body, so that if the echo fails, smallyes() exits cleanly. I further - changed "true" to ":" to save the expense of an extra process for shells - where "true" is not a built-in. - (Closes: #139529) - - -- Branden Robinson Thu, 29 Aug 2002 12:50:08 -0500 - -debootstrap (0.1.17.7) unstable; urgency=low - - * NMU - * Forked "sid" target from "sarge" target, changed "libcap0" to the now - current "libpcap0.7" and verified that the result works with pbuilder. - (Closes: #156574) - - -- J.H.M. Dassen (Ray) Wed, 21 Aug 2002 11:01:52 +0200 - -debootstrap (0.1.17.6) unstable; urgency=low - - * NMU - * add dselect to required (I found out that it is actually required - for pbuilder create to work) (closes: #154527) - * change DEBIAN_FRONTEND=Noninteractive to "noninteractive" (closes: #154794) - * add sh* patch from Yaegashi (closes: #155142) - - -- Junichi Uekawa Thu, 8 Aug 2002 19:23:04 +0900 - -debootstrap (0.1.17.5) unstable; urgency=low - - * NMU - * mistake in the last upload, sorry aj. - sid points to sarge, not woody. (closes: #149971) - - -- Junichi Uekawa Sat, 27 Jul 2002 17:22:05 +0900 - -debootstrap (0.1.17.4) unstable; urgency=low - - * NMU - * add "sarge" target (closes: #153957) - - -- Junichi Uekawa Tue, 23 Jul 2002 18:03:01 +0900 - -debootstrap (0.1.17.3) unstable; urgency=low - - * NMU - * Depend on binutils (closes: #138489) - * Sleep is optional (closes: #150468) - * POSIXify a bit more (closes: #150487) - * Add support for --components (closes: #116801) - - -- Tollef Fog Heen Thu, 20 Jun 2002 00:13:06 +0200 - -debootstrap (0.1.17.2) unstable; urgency=low - - * NMU - * Make sid script not a symlink from woody script - * add aptitude and libsigc++0 to base for sid. (closes: #149971) - - -- Junichi Uekawa Sat, 15 Jun 2002 12:46:11 +0900 - -debootstrap (0.1.17.1) unstable; urgency=low - - * NMU - * Add udeb support (closes: #143874) - - -- Tollef Fog Heen Tue, 28 May 2002 14:15:41 +0200 - -debootstrap (0.1.17) unstable; urgency=high - - * Includes changes from NMUs. Thanks to Stefan Gybas and Eduard Bloch. - (Closes: Bug#130764, Bug#135676, Bug#134306, Bug#133882, Bug#131768, - Bug#117980, Bug#133298, Bug#130668, Bug#111175, Bug#131147, Bug#95143, - Bug#130482) - - * Don't use PIPESTATUS to work out if wget succeeded, since that's a - bashism and we're seriously not allowed bashisms. Duh. This should - help with all those "Malformed release" problems. Thanks to Phil - Blundell and Chris Tillman for spotting this. (Closes: Bug#136729) - - * Apply patch from Matt Zimmerman to get rid of some irritating warnings - that can show up sometimes due to sed getting it's output stream closed - on it. (Closes: Bug#131478) - - * Don't use "export foo=bar" on a single line since it's a bashism. - (Closes: Bug#138187) - - * Made the "smallyes" usage independent of --boot-floppies. Too much - code duplication otherwise. - - * Install ipchains on arches that have 2.2.x kernels by default, and - iptables on arches that have 2.4.x kernels by default. Some arches - have both. (Closes: Bug#134478) - - * Don't rm malformed Release files, rename them to something obvious - instead so people can have a hope at seeing what's going on. (Closes: - Bug#131756) - - * Error out on missing entries in Release files. (Closes: Bug#136886) - - * Fix basedeb creation to not bother building devices tarball. (Closes: - Bug#137243) - - * Workaround for ldconfig no longer needed, so removed. (Closes: Bug#135819) - * Workaround for /dev/initctl was never needed and stupid, so removed. - - * Make sure devices.tar.gz is gzip -9'ed. (Closes: Bug#136687) - - * Use any "main" components found in Release file, eg "main", - "non-US/main", "local/main". (Closes: Bug#116801) - - * Add parted to base for ia64. (Closes: Bug#138246) - - * Moved the "successful!" message and sleep hack for boot-floppies from - the woody script to the debootstrap script itself. - - -- Anthony Towns Thu, 14 Mar 2002 18:28:24 +1000 - -debootstrap (0.1.16.4) unstable; urgency=low - - * NMU, needed for boot-floppies 3.0.20 - * Added cciss and ataraid device files, closes: #135675 - * Applied the patch from Matt Zimmermann to fix --include, closes: #134306 - * Mail suppression fixed in previous release, closes: #133882 - - -- Eduard Bloch Sun, 3 Mar 2002 12:21:19 +0100 - -debootstrap (0.1.16.3) unstable; urgency=low - - * non-maintainer-upload - * require newer makedev, fixes build problems on m86k and arm - * unsets $TMP, $TEMP and $TMPDIR in the beginning, closes: #131768, #117980 - * added gcc-2.96-base to ia64's required packages list, closes: #133298 - - -- Eduard Bloch Tue, 12 Feb 2002 19:30:47 +0100 - -debootstrap (0.1.16.2) unstable; urgency=low - - * non-maintainer-upload - * added modification suggested by Branden Robinson and Matt Kraai terminate - cat (now tail) better, closes: #130668 - * provides options to install additional packages, or exclude some from the - list. May be needed in boot-floppies soon. Closes: #111175, #131147 - * --verbose option, closes: #95143 - * added additional devices to the device list, especially input and usb - needed for modern device drivers (Joysticks, USB, Scanners) - * added pppoeconf to the packages list, better choice for DSL users - * forced remove of dev/initctl, prevents breaking on re-installation - - -- Eduard Bloch Mon, 28 Jan 2002 19:14:41 +0100 - -debootstrap (0.1.16.1) unstable; urgency=high - - * non-maintainer upload for boot-floppies 3.0.19 - * Fixed list of base and required packages for s390 - * setup_devices(): don't fail if devices.tar.gz is not present and we - are using devfs - * disable handling of /dev/initctl for boot-floppies, closes: #130482 - - -- Stefan Gybas Thu, 24 Jan 2002 15:17:42 +0100 - -debootstrap (0.1.16) unstable; urgency=low - - * Include NMUs 0.1.15.1 - .9, thanks to Adam di Carlo, Ethan Benson and - Bdale Garbee. (Closes: Bug#113265, Bug#119314, Bug#119251) - * Many bugs were fixed in the NMUs. Closes them properly. (Closes: - Bug#89673, Bug#97174, Bug#99229, Bug#105980, Bug#106062, Bug#106102, - Bug#106106, Bug#106134, Bug#106711, Bug#106877, Bug#107262, - Bug#107404, Bug#107447, Bug#109670, Bug#110312, Bug#111001, - Bug#111065, Bug#112778, Bug#112795, Bug#112842, Bug#113444, - Bug#114056, Bug#114653, Bug#115467, Bug#115481, Bug#115557, - Bug#115581, Bug#115699, Bug#116061, Bug#116424, Bug#119769, - Bug#119947, Bug#121724, Bug#123958, Bug#125954, Bug#126018, - Bug#126630, Bug#126799) - - * Informative error for people who type `--boot-floppies' when running - by hand. (Closes: Bug#107548) - * Create dev/initctl in target, and setup a cat process to dump anything - sent to it to /dev/null so that if init is run in the chroot, - it doesn't try doing anything too clever to talk to the real - init. (Closes: Bug#120597) - * Create awk symlink since base-files insists on having it available. - (Closes: Bug#127934) - - * Use DEBOOTSTRAP_DIR to work out where /usr/lib/debootstrap is. - * So, in theory, to create basedeb tarballs, you should be able to unpack - the source and say: - . - fakeroot debian/rules binary-basedebs SUITE=woody VERSION=3.0 \ - MIRROR="http://ftp.debian.org/debian" ARCHES="i386 powerpc" - (Closes: Bug#127546) - - -- Anthony Towns Sun, 20 Jan 2002 21:04:37 +1000 - -debootstrap (0.1.15.9) unstable; urgency=high - - * non-maintainer upload - * debian/rules: new 'basedebs' target that makes basedebs.tgz and 1.44 - split images for base per arch - * functions: better return value handling during wget (wgetprogress) - * repeat() had a useless eval, removed, which simplifies some silly - quoting - * incorrect error message in in_target_msg(), closes: #119769 - * debian/changelog: remove obsolete "local variables" - * additional progress message when validating the release file after - download - * when the downloaded release file is invalid, make sure to delete it - closes: #119947 - * debian/rules: minor fixes and cosmetics - * upgrade wget from Recommends to Depends, closes: #126799 - * depend on binutils, for 'ar', closes: #123958 - - -- Adam Di Carlo Fri, 4 Jan 2002 20:01:58 -0500 - -debootstrap (0.1.15.8) unstable; urgency=high - - * non-maintainer upload - * Fix progress bar hooks to enable proper progress on basedebs.tgz - installation as well as actual base installation and extraction. - * trap signals so cleanup is still performed. - * When in --boot-floppies mode echo a Success info message to stdout, so - it will show up on /dev/tty4, this is so users watching tty4 stop - being confused when things just stop at completion. - * Replace $TARGET/sbin/start-stop-daemon with a shell script instead of - /bin/true, this shell script announces that its a fake noop version so - users will know whats wrong if debootstrap aborts before completion. - - -- Ethan Benson Sat, 3 Nov 2001 23:14:08 -0900 - -debootstrap (0.1.15.7) unstable; urgency=high - - * non-maintainer upload - * when reporting errors in 'in_target', don't chop down to the first - 50 characters - * woody: when in boot-floppies mode, provide more user-friendly warning - messages, using new 'in_target_msg' function - * woody: more info messages for the core/required/base package - installation part - * instead of 'ln -s' we should be using 'ln -sf'; this would prevent - running debootstrap twice in the same target dir; closes: #111065 - * before mounting proc, umount it just in case; normally this shouldn't - be needed if on_exit is working all the time, but I find without this, - sometimes problems are caused - * woody/i386 needs psmisc for pcmcia-cs (critical bug!) - * --download-only mode can be run as non-root; closes: #116424 - * tested some problems which I couldn't reproduce - closes: #115699 - - -- Adam Di Carlo Wed, 24 Oct 2001 16:05:39 -0400 - -debootstrap (0.1.15.6) unstable; urgency=medium - - * non-maintainer upload - * smaller and wiser version of smallyes(), thanks to Herbert Xu - * woody base includes pcmcia-cs for i386 and powerpc (closes: #114653) - * wget progress bar support (closes: #116061) - - -- Adam Di Carlo Thu, 18 Oct 2001 15:14:02 -0400 - -debootstrap (0.1.15.5) unstable; urgency=high - - * From Ethan Benson: - * pipe yes output into dpkg runs inside install_debs() this way on_exit - works in --boot-floppies mode. (Closes: #112842, #115481) - * Add libpcap0 to base, ppp depends on it now. (Closes: #114056) - - * From Adam Di Carlo: - * Potato installation on non-i386 was broken, need libc6 - (closes: #112778); however, there are other ways the Potato base - install doesn't represent quite what Potato boot-floppies would - consider base - * apply patch from Tommi Virtanen which improves the 'smallyes' - function; apparently this fixes a console-tools postinst loop, - although I haven't seen that (closes: #115581) - * get rid of some line continuators in potato and woody scripts, they - were obscuring some problems - - -- Adam Di Carlo Mon, 15 Oct 2001 01:56:16 -0400 - -debootstrap (0.1.15.4) unstable; urgency=high - - * more fixed for the benefits of boot-floppies - * add telnetd on s390; yes, it's gross, but it's needed for - installation, to connect from the line mode console - closes: #112795 - - -- Adam Di Carlo Sun, 23 Sep 2001 16:11:03 -0400 - -debootstrap (0.1.15.3) unstable; urgency=high - - * Fix deficient command line option parsing, optional arguments no - longer have to be declared in a specific order, for example before you - could not put --arch before --download-only, now you can. - * Add --help option and useful help output. - * Stop using dirname, basename, and yes, they are being removed from - busybox. - * Fix many many quoting bugs. - * Fix debootstrap man page (Closes: #107404, #109670) - * Add ftp support (Closes: #110312) - * Don't waste time downloading useless non-free/contrib (Closes: #89673) - * Path cleanup (Closes: #97174) - * Add pppconfig to woody base (Closes: #111001) - * Remove syslinux from base (Closes: #107447) - * Eliminate useless warning about creating exim.conf (Closes: #99229) - * Don't use "here documents" (they create tmp files in /tmp which could - be very well be full on boot-floppies). - * Don't use echo -n it is not portable. - * Set umask to 022. - * All patches from Ethan Benson, I am just the builder! - These have been tested with boot-floppies and work properly. - - -- Adam Di Carlo Sat, 22 Sep 2001 12:30:02 -0400 - -debootstrap (0.1.15.2) unstable; urgency=low - - * quoting required in one place for the new ash (Closes: Bug#106062) - * s390 support (Closes: Bug#107262) - * remove some packages from Woody's base that aren't needed: - - update (not needed with modern kernels, Closes: Bug#106877) - - syslinux (Closes: Bug#107477) - - ldso (should be pulled in by libc6, Closes: Bug#106102) - * kinks in mipsel base worked themselves out (Closes: Bug#106711) - - -- Adam Di Carlo Wed, 8 Aug 2001 12:04:40 -0400 - -debootstrap (0.1.15.1) unstable; urgency=low - - * add efibootmgr on ia64, as per bug 105980. - - -- Bdale Garbee Fri, 3 Aug 2001 14:13:23 -0600 - -debootstrap (0.1.15) unstable; urgency=low - - * Do progress indications (by bytes) for Packages downloads and .deb - downloads. (Closes: Bug#101886) - * Don't use seq. Silly busybox. - * Add pppoe to base. (Closes: Bug#102378) - * No point keeping around the "sid.is-broken" file. - - -- Anthony Towns Wed, 27 Jun 2001 21:29:29 +1000 - -debootstrap (0.1.14) unstable; urgency=low - - * Make in_target_nofail kill stderr. No more "/dev/pts: not mounted" error. - Yay. :) - - * Refactor woody, potato and slink scripts; do away with - woody.debs. Change the way the scripts work. (Now they define - functions which debootstrap calls. Much nicer) - * Support --download-only option. - * Support resuming downloads of Release and Packages files, even gzipped - ones. - * Support null: (Packages files assumed to be named for a debootstrap.invalid - host) - * Always use the deboostrap.invalid name, and use that in - /etc/apt/sources.list. Remove /etc/apt/sources.list after the base - system is build. - * All this should be enough to support basedeb.tgz installs on - debootstrap's behalf. Some more stuff would be useful, but isn't - immediately necessary. (Closes: Bug#102217) - - * Add ia64 support and fix libc6 == libc6.1 problem. (Closes: Bug#101829) - - * Be a little more careful with permissions on devs tarball. Hopefully. - (Closes: Bug#102308) - - * Don't worry if md5sum from stdin adds a " -" after the md5sum. Should - make debootstrap more usable on non-Debian Linuxes. - - -- Anthony Towns Mon, 25 Jun 2001 18:38:35 +1000 - -debootstrap (0.1.13) unstable; urgency=low - - * Add symlink for sid.debs. - * Fix the special casing for hppa. (Closes: Bug#101604) - * Remove groff from base. (Closes: Bug#101173) - * Retry partially successful downloads a couple of times. - (Closes: Bug#101476) - * Minor wording changes wrt downloading Release file (Closes: Bug#101705) - - -- Anthony Towns Thu, 21 Jun 2001 12:08:10 +1000 - -debootstrap (0.1.12) unstable; urgency=high - - * Split determination of base into a separate script to enable further - innovation! Come on, tell me that doesn't excite you! - - * Add groff-base to base. (Closes: Bug#100112, Bug#100123) - * Remove libstdc++2.10 and some other hopefully unnecessary debs - (Closes: Bug#99708) - - * Remove lilo.conf special casing. Change some warnings to info messages. - - -- Anthony Towns Sun, 10 Jun 2001 01:22:12 +1000 - -debootstrap (0.1.11) unstable; urgency=low - - * Add dhcp-client to base. (Closes: Bug#100083) - - -- Anthony Towns Sat, 9 Jun 2001 00:11:26 +1000 - -debootstrap (0.1.10) unstable; urgency=low - - * Don't abort build on devfs systems: the makedev we build-dep on should - be recent enough. (Closes: Bug#97713) - * Check for malformed release files. Thanks to Martin Michlmayr for the - patch. (Closes: Bug#97707) - * Use --force-confold when installing base. That is: if you want the - conffile from the package to be there at the end, don't create a - file in the first place. I'm not convinced this is right. - (Closes: Bug#99025) - - -- Anthony Towns Mon, 28 May 2001 14:43:07 +1000 - -debootstrap (0.1.9) unstable; urgency=low - - * Abort build on devfs systems (MAKEDEV fails for no good reason) - (Closes: Bug#97713) - - * Add support for mips and mipsel (Closes: Bug#97711) - * Add some support for hppa (install palo in base) - - * Don't install ldso (Closes: Bug#97708) - * Don't install libopenldap1 or libopenldap-runtime (replaced by libldap2) - (Closes: Bug#98050) - * Do install libdb3 and libcap1. - * Install klogd too. (But only as part of base. Move sysklogd to base too) - - * Setup a dummy lilo.conf on i386 only. (Closes: Bug#97710, Bug#98052) - - * Trim a trailing / for target and url. - - -- Anthony Towns Sun, 20 May 2001 13:33:34 +1000 - -debootstrap (0.1.8) unstable; urgency=low - - * Add adduser and base-config into base. base-config unfortunately depends - on perl instead of perl-base. (Closes: Bug#96439) - * Force LANG=C. Need to work out how i18n should be handled. - * Kludge potato install so it's noninteractive. Thanks to Colin Watson - for the patch. (Closes: Bug#94441) - * Get rid of dh_testversion. - * Make a sid script (just a symlink to the woody script). - - -- Anthony Towns Wed, 9 May 2001 20:33:00 +1000 - -debootstrap (0.1.7) unstable; urgency=low - - * Don't worry if umounting /dev/pts fails. - * Add debootstrap(8) manpage, thanks to Matt Kraai. (Closes: Bug#86238) - * Add a blank line to the end of the faked /var/lib/dpkg/status. Spotted - by Richard Hirst. - * Added console-tools and console-data into the base system. - * Move /etc/exim.conf to /etc/exim/exim.conf so that sendmail doesn't - give errors, even if debconf tries to use it before exim is - configured. Gack. - * Add fdutils back into base. - - -- Anthony Towns Mon, 30 Apr 2001 15:49:27 +1000 - -debootstrap (0.1.6) unstable; urgency=low - - * Only create stuff in /etc if it hasn't already been created. - - -- Anthony Towns Mon, 23 Apr 2001 18:02:55 +1000 - -debootstrap (0.1.5) unstable; urgency=low - - * Use "head -n X" instead of "head -X" to work with busybox. - (Closes: Bug#94575) - * Use s///I instead of s///i for case insensitivity, again for busybox. - (Closes: Bug#94579) - * Fixed typo that would have stopped debootstrap from falling back to an - uncompressed Packages file. - * Added libsasl7 and libldap2 to woody base, since woody exim now depends - on them. - - -- Anthony Towns Sun, 22 Apr 2001 01:47:00 +1000 - -debootstrap (0.1.4) unstable; urgency=low - - * If we've got a Release file, check that the Packages files we download - have the right md5sums. - * Build-Depend on new makedev, and don't hax0r powerpc devices as much. - (Closes: Bug#93836) - * Hopefully support arm chroots. (Closes: Bug#92592) Declare it to be - Arch: any, and see what dies. There's a chance that nothing will. Not - a *big* chance, but a chance. - * Fiddled with the base system some more. Added apt-utils so - preconfiguration will work. - * Added permission to NMU to the README.Debian. - * Mention file:/ URLs in README.Debian. (Closes: Bug#87099) - * Add a --boot-floppies option that changes the way the I/O happens, in - a way that's hopefully useful for boot-floppies. See README.Debian for - details. - * Also added a bit more output. - - -- Anthony Towns Mon, 26 Mar 2001 22:30:12 +1000 - -debootstrap (0.1.3) unstable; urgency=high - - * Switch from debconf-tiny to debconf, since that's what's now in - woody. (Using debconf-tiny probably makes the package unusable, hence - the urgency) Fixup perl, lilo and console-apt to cope with changes in - the base system in woody. Added ae, left nano and nvi. - * Add support for m68k, sparc and powerpc, based on Christian Steigies - patches and Adam Di Carlo's NMU (Closes: Bug#89883, Bug#91221) - - -- Anthony Towns Sun, 25 Mar 2001 14:29:02 +1000 - -debootstrap (0.1.2) unstable; urgency=low - - * Add support for slink. - * Fix support for woody (no lilo, console-*, different perl) - * Re-download Packages files every time (Closes: Bug#88438) - (Should this be changed to re-download things where the md5 doesn't match?) - - -- Anthony Towns Sun, 4 Mar 2001 19:42:29 +1000 - -debootstrap (0.1.1) unstable; urgency=low - - * Initial Release. (Closes: Bug#82245) - - * Called it debootstrap instead of debchroot, because it's more about - bootstrapping a Debian environment, whether that will end up being - in a chroot, or as a standalone system. Blame Adam di Carlo. :) - - -- Anthony Towns Tue, 30 Jan 2001 10:54:45 +1000 diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/compat b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/compat deleted file mode 100644 index ec635144..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/control b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/control deleted file mode 100644 index 6925a63c..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/control +++ /dev/null @@ -1,26 +0,0 @@ -Source: debootstrap -Section: admin -Priority: extra -Maintainer: Franco (nextime) Lanza -Uploaders: Franco (nextime) Lanza , Daniel Reurich -Build-Depends: debhelper (>= 9), makedev (>= 2.3.1-69) [linux-any], git -Standards-Version: 3.9.8 -Vcs-Browser: https://git.devuan.org/devuan-packages/debootstrap -Vcs-Git: https://git.devuan.org/devuan-packages/debootstrap.git - -Package: debootstrap -Architecture: all -Depends: ${misc:Depends}, wget -Recommends: gnupg, ${keyring}, devuan-keyring -Description: Bootstrap a basic Devuan system - debootstrap is used to create a Devuan base system from scratch, - without requiring the availability of dpkg or apt. It does this by - downloading .deb files from a mirror site, and carefully unpacking them - into a directory which can eventually be chrooted into. - -Package: debootstrap-udeb -Section: debian-installer -Package-Type: udeb -Architecture: all -Depends: ${misc:Depends}, mounted-partitions -Description: Bootstrap the Devuan system diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/copyright b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/copyright deleted file mode 100644 index b34963b1..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/copyright +++ /dev/null @@ -1,30 +0,0 @@ -This package was debianized by Anthony Towns on -Tue, 30 Jan 2001 10:54:45 +1000. - -It was written from scratch for Debian by Anthony Towns -based loosely on the code for constructing base tarballs as part of the -boot-floppies package. - -Copyright: - -Copyright (c) 2001-2005 Anthony Towns - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/debootstrap.docs b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/debootstrap.docs deleted file mode 100644 index e845566c..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/debootstrap.docs +++ /dev/null @@ -1 +0,0 @@ -README diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/debootstrap.manpages b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/debootstrap.manpages deleted file mode 100644 index d6a5e4ac..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/debootstrap.manpages +++ /dev/null @@ -1 +0,0 @@ -debootstrap.8 diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/gbp.conf b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/gbp.conf deleted file mode 100644 index ac8e799c..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/gbp.conf +++ /dev/null @@ -1,9 +0,0 @@ -[DEFAULT] -compression = xz -pristine-tar = false -upstream-tag = devuan/1.0.85 - -[git-buildpackage] -upstream-tree = tag -tarball-dir = ../tarballs/ -export-dir = ../build-area/ diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/rules b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/rules deleted file mode 100755 index 23bc4a61..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/rules +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/make -f - -ifeq (0,$(shell dpkg-vendor --derives-from Ubuntu; echo $$?)) - KEYRING := ubuntu-keyring -else ifeq (0,$(shell dpkg-vendor --derives-from Devuan; echo $$?)) - KEYRING := devuan-keyring -else ifeq (0,$(shell dpkg-vendor --derives-from Tanglu; echo $$?)) - KEYRING := tanglu-archive-keyring -else - KEYRING := debian-archive-keyring -endif - -%: - dh $@ - -# need to be root to make devices, so build is done in install target -override_dh_auto_build: - -override_dh_auto_install: - dh_auto_build - - $(MAKE) install DESTDIR=$(CURDIR)/debian/debootstrap - $(MAKE) install DESTDIR=$(CURDIR)/debian/debootstrap-udeb - - # remove scripts not needed by d-i - -rm -f debian/debootstrap-udeb/usr/share/debootstrap/scripts/potato \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/woody \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/sarge \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/warty \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/hoary \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/breezy \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/dapper \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/edgy \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/feisty \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/*.buildd \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/*.fakechroot \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/stable \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/testing \ - debian/debootstrap-udeb/usr/share/debootstrap/scripts/unstable - -override_dh_gencontrol: - dh_gencontrol -- -Vkeyring=$(KEYRING) - -# Specify gzip to mitigate #770217: -override_dh_builddeb: - dh_builddeb -pdebootstrap -- -Zgzip - dh_builddeb -pdebootstrap-udeb -- -Zxz diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/source/format b/cdist/preos/debootstrap/files/devuan-debootstrap/debian/source/format deleted file mode 100644 index af745b31..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (git) diff --git a/cdist/preos/debootstrap/files/devuan-debootstrap/debootstrap b/cdist/preos/debootstrap/files/devuan-debootstrap/debootstrap deleted file mode 100755 index 71c70540..00000000 --- a/cdist/preos/debootstrap/files/devuan-debootstrap/debootstrap +++ /dev/null @@ -1,703 +0,0 @@ -#!/bin/sh -set -e - -VERSION='@VERSION@' - -unset TMP TEMP TMPDIR || true - -# might not be exported if we're running from init=/bin/sh or similar -export PATH - -########################################################################### - -if [ -z "$DEBOOTSTRAP_DIR" ]; then - if [ -x /debootstrap/debootstrap ]; then - DEBOOTSTRAP_DIR=/debootstrap - else - DEBOOTSTRAP_DIR=/usr/share/debootstrap - fi -fi - -. $DEBOOTSTRAP_DIR/functions -exec 4>&1 - -LANG=C -USE_COMPONENTS=main -KEYRING="" -DISABLE_KEYRING="" -FORCE_KEYRING="" -VARIANT="" -MERGED_USR="no" -ARCH="" -HOST_ARCH="" -HOST_OS="" -KEEP_DEBOOTSTRAP_DIR="" -USE_DEBIANINSTALLER_INTERACTION="" -SECOND_STAGE_ONLY="" -PRINT_DEBS="" -CHROOTDIR="" -MAKE_TARBALL="" -EXTRACTOR_OVERRIDE="" -UNPACK_TARBALL="" -ADDITIONAL="" -EXCLUDE="" -VERBOSE="" -CERTIFICATE="" -CHECKCERTIF="" -PRIVATEKEY="" - - -DEF_MIRROR="http://packages.devuan.org/merged" -DEF_HTTPS_MIRROR="https://packages.devuan.org/merged" - -export LANG USE_COMPONENTS EXCLUDE -umask 022 - -########################################################################### - -## phases: -## finddebs dldebs printdebs first_stage second_stage - -RESOLVE_DEPS=true - -WHAT_TO_DO="finddebs dldebs first_stage second_stage" -am_doing_phase () { - # usage: if am_doing_phase finddebs; then ...; fi - local x; - for x in "$@"; do - if echo " $WHAT_TO_DO " | grep -q " $x "; then return 0; fi - done - return 1 -} - -########################################################################### - -usage_err() -{ - info USAGE1 "usage: [OPTION]... [ [