Ansible Advent Calendar 2024ã®4æ¥ç®ã®è¨äºã§ã。
ã¿ãªããã¡ãªã¼ã¯ãªã¹ãã¹ï½¡Red Hatã®ããã¨ãã§ã。
æ¥ã Ansibleã使ã£ã¦èªååãæ¨é²ãã¦ããã¿ãªãã、「Ansibleã®ã¢ã¸ã¥ã¼ã«ããã©ã°ã¤ã³ã«ãªãã·ã§ã³ã追å ãã¦ã»ãã」、 ï½¢å®è¡çµæã®æ»ãå¤ã«èªåãå¿ ç¨ã¨ããæ å ±ã追å ãã¦ã»ãã」、 ï½¢ä¸å ·åãä¿®æ£ãã¦ã»ããï½£ ã¨ãã£ããã¨ãä¸å¤ã®çåã«æ¸ãã¦ãç¥ãããã、ãµã³ã¿ããã«ãé¡ãããã、Issueã¨ãã¦Collectionã®ãªãã¸ããªã«ãã¡ã¤ã«ããããããã¨ãããã¾ããã。åã¯ããããã¾ã。
ããã¦æå¾ã«ï½¤ï½¢ãããã£ãèªåã§ä¿®æ£ãã¡ãã£ãã»ãã楽ã ãï½£ã¨ããå¢å°ã«éããã¯ãã§ã。ãããªããªãã«åãã¦ï½¤ä»æ¥ã¯ï½¤Ansible Collectionã«å¯¾ããã³ã¼ãã³ãããã®ãä½æ³ã«ã¤ãã¦æ¸ãã¦ã¿ããã¨æãã¾ã。
ãã®1: æåã«Issueã¨ãã¦ãã¡ã¤ã«ããã
ã¡ãã£ã¨é¢åããããã¾ããã、Issueã¨ãã¦æåã«ãã¡ã¤ã«ãã¦ãããã¨ããå§ããã¾ã。 ã¬ãã¼ãããéã®Issueã®ç¨®é¡ã¯ï½¤ community.general ã ansible.posix ãªã©ã®Collectionã§ã¯ï½¤å¤§ãã3ã¤åãããã¦ãã¾ã。
- Bug report: Create a report to help us improve
- Documentation Report: Ask us about docs
- Feature request: Suggest an idea for this project
ãã°ã®å ´åã¯1ã、ansible-docã§åç §ã§ãããªãã·ã§ã³ã®èª¬æãªã©ããã¥ã¡ã³ãã«é¢ããå ±åã¯2ã、ãªãã·ã§ã³ãªã©ã®æ©è½è¿½å ã®å ´åã¯3ãé¸æãã¦ï½¤ããªãã®ãªã¯ã¨ã¹ããIssueã¨ãã¦ãã¡ã¤ã«ãã¦ãã ãã。
æçµçã«èªåã§Pull Requestãéã£ã¦ä¿®æ£ããå ´åã§ã、修æ£å 容ã®èª¬æã¯æ¸ããªããã°ãªãã¾ãã。ãããããIssueã¨ãã¦è©³ç´°ã説æãã¦ãã¡ã¤ã«ãã¦ããã°ï½¤Pull Requestã®ã³ã¡ã³ãã§ã¯fixes #Nã®ããã«Issueçªå·ã ãåç §ã§ããã®ã§ï½¤Pull Requestä½ææã®èª¬æã§æ¥½ãã§ãã¾ã
ãã®2: ã³ã¼ããä¿®æ£ãã¾ããã
Ansible Collectionsã«ã¯ï½¤Contributing to Ansible-maintained Collectionsã¨ããã³ã³ããªãã¥ã¼ã¿ã¼ç¨ã®ã¬ã¤ãã©ã¤ã³ãå ¬éããã¦ããã®ã§ï½¤ç®ãéãã¦ããã¦ãã ãã。
ä¿®æ£å¯¾è±¡ã¨ãªãã¢ããã¹ããªã¼ã ã®Collectionã®ãªãã¸ããªãforkãã¦ï½¤ä½æ¥ç¨ãã©ã³ããä½æãã¦ä¿®æ£ã«å ¥ãã¾ã。ä¾ãã°ãããªæãã§ã。 åã®å ´å、ãã©ã³ãåã¯issue_NNNã¨ãã¦Issueçªå·ã«ãã¦ãã¾ã£ã¦ï½¢è¯ãæãã®ååãªãããªï½£ã¨æ©ã¾ãªãããã«ãã¦ã¾ã。ããããé¢ã§ãIssueãå ã«ä½ã£ã¦ããã¨æ¥½ãã§ãã¾ã。ããã¤ãPull Requestãä½ã£ã¦ããã¨è¯ãæãã®ååãæ¯æ¸ãã¾ã :)
% git clone [email protected]:<YOUR_ACCOUNT>/ansible.posix.git posix % cd posix % git checkout -b issue_NNN
ãã®3: changelog fragmentãã¡ã¤ã«ãä½ãã¾ããã
changelog fragmentãã¡ã¤ã«ãä½æãã¦ï½¤Pull Requestã®ç¨®å¥ã¨æ¦è¦ãæ¸ãã¾ã。ããã«ãIssueã®URLãå«ããã¨ã¡ã³ããã«åã°ãã¾ã。ãã®changelog fragmentãã¡ã¤ã«ï½¤ãããªãã¨ãansible.posixã«Pull Requestãéã£ã¦ããã人ã®9å²ããããå«ããã®ãå¿ãã¦ã¾ã。
â»å«ãã¦ãã1å²ã®äººã¯ï½¤ã ãããã³ã¬ã¯ã·ã§ã³ã®ã¡ã³ããã§ã(ç¬)。
ãã¡ã¤ã«ã®å½åæ¹æ³ã¯
ãã®ã¨ã、Issueçªå·ããã¡ã¤ã«åã®ã¤ã³ããã¯ã¹ã«æå®ã§ããã®ã§ï½¤ãã¯ããããããIssueããªã¼ãã³ãã¦ããã¨ä¾¿å©ã§ã。Pull Requestçªå·ã§ããã¾ãã¾ããã、ãã®æç¹ã§ã¾ã Pull Requestã¯ä½æããã¦ããªãã®ã§ï½¤Pull Requestçªå·ã¯æ¡çªããã¦ãã¾ãã。ãã¡ã¤ã«åã®ã¤ã³ããã¯ã¹ã«Pull Requestçªå·ã使ç¨ããå ´åã¯ï½¤ææ°ã® Issue/Pull Requestçªå·+1 ã¨ããé¢åãªç¢ºèªãããªããã°ãªãã¾ãã。
% cat changelogs/fragments/9188-jira-attachment-validation.yml bugfixes: - jira - remove unnecessary validation when attaching files (https://github.com/ansible-collections/community.general/pull/9188).
bugfixes ã¯ï½¤ãã®Pull Requestã®ã«ãã´ãªã表ãã¦ãã¾ã。ãã®ã«ãã´ãªã¯CIããã»ã¹ã®ä¸ã§æå¹ãªã«ãã´ãªãã©ããã確èªããã¦ãã¾ã。
以ä¸ã«ããè¦ãããã«ãã´ãªããç´¹ä»ãã¾ã。
- breaking_changes: æ¢åã®ã¢ã¸ã¥ã¼ã«ãªãã·ã§ã³ã®æ¯ãèããå®å ¨ã«å¤ãããããªä¿®æ£ã§ã。ãã¨ãã°æååæå®ã ã£ããã©ã¡ã¼ã¿ããªã¹ãæå®ã«å¤ããã¨ãã£ã、Playbookã®è¨è¿°ã«å¤æ´ãå ããå¿ ç¨ããããããªä¿®æ£ã該å½ãã¾ã。ãã®ä¿®æ£ã¯ï½¤ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ããã®ã¿é©ç¨ããã¾ã。
- major_changes: ansible-coreå´ã®å¤æ´ã、collectionèªä½ãä¾åãã¦ããSDKã®å¤æ´ã«ãã£ã¦ï½¤å¤§å¹ ãªæ¹ä¿®ãè¡ãããå ´åã«è©²å½ãã¾ã。ã¢ã¸ã¥ã¼ã«ããã©ã°ã¤ã³ã¬ãã«ã§ã¯é常ã¯ä½¿ãã¾ãã。
- minor_changes: ã¢ã¸ã¥ã¼ã«ããã©ã°ã¤ã³ã«å¯¾ããæ©è½è¿½å ãªã©ãããã«å½ããã¾ã。ãã°ãã£ãã¯ã¹ä»¥å¤ã¯ã ãããã³ã¬ã§ã。
- removed_features: ã¢ã¸ã¥ã¼ã«ããã©ã°ã¤ã³èªä½ãåé¤ããå ´åã§ã。ãã¨ãã°ansible.posixããskippyãã©ã°ã¤ã³ãåé¤ããã¨ãã£ãå ´åã«æå®ãã¾ã。
- bugfixes: ã¢ã¸ã¥ã¼ã«ããã©ã°ã¤ã³ã«å¯¾ãããã°ãã£ãã¯ã¹ãããã«ãããã¾ã。
- trivial: ããã¯CHANGELOG.rstã«ã¯è¨è¼ãããªããããªä¿®æ£ã§ã。ãã¨ãã°ã¡ã³ãããCIããã»ã¹ã®ä¿®æ£ãè¡ã£ãã、ã¿ãããã¯ã¤ãã¹ãã¼ã¹ã«ä¿®æ£ããã、ããã¥ã¡ã³ãä¸ã®ãµã³ãã«ã®ã¢ã¸ã¥ã¼ã«æå®ãFQCNã«å¤æ´ããã...ã¨ãã£ãæ¬çã¨ã¯ç¡é¢ä¿ãªä¿®æ£ãããã«ãããã¾ã。
ã ããã、æ©è½è¿½å 㯠minor_changes 、ãã°ä¿®æ£ã¯ bugfixes ãæå®ãã¦ããã°ééããªãã§ã。ééã£ã¦ããã¨ãã¦ã、ã¡ã³ãããã³ã¼ãã¬ãã¥ã¼ã®ã¨ãã«ææãã¦ãããã®ã§ï½¤å¿ ç¨ã«å¿ãã¦ä¿®æ£ãããããã®è»½ãæ°æã¡ã§æå®ãã¦ãã ãã。changelog fragmentãã¡ã¤ã«ãä½ãã®ã大äºãªã®ã§ã。
Collecionã®ã¡ã³ããã¯ï½¤ãªãªã¼ã¹ã³ãããã®éã«ï½¤ãã®changelog fragmentãã¡ã¤ã«ããantsibull-changelogã³ãã³ãã§ã® CHANGELOG.rst ãèªåçæãã¦ãã¾ã。 ã§ããã、ãã®changelog fragmentãã¡ã¤ã«ã¯ï½¤ç¾å¨ã®Collectionã«å¯¾ããPull Requestã§ã¯å¿ é ã®ãã¡ã¤ã«ã¨ãªã£ã¦ããã®ã§ã。
ãã®4: å¿ ç¨ã«å¿ãã¦integration testãæ¸ãã¾ããã(Optional)
minor_changes ãªã©ã§æ©è½è¿½å ãè¡ãå ´åã¯ï½¤å¿ ãintegration testãå®è£ ãã¦ãã ãã。ãã®ãã¹ãã¯Ansible Playbookã§æ¸ããã¦ãã¦ï½¤tests/integration/targets/ é ä¸ã«ã¢ã¸ã¥ã¼ã«åã§ãã£ã¬ã¯ããªãä½ããã¦ãã¦ï½¤ãã®ä¸ã«ç½®ããã¦ãã¾ã。
bugfixesãªã©ã§ã¯ä¸è¦ãªãã¨ãããã¾ãã、minor_changesãªã©ã®æ©è½è¿½å ã§ã¯åºæ¬çã«å¿ ç¨ã§ã。ãã¹ãã«ãã¬ãã¸ãªã©ã®åé¡ãããã°ã¬ãã¥ã¼ã§ææãã¦ããããã®ã§ãå®å¿ã。
ãã®5: Pull Requestãéãã¨ãã®å¿å¾
Pull Requestãéãã¨ãã«ã¯ï½¤ä»¥ä¸ã®2ç¹ã«æ³¨æãã¦ãã ãã。
ãã®5-1: Pull Requestã¯ï½¤ã¾ã㯠Draft Pull Request ã§ä½ãã¾ããã
Ansible Collectionsã®Pull Requestã¯èªåã§ãã¹ãããã¾ã。ååçã«ã¯ï½¤ãã®ãã¹ããå ¨ã¦éã£ã¦ã¯ããã¦äººéãã¬ãã¥ã¼ãã¾ã。ãã¹ãããã¹ã¦éãã¾ã§ã¯ï½¤Draft Pull Requestã«ãã¦ããã¦ï½¤ãã¹ãã«éããªããã°ä¿®æ£ãã¦ï½¤ã¾ãã¯ãã¹ããéãã¾ããã。
èªåãã¹ãã«å ¨ã¦ãã¹ããã、Ready for Reviewãã¿ã³ããããã¨æ¼ãã¦ï½¤Draft Pull Requestããé常ã®Pull Requestã«åãæ¿ãã¦ãã ãã。ããªãã®Pull Requestã¯ï½¤ããã§ã¬ãã¥ã¢ããã®ã¬ãã¥ã¼å¾ ã¡ç¶æ ã¨ãªãã¾ã。
ãã®5-2: Maintainers are allowed to edit this pull request
ã確èªãã¾ããã
ã³ã³ããªã¯ãã®ä¿®æ£ãªã©ã®æ¯æ´ãã¡ã³ããããåããããã«ã¯ï½¤ Maintainers are allowed to edit this pull request
ã®ãã§ãã¯ããã¯ã¹ã¯ONããå¿
ç¨ãããã¾ã。ã¿ãªããèªèº«ã®å¤æã§ONï½¥OFFãè¨å®ãã¦ãã ãã。
ãã®6: ã³ãããã1ã¤ã«ã¾ã¨ãã(Optional)
ã¬ãã¥ã¼ã®ä¸ã§ï½¤change requestãåãããã¨ãããã§ããã。修æ£ãè¤æ°åã«ãããã¨ã³ãããã¡ãã»ã¼ã¸ã®è¦éããæªããªãã®ã§ï½¤è¤æ°ã®ã³ãããã¯å¿ ç¨ã«å¿ãã¦ã¾ã¨ããããã«ãã¦ãã¾ã。
ã¾ã¨ã
Ansibleã®ã¢ã¸ã¥ã¼ã«ãCollectionsã¨ãã¦åãåºãããå½åã¯ï½¤ã¬ã¤ãã©ã¤ã³ãæ´åããã¦ããã、Collectionæ¯ã«ãªãã¨ãªãã¡ã³ãããã«ã¼ã«ãä½ã£ã¦éç¨ãã¦ãã¾ãã。ããã、ç¾å¨ã¯Ansible Communityããã³ã³ããªãã¥ã¼ã¿ã¼ãã¡ã³ããã®ããã®çµ±ä¸ãããã¬ã¤ãã©ã¤ã³ãæä¾ããã¦ï½¤éåã¨è¦éãããããªã£ã¦ãã¦ãã¾ã。
ã¡ã³ããããããå®ã£ã¦ããªãã¨æããã¾ã(æããã)ãã、ãã®ã¬ã¤ãã©ã¤ã³ã®ãããã§ï½¤ããã¶ãã¨å©ç¨è ããã®ã³ã¼ãã³ã³ããªãã¥ã¼ãããããããªã£ã¦ããããã«æãã¾ã。ã¿ãªããã、ãã®ã¯ãªã¹ãã¹ã«ãã²ã¨ã¤ãããã§ãããã? Happy Automation :)