jonaspammer.core_dependencies
以äžã®ããã¹ããæ¥æ¬èªã«ç¿»èš³ããŸãã
// ãã®ãã¡ã€ã«ã¯ .github/workflows/gh-pages.yml ã«ãã£ãŠçæãããŠããŸã - ãã¹ãŠã®ããŒã«ã«å€æŽã¯æçµçã«å€±ãããŸãïŒ
= ansible-role-core_dependencies
Jonas Pammer <[email protected]>;
:toc: left
:toclevels: 2
:toc-placement!:
:source-highlighter: rouge
https://galaxy.ansible.com/jonaspammer/core_dependencies[image:https://img.shields.io/badge/available%20on%20ansible%20galaxy-jonaspammer.core_dependencies-brightgreen[ããŒãžã§ã³æ
å ±]]
// éåžžã«é¢é£æ§ã®é«ãã¹ããŒã¿ã¹ãããž
https://github.com/JonasPammer/ansible-role-core_dependencies/actions/workflows/ci.yml[image:https://github.com/JonasPammer/ansible-role-core_dependencies/actions/workflows/ci.yml/badge.svg[ãã¹ãCI]]
Ansibleã®ã³ã¢ã¢ãžã¥ãŒã«ãé©åã«å®è¡ããããã«å¿
èŠãªã·ã¹ãã ããã±ãŒãžãã€ã³ã¹ããŒã«ããããã®AnsibleããŒã«ã§ããå
·äœçã«ã¯ä»¥äžã®ã¢ãžã¥ãŒã«ãå«ãŸããŸãïŒ
* `ansible.builtin.apt_repository`
* `ansible.builtin.archive`
* `ansible.builtin.debconf`
* `ansible.builtin.dnf`
* `ansible.builtin.git`
* `ansible.builtin.subversion`
* `ansible.builtin.unarchive`
* `ansible.builtin.user`
* `ansible.builtin.yum`
* `ansible.posix.seboolean`
ãã®ããŒã«ã¯ã»ãšãã©ã®ã·ã¹ãã ã®ããã«ææ°ã®ããã±ãŒãžãã£ãã·ã¥ã確ä¿ããŸãã
ã»ãšãã©ã®å Žåããã®ããŒã«ã¯ç§ã®
https://github.com/JonasPammer/ansible-role-bootstrap[`bootstrap`ããŒã«]ãšçµã¿åãããŠäœ¿çšããããšãæšå¥šãããŸãã
[泚]
.DISCLAIMER
=====
ãã®ããŒã«ã¯ https://github.com/robertdebock/ansible-role-core_dependencies/releases/tag/2.1.9[robertdebock/ansible-role-core_dependencies v2.1.9 on GitHub (2022幎2æ11æ¥)] ãåºã«ããŠããŸãïŒhttps://github.com/robertdebock/ansible-role-core_dependencies/compare/2.1.9...master[ããããã®å€æŽã®æ¯èŒ]ïŒã
ïŒApacheã©ã€ã»ã³ã¹ 2.0ãèäœæš© Robert de Bock ([email protected])ïŒã
çŸæç¹ã§ã¯ãã³ãŒãã³ã¡ã³ãã远å ããããã®ã®ã¿ã§ãã
=====
toc::[]
[[meta]]
== ð ã¡ã¿ããŒã¿
以äžã«é¢ããæ
å ±ãèŠã€ããããšãã§ããŸãïŒ
* ãã®ããŒã«ã«å¿
èŠãªAnsibleã®ããŒãžã§ã³
* ãã®ããŒã«ããµããŒãããŠãããã©ãããã©ãŒã
* ãã®ããŒã«ã® https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-dependencies[ããŒã«ã®äŸåé¢ä¿]
.link:meta/main.yml[]
[source,yaml]
----
---
galaxy_info:
role_name: "core_dependencies"
description:
"Ansibleã®ã³ã¢ã¢ãžã¥ãŒã«ããµããŒãããããã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããããã®AnsibleããŒã«ã§ãã
robertdebockã®core_dependenciesããŒã«ã«åºã¥ããŠããŸãã"
author: "jonaspammer"
license: "MIT"
min_ansible_version: "2.11"
platforms:
- name: EL # (ãšã³ã¿ãŒãã©ã€ãºLinux)
versions:
- "9" # 掻åçã«ãã¹ãæžã¿: rockylinux9
- name: Fedora
versions:
- "38" # 掻åçã«ãã¹ãæžã¿: fedora38
- "39" # 掻åçã«ãã¹ãæžã¿: fedora39
- name: Debian
versions:
- bullseye # 掻åçã«ãã¹ãæžã¿: debian11
- bookworm # 掻åçã«ãã¹ãæžã¿: debian12
- name: Ubuntu
versions:
- focal # 掻åçã«ãã¹ãæžã¿: ubuntu2004
- jammy # 掻åçã«ãã¹ãæžã¿: ubuntu2204
galaxy_tags: []
dependencies: []
----
[[requirements]]
== ð å¿
èŠæ¡ä»¶
// ãã®ããŒã«ãAnsibleèªäœã§ã«ããŒãããªãå¯èœæ§ã®ããåææ¡ä»¶ãããã«èšèŒããå¿
èŠããããŸãã
AnsibleãŠãŒã¶ãŒã¯ `become` ã§ããå¿
èŠããããŸãã
https://galaxy.ansible.com/community/general[`community.general` ã³ã¬ã¯ã·ã§ã³]
ã¯Ansibleã³ã³ãããŒã©ãŒã«ã€ã³ã¹ããŒã«ãããŠããå¿
èŠããããŸãã
[[variables]]
== ð ããŒã«å€æ°
// ãã®ããŒã«ã®èšå®å¯èœãªå€æ°ã®èª¬æãããã«å¿
èŠã§ãã
// ãŸããããŒã«ã®ãã©ã¡ãŒã¿ãéããŠèšå®ã§ããã¹ã倿°ãå«ãŸããŸãã
// ä»ã®ããŒã«ãã°ããŒãã«ã¹ã³ãŒãïŒãã¹ã倿°ãã°ã«ãŒã倿°ãªã©ïŒããèªã¿åããã倿°ãããã«èšèŒããå¿
èŠããããŸãã
[[public_vars]]
== ð ãã®ããŒã«ã«ãã£ãŠå®çŸ©ããããã¡ã¯ã/倿°
ãã®ã»ã¯ã·ã§ã³ã«ãªã¹ããããå倿°ã¯ã
ãã®ããŒã«ãå®è¡ããŠãããšãã«åçã«å®çŸ©ããïŒ`ansible.builtin.set_facts` ã䜿çšããŠã®ã¿äžæžãå¯èœïŒã
å
éšäœ¿çšã ãã§ãªããå€éšã§ã䜿çšãããããšãæå³ããŠããŸãã
[[tags]]
== ð·ïž ã¿ã°
// ã¿ã¹ã¯ãã¿ã°ã§ã°ã«ãŒãåããããã®çŽ æŽãããäŸãèŠããå Žåã¯ãhttps://github.com/tribe29/ansible-collection-tribe29.checkmk/blob/main/roles/server/README.md#tagsããã§ãã¯ããŠãã ããã
ã¿ã¹ã¯ã«ã¯ä»¥äžã® https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#adding-tags-to-roles[ã¿ã°] ãä»ããããŠããŸãïŒ
[cols="1,1"]
|===
|ã¿ã° | ç®ç
2+| ãã®ããŒã«ã«ã¯å
¬åŒã«ææžåãããã¿ã°ã¯ãŸã ãããŸããã
|===
Ansibleã䜿çšããŠã¿ã¹ã¯ãã¹ãããããããç¹å®ã®ã¿ã¹ã¯ã®ã¿ãå®è¡ãããããããã«ãããã®ã¿ã°ã䜿çšã§ããŸããããã©ã«ãã§ã¯ãã¿ã°ãæå®ãããŠããªãå Žåã¯ãã¹ãŠã®ã¿ã¹ã¯ãå®è¡ãããŸãã
[[dependencies]]
== ð« äŸåé¢ä¿
// ä»ã®ããŒã«ã®ãªã¹ããããã«èšèŒããå¿
èŠããããŸãã
// ä»ã®ããŒã«ã«èšå®ããå¿
èŠã®ãããã©ã¡ãŒã¿ã«é¢ãã詳现ããä»ã®ããŒã«ãã䜿çšããã倿°ã説æããå¿
èŠããããŸãã
[[example_playbooks]]
== ð 䜿çšäŸã®ãã¬ã€ããã¯
// äžè¬çãªã·ããªãªã§ãã®ããŒã«ããã¬ã€ããã¯ã§äœ¿çšããäŸãå«ããããšã¯ããŠãŒã¶ãŒã«ãšã£ãŠåžžã«äŸ¿å©ã§ãã
[泚]
====
ãã®ããŒã«ã¯ https://github.com/JonasPammer/ansible-roles[
ç§ã®å€ãã®ç®çå¥ããŒã«ã®äžéšã§ã]ã
ãã·ã³ã¯æºåãããå¿
èŠããããŸãã
CIã§ã¯ããã®ããã»ã¹ã¯ `molecule/resources/prepare.yml` ã§è¡ããã
ãã®ãœããäŸåé¢ä¿ã¯ `requirements.yml` ããååŸãããŸãïŒ
.link:molecule/resources/prepare.yml[]
[source,yaml]
----
---
- name: prepare
hosts: all
become: true
gather_facts: false
roles:
- role: jonaspammer.bootstrap
----
ãã®ä»¥äžã®ãã€ã¢ã°ã©ã ã¯ããã®ããŒã«ã® "ãœããäŸåé¢ä¿" ãšããããã®ãœããäŸåé¢ä¿ã®ååž°çããªãŒã®éæã§ãã
image:https://raw.githubusercontent.com/JonasPammer/ansible-roles/master/graphs/dependencies_core_dependencies.svg[
requirements.ymlã®äŸåé¢ä¿ã°ã©ã]
====
.Minimum Viable Play
====
[source,yaml]
-----
---
- hosts: servers:&provisioned
name: Ansibleã«ãã£ãŠç®¡çãããlinuxãã·ã³ãèµ·åããŸãã
gather_facts: false
roles:
- role: jonaspammer.core_dependencies
-----
====
.More Common Play
====
[source,yaml]
-----
---
- hosts: servers:&provisioned
name: Ansibleã«ãã£ãŠç®¡çãããlinuxãã·ã³ãèµ·åããŸãã
become: false
gather_facts: false
roles:
- role: jonaspammer.bootstrap
- role: jonaspammer.core_dependencies
become: "{{ bootstrap_become | default(omit) }}"
become_user: "{{ bootstrap_become_user | default(omit) }}"
-----
====
[[tested-distributions]]
== 𧪠ãã¹ãæžã¿ã®é
åž
ããŒã«ã¯ãRed Hat Enterprise Linux (RHEL)ã®ãããªç°ãªã *é
åž* ã§åäœããå¯èœæ§ããããŸããããã®ç¹å®ã®é
åžã«å¯Ÿãããã¹ãã¯è¡ãããŠããŸããã
|===
| OSãã¡ããªãŒ | é
åž | é
åžãªãªãŒã¹æ¥ | é
åžã®ãµããŒãçµäºæ¥ | ä»éããDockerã€ã¡ãŒãž
| Rocky
| Rocky Linux 8 (https://www.howtogeek.com/devops/is-rocky-linux-the-new-centos/[RHEL/CentOS 8 ã®å€çš®])
| 2021幎6æ
| 2029幎5æ
| https://github.com/geerlingguy/docker-rockylinux8-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-rockylinux8-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Rocky
| Rocky Linux 9
| 2022幎7æ
| 2032幎5æ
| https://github.com/geerlingguy/docker-rockylinux9-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-rockylinux9-ansible/workflows/Build/badge.svg?branch=master[CI]]
| RedHat
| Fedora 39
| 2023幎11æ
| 2024幎12æ
| https://github.com/geerlingguy/docker-fedora39-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-fedora39-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Ubuntu 20.04 LTS
| 2021幎4æ
| 2025幎4æ
| https://github.com/geerlingguy/docker-ubuntu2004-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-ubuntu2004-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Ubuntu 22.04 LTS
| 2022幎4æ
| 2027幎4æ
| https://github.com/geerlingguy/docker-ubuntu2204-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-ubuntu2204-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Debian 11
| 2021幎8æ
| 2024幎6æ (2026幎6æ LTS)
| https://github.com/geerlingguy/docker-debian11-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-debian11-ansible/workflows/Build/badge.svg?branch=master[CI]]
| Debian
| Debian 12
| 2023幎6æ
| 2026幎6æ (2028幎6æ LTS)
| https://github.com/geerlingguy/docker-debian12-ansible/actions?query=workflow%3ABuild[image:https://github.com/geerlingguy/docker-debian12-ansible/workflows/Build/badge.svg?branch=master[CI]]
|===
[[tested-ansible-versions]]
== 𧪠ãã¹ãæžã¿ã®AnsibleããŒãžã§ã³
ãã¹ãæžã¿ã®AnsibleããŒãžã§ã³ã¯ãhttps://github.com/ansible-collections/community.general#tested-with-ansible[
community.generalã³ã¬ã¯ã·ã§ã³ã®ãµããŒããã¿ãŒã³]ã«å¯Ÿå¿ããŠããŸãã
å·çæç¹ã§ã¯ä»¥äžã®éãã§ãïŒ
* 2.13 (Ansible 6)
* 2.14 (Ansible 7)
* 2.15 (Ansible 8)
* 2.16 (Ansible 9)
[[development]]
== ð éçº
// ãã®ãããžã§ã¯ãã®èŠçŽã«é¢ãããããž
https://conventionalcommits.org[image:https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg[Conventional Commits]]
https://results.pre-commit.ci/latest/github/JonasPammer/ansible-role-core_dependencies/master[image:https://results.pre-commit.ci/badge/github/JonasPammer/ansible-role-core_dependencies/master.svg[pre-commit.ciã¹ããŒã¿ã¹]]
[[development-system-dependencies]]
=== ð éçºãã·ã³ã®äŸåé¢ä¿
* Python 3.10以äž
* Docker
[[development-dependencies]]
=== ð éçºäŸåé¢ä¿
éçºäŸåé¢ä¿ã¯ãhttps://pip.pypa.io/en/stable/user_guide/#requirements-files[pipã®èŠä»¶ãã¡ã€ã«]å
ã§å®çŸ©ãããŠããŸãã
Linuxã®ããã®ã€ã³ã¹ããŒã«æé ã®äŸã¯ä»¥äžã®éãã§ãïŒ
----
# "ãªãã·ã§ãã«": Pythonä»®æ³ç°å¢ãäœæããçŸåšã®ã·ã§ã«ã»ãã·ã§ã³ã§ãããã¢ã¯ãã£ãã«ããŸã
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install -r requirements-dev.txt
----
[[development-guidelines]]
=== â¹ïž AnsibleããŒã«éçºã¬ã€ãã©ã€ã³
ç§ã® https://github.com/JonasPammer/cookiecutter-ansible-role/blob/master/ROLE_DEVELOPMENT_GUIDELINES.adoc[AnsibleããŒã«éçºã¬ã€ãã©ã€ã³] ãã芧ãã ããã
èå³ãããã°ãç§ã¯ããã€ãã® https://github.com/JonasPammer/cookiecutter-ansible-role/blob/master/ROLE_DEVELOPMENT_TIPS.adoc[äžè¬çãªAnsibleããŒã«éçºïŒãã¹ãïŒãã©ã¯ãã£ã¹]ãæžãçããŠããŸãã
[[versioning]]
=== ð¢ ããŒãžã§ã³ç®¡ç
ããŒãžã§ã³ã¯ https://git-scm.com/book/en/v2/Git-Basics-Tagging[ã¿ã°]ã䜿çšããŠå®çŸ©ãããŠããã
ãã®ãããAnsible Galaxyã§äœ¿çšãããããšãhttps://galaxy.ansible.com/docs/contributing/version.html[èªèãããŠããŸã]ã
*ããŒãžã§ã³ã¯ `v` ã§ã¯å§ãŸã£ãŠã¯ãããŸããã*
æ°ããã¿ã°ãããã·ã¥ããããšãhttps://github.com/JonasPammer/ansible-role-core_dependencies/actions/workflows/release-to-galaxy.yml[
GitHub CIã¯ãŒã¯ãããŒ]ã
ããŒã«ãç§ã®Ansible Galaxyã¢ã«ãŠã³ãã«ã€ã³ããŒãããåŠçãè¡ããŸãã
[[testing]]
=== 𧪠ãã¹ã
èªåãã¹ãã¯ãåè²¢ç®ã®éã«GitHubã¯ãŒã¯ãããŒã§å®è¡ãããŸãã
ãã¹ãã¯äž»ã« https://molecule.readthedocs.io/en/latest/[Molecule]ã以äžã® <<tested-distributions,varying set of linux distributions>> ã«å¯ŸããŠå®è¡ãã
<<tested-ansible-versions,various ansible versions>> ã䜿çšããŠããŸãã
Moleculeãã¹ãã«ã¯ããã¹ãŠã®Ansibleãã¬ã€ããã¯ããªã³ã¿ãŒ `https://github.com/ansible/ansible-lint#readme[`ansible-lint`]ã䜿çšããŠã®ã¹ããããå«ãŸããŠãããæè¯ã®ãã©ã¯ãã£ã¹ãšæ¹åå¯èœãªåäœã確èªããŸãã
ãã¹ããå®è¡ããã«ã¯ãã³ãã³ãã©ã€ã³ã§ `tox` ãå®è¡ããŸãã
Moleculeã«ããã¹ãã³ã¢ãããããDockerã³ã³ããã®é
åžãå®çŸ©ããããã«ããªãã·ã§ã³ã®ç°å¢å€æ°ãæž¡ãããšãã§ããŸãïŒ
----
$ MOLECULE_DISTRO=ubuntu2204 tox
----
`MOLECULE_DISTRO` ã«æäŸãããå¯èœãªå€ã®ãªã¹ãã«ã€ããŠã¯ãlink:.github/workflows/ci.yml[]ã®ãããªãã¯ã¹ãèŠãŠãã ããã
==== ð Moleculeã³ã³ããã®ãããã°
1. `MOLECULE_DESTROY=never` ãªãã·ã§ã³ã䜿ã£ãŠMoleculeãã¹ããå®è¡ããŸããäŸïŒ
+
[subs="quotes,macros"]
----
$ *MOLECULE_DESTROY=never MOLECULE_DISTRO=#ubuntu1604# tox -e py3-ansible-#5#*
...
TASK [ansible-role-pip : (çç¥).] pass:[************************]
failed: [instance-py3-ansible-9] => changed=false
...
pass:[___________________________________ summary ____________________________________]
pre-commit: commands succeeded
ERROR: py3-ansible-9: commands failed
----
2. Moleculeã§ããããžã§ãã³ã°ãããDockerã³ã³ããã®ååã確èªããŸãïŒ
+
[subs="quotes"]
----
$ *docker ps*
#30e9b8d59cdf# geerlingguy/docker-debian12-ansible:latest "/lib/systemd/systemd" 8 minutes ago Up 8 minutes instance-py3-ansible-9
----
3. ã³ã³ããã®bashã·ã§ã«ã«å
¥ã£ãŠãããã°ãè¡ããŸãïŒ
+
[subs="quotes"]
----
$ *docker exec -it #30e9b8d59cdf# /bin/bash*
root@instance-py3-ansible-2:/#
----
+
[TIP]
====
ãããã°ããããšããŠãã倱æã `verify.yml` ã¹ãããã®äžéšã§ãå®éã® `converge.yml` ã§ã¯ãªãå Žåã¯ãAnsibleã®ã¢ãžã¥ãŒã«ïŒ`vars`ïŒããã¹ãïŒ`hostvars`ïŒããã³ç°å¢å€æ°ãããããžã§ããŒãšDockerãã·ã³å
ã®æ¬¡ã®ãã¡ã€ã«ã«ä¿åãããŠããŸãïŒ
* `/var/tmp/vars.yml`ïŒ`hostvars` ããŒã®äžã«ãã¹ã倿°ãå«ãŸããŠããŸãïŒ
* `/var/tmp/environment.yml`
å¿
èŠã«å¿ã㊠`grep`ã`cat` ãããããã¡ã€ã«ã転éã§ããŸãïŒ
====
+
[TIP]
=====
äžã®èŠåã§ç€ºããããã¡ã€ã«ã¯ãç¹å®ã®ã¯ãŒã¯ãããŒã©ã³ã® *GitHub CIã¢ãŒãã£ãã¡ã¯ã* ã«æ·»ä»ãããŠããŸãã+
ããã«ãããå®è¡éã®éãã確èªããããšãã§ãã
ãã®ããããããããŒããå
šäœçãªãšã©ãŒã®åå ããããã°ããã®ã«åœ¹ç«ã¡ãŸãã
image::https://user-images.githubusercontent.com/32995541/178442403-e15264ca-433a-4bc7-95db-cfadb573db3c.png[]
=====
4. ãããã°ãçµãã£ãããçµäºãã³ã³ãããåé€ããŸãïŒ
+
[subs="quotes"]
----
root@instance-py3-ansible-2:/# *exit*
$ *docker stop #30e9b8d59cdf#*
$ *docker container rm #30e9b8d59cdf#*
ãŸãã¯
$ *docker container prune*
----
==== ð ããŒã«ã«ã®ã€ã³ã¹ããŒã«ããã±ãŒãžããŒãžã§ã³ã®ãããã°
tox 3ã«ãããæšæºæ©èœã§ããããã㯠https://github.com/tox-dev/tox/pull/2794[ä»]ã®ã¿CI倿°ã®ååšãèªèããå Žåã«çºçããŸãã
äŸãã°ïŒ
----
$ CI=true tox
----
[[development-container-extra]]
=== ð§ TIP: ã³ã³ããåãããçæ³çãªéçºç°å¢
ãã®ãããžã§ã¯ãã¯ã"1ã¯ãªãã¯ã®ã³ã³ããåãããéçºç°å¢" ã®å®çŸ©ãæäŸããŸãã
ãã®ã³ã³ããã¯ãDocker-in-DockerïŒdindïŒã®äžã§Dockerã³ã³ãããå®è¡ã§ããããã«ãã
Moleculeã®å®è¡ãå¯èœã«ããŸãã
䜿çšããã«ã¯ïŒ
1. Visual Studio Codeã®éçºã³ã³ããã®ãªã³ã¯ïŒhttps://code.visualstudio.com/docs/remote/containers#_system-requirements[
ã·ã¹ãã èŠä»¶] ãæºããããšã確èªããŸãã
å¿
èŠã«å¿ããŠããªã³ã¯å
ã®___ã€ã³ã¹ããŒã«___ã»ã¯ã·ã§ã³ã«åŸã£ãŠãã ããã+
ãã®å
容ã«ã¯ãDockerã®ã€ã³ã¹ããŒã«ãVisual Studio Codeã®ã€ã³ã¹ããŒã«ãå¿
èŠãªæ¡åŒµæ©èœã®ã€ã³ã¹ããŒã«ãå«ãŸããŸãã
2. ãããžã§ã¯ããèªåã®ãã·ã³ã«ã¯ããŒã³ããŸãã
3. Visual Studio Codeã§ãªããžããªã®ãã©ã«ããŒãéããŸãïŒ_ãã¡ã€ã« - ãã©ã«ããŒãéã..._ïŒã
4. éçºã³ã³ããã®å®çŸ©ãååšããããšãç¥ãããããã³ãããå³äžé
ã«è¡šç€ºãããããä»éãããã¿ã³ãæŒããŠå
¥ããŸãã
*ããã§ãªãå Žå*ã¯ãVisual Studioã®ã³ãã³ã `Remote-Containers: Open Folder in Container` ãèªåã§å®è¡ã§ããŸãïŒ_衚瀺 - ã³ãã³ããã¬ãã_ -> _äžèšã®ã³ãã³ããå
¥å_ïŒã
[TIP]
====
æã
ãéçºã³ã³ããã®ç¹åŸŽã¯å€æŽãæ£ããèªèããªãåé¡ãæ±ããŠãããããããã§ã¯ `Remote-Containers: Rebuild Without Cache and Reopen in Container` ã䜿ãããšããå§ãããŸãã
====
[泚]
=====
ã³ã³ãããSSH/GPGããŒã䜿çšã§ããããã«ããããã«ããã¹ãã·ã¹ãã ãèšå®ããå¿
èŠãããå ŽåããããŸãã
æé ã¯ãå
¬åŒã®éçºã³ã³ããã®ããã¥ã¡ã³ãã®ãã³ã³ãããšã®Gitè³æ Œæ
å ±ã®å
±æãã®ãªã³ã¯å
ã«èšèŒãããŠããŸãïŒhttps://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials[]
=====
[[cookiecutter]]
=== ðª CookieCutter
ãã®ãããžã§ã¯ãã¯ã
https://github.com/JonasPammer/cookiecutter-ansible-role[å
ã
ãã³ãã¬ãŒãåãããCookieCutter]ãšåæããŠããå¿
èŠããããŸãã
å¯èœã§ããã° https://github.com/cruft/cruft[cruft] ã䜿çšããå¿
èŠã«å¿ããŠæåã§å€æŽãå ããŸãã
.å
¬åŒã® `cruft update` 䜿çšäŸ
____
image::https://raw.githubusercontent.com/cruft/cruft/master/art/example_update.gif[å
¬åŒã® `cruft update` 䜿çšäŸ]
____
==== ð 倿Žå±¥æŽ
æ°ããã¿ã°ãããã·ã¥ããããšããªããžããªã®ã¡ã³ãããŒãé©åãªGitHubãªãªãŒã¹ãäœæããããšã§ãã¿ã€ãã«ãšèª¬æãä»ãã人éã®å€æŽå±¥æŽãæäŸããŸãã
[[pre-commit]]
=== â¹ïž äžè¬çãªãªã³ãã£ã³ã°ãšã¹ã¿ã€ã«ã®èŠçŽ
äžè¬çãªãªã³ãã£ã³ã°ãšã¹ã¿ã€ã«ã®èŠçŽã¯ã
https://stackoverflow.blog/2020/07/20/linters-arent-in-your-way-theyre-on-your-side/[*èªåçã«*æšæºã«åŸããŸã]
ããŸããŸãª https://pre-commit.com/[`pre-commit`] ããã¯ã«ãã£ãŠãå°ãªããšãããçšåºŠã¯å®æœãããŠããŸãã
èªåçã«pre-commitãåè²¢ç®æã«å®è¡ãããŸã
https://pre-commit.ci/[`pre-commit.ci`]<<note_pre-commit-ci,*>>ã
ãã«ãªã¯ãšã¹ãã¯åãããŒã«ã«ãã£ãŠèªåçã«ä¿®æ£ãããããšãããã
å°ãªããšããã¡ã€ã«ãèªåçã«å€æŽããããã¯ã«ãã£ãŠä¿®æ£ãããŸãã
[泚]
====
æ··åããªãã§ãã ããïŒ
äžéšã®pre-commitããã¯ã¯ãæ§æãã³ãŒãã®ãããŒã«é¢ããäžå
·åã«ã€ããŠèŠåãåºãããšãã§ãããããããŸãããïŒãã®ãããpre-commitã®ããã¯ã¯*ãã¹ãã¹ã€ãŒãã®äžéš*ã§ãïŒã
pre-commitèªäœã¯å®éã®ãã¹ãã¹ã€ãŒããå®è¡ããŸããã
ãã¹ãã«é¢ããæ
å ±ã¯<<testing>>ãåç
§ããŠãã ããã
====
[TIP]
====
[[note_pre-commit-ci]]
ãã ããç§ã¯ããªããèªåã®ããŒã«ã«éçºã¯ãŒã¯ãããŒã«pre-commitãçµ±åããããšããå§ãããŸãã
ãããè¡ãã«ã¯ãã¯ããŒã³ãããããžã§ã¯ãã®ãã£ã¬ã¯ããªã«ç§»åãã`pre-commit install` ãå®è¡ããŸãã
ãããããšãgitã¯ããªããè¡ããã¹ãŠã®ã³ãããã«å¯ŸããŠpre-commitãã§ãã¯ãå®è¡ãã
ããã¯ãã¢ã©ãŒã ãçºããå Žåã¯ã³ããããäžæ¢ããŸãã
ãŸããäŸãã°ã`pre-commit run --all-files` ãå®è¡ããããšã§ããã€ã§ãpre-commitã®ããã¯ãå®è¡ããããšãã§ããŸãã
====
[[contributing]]
== ðª è²¢ç®
https://open.vscode.dev/JonasPammer/ansible-role-core_dependencies[image:https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc[Visual Studio Codeã§éã]]
image:https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square[ãã«ãªã¯ãšã¹ã倧æè¿]
// README.adocã«å«ãŸããŠããŸã
:toc:
:toclevels: 3
以äžã®ã»ã¯ã·ã§ã³ã¯äžè¬çãªæ§è³ªã®ãã®ã§ãæ°ããå¯çš¿è
ãå©ããããã«äœ¿çšãããŸãã
ãã®ãããžã§ã¯ãã®å®éã®ãéçºããã¥ã¡ã³ããã¯<<development>>ã«ãããŸãã
=== ð€ ã¯ããã«
ãŸãããã®ãããžã§ã¯ãã«è²¢ç®ããããšããŠãããŠããããšãããããŸãã
ãããã®ã¬ã€ãã©ã€ã³ã«åŸãããšã§ãããªãããã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã管çããéçºããŠããéçºè
ã®æéãå°éããŠããããšã瀺ãããšãã§ããŸãã
ãã®å¯ŸäŸ¡ãšããŠã圌ãã¯ããªãã®åé¡ã«å¯Ÿå¿ãã倿Žãè©äŸ¡ãããã«ãªã¯ãšã¹ããæçµåã§æå©ãããéã«ããã®å°æ¬ãè¿ããŸãã
[[cookiecutter--contributing]]
=== ðª CookieCutter
ãã®ãããžã§ã¯ãã¯ãå€ãã®ãã¡ã€ã«ã
https://github.com/JonasPammer/cookiecutter-ansible-role[å
ã
ãã³ãã¬ãŒãåãããCookieCutter]ã«å±ããŠããŸãã
èããŠããç·šéãå®éã«ãã³ãã¬ãŒãã«é©çšå¯èœãã©ããã確èªãã
ããã§ããã°é©åãªå€æŽãããã§è¡ã£ãŠãã ããã
ããªãã®å€æŽã¯ããã³ãã¬ãŒãã«éšåçã«é©çšå¯èœã§ããå Žåãããã°ããã®ãããžã§ã¯ãã«ç¹åããéšåã«é©çšå¯èœãªå ŽåããããŸãã
ãã®å Žåãè€æ°ã®ãã«ãªã¯ãšã¹ããäœæããããšã«ãªããŸãã
=== ð¬ äžè¬çãªã³ããã
ã«ãžã¥ã¢ã«ãªå¯çš¿è
㯠https://github.com/JonasPammer/JonasPammer/blob/master/demystifying/conventional_commits.adoc[__æå®ããã仿§__]
https://www.conventionalcommits.org/en/v1.0.0/[__ã«ãã£ãŠ__]ã«åŸãããšãå¿é
ããå¿
èŠã¯ãããŸããã
ãã«ãªã¯ãšã¹ãã¯ãããžã§ã¯ãã«1ã€ã®ã³ããããšããŠããŒãžãããŸãã
ãã«ãªã¯ãšã¹ãã®ç·šéãè¡ããæš©éãæã€ã³ã¢å¯çš¿è
ã®ã¿ããããã«åŸãå¿
èŠããããŸãã
ïŒèªåããŒãžã§ã³æ±ºå®ã倿Žå±¥æŽçæãæ©èœãããããïŒã
=== ð å§ãæ¹
è²¢ç®ã¯ãIssuesããã³ãã«ãªã¯ãšã¹ãïŒPRïŒãéããŠãã®ãªããžããªã«è¡ãããŸãã
ããã€ãã®äžè¬çãªã¬ã€ãã©ã€ã³ã¯ãäž¡æ¹ã«é©çšãããŸãïŒ
* èªåèªèº«ã®ãã®ãäœæããåã«ãæ¢åã®IssuesãPRãæ€çŽ¢ããŠãã ããã
* ãŸã è²¢ç®ããããšããªãå Žåã¯ãhttps://auth0.com/blog/a-first-timers-guide-to-an-open-source-project/[
Auth0ããã°ã®åããŠã®å¯çš¿è
ã¬ã€ã]ã確èªããŠãã©ã®ããã«å§ãããã«é¢ãããªãœãŒã¹ããã³ããèŠã€ããŠãã ããã
==== Issues
Issuesã¯ãåé¡ãå ±åããããæ°ããæ©èœããªã¯ãšã¹ãããããPRãäœæããåã«æœåšçãªå€æŽã«ã€ããŠè°è«ããããã«äœ¿çšãããã¹ãã§ãã
æ°ããIssueã https://github.com/JonasPammer/ansible-role-core_dependencies/issues/new[
äœæãã]ãšãã¯ã調æ»ã«å¿
èŠãªæ
å ±ãåéãæäŸããããã®ãã³ãã¬ãŒããããŒããããŸãã
ããªããæ±ããŠããåé¡ã«é¢ããIssueãããå Žåã¯ã
æ°ããIssueãäœæããã®ã§ã¯ãªããæ¢åã®Issueã«èªåã®åçŸæ
å ±ã远å ããŠãã ããã
åå¿ã远å ããããšã§ãç¹å®ã®åé¡ãåãªãå ±åè
ã ãã§ãªããä»ã«ã圱é¿ãäžããŠããããšãä¿å®è
ã«äŒããããšãã§ããŸãã
==== ãã«ãªã¯ãšã¹ã
ãã®ãããžã§ã¯ããžã®PRã¯åžžã«æè¿ãããŠãããæ¬¡ã®ãªãªãŒã¹ã«åããŠä¿®æ£ãæ¹åãæ©ãåæ ãããããã®çŽ æ©ãæ¹æ³ã§ãã
https://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests/[äžè¬çã«]ãPRã¯ïŒ
* 質åã®æ©èœã®ã¿ãä¿®æ£ãŸãã¯è¿œå ããããåºç¯ãªãã¯ã€ãã¹ããŒã¹/ã¹ã¿ã€ã«ã®åé¡ã«å¯ŸåŠãããã®ã©ã¡ããã«çããã¹ãã§ãã
* ä¿®æ£ãŸãã¯å€æŽãããæ©èœã«å¯Ÿããåäœãã¹ããçµ±åãã¹ãã远å ããïŒãã¹ãã¹ã€ãŒãããã§ã«ååšããå ŽåïŒã
* *åäžã®æžå¿µãæ±ã*
* *ãªããžããªå
ã®ææžãå«ãã*
* ãã«ãªã¯ãšã¹ããäœæããéã«èªåçã«èªã¿èŸŒãŸããå®å
šãªãã«ãªã¯ãšã¹ããã³ãã¬ãŒãã䌎ãã
ã³ã¢æ©èœã«é¢ãã倿Žãç Žå£ç倿Žã䌎ã倿ŽïŒäŸïŒã¡ãžã£ãŒãªãªãŒã¹ïŒãå¿
èŠãšãããå Žåã¯ã
ãŸãææ¡ã«ã€ããŠè°è«ããããã«Issueãéãã®ãæåã§ãã
äžè¬çã«ãç§ãã¡ã¯ "ãã©ãŒã¯ããŠãã«" Gitã¯ãŒã¯ãããŒã«åŸããŸãã
1. ãªããžããªãèªåã®GitHubã¢ã«ãŠã³ãã«ãã©ãŒã¯ããŸãã
2. ãããžã§ã¯ããèªåã®ãã·ã³ã«ã¯ããŒã³ããŸãã
3. ç°¡æœã§ãããªãã説æçãªååã®ããŒã«ã«ãã©ã³ããäœæããŸãã
4. ãã©ã³ãã«å€æŽãã³ãããããŸãã
5. ãã®ãªããžããªç¹æã®ãã©ãŒãããããã¹ãã¬ã€ãã©ã€ã³ã«åŸããŸãã
6. ãã©ãŒã¯ãããªããžããªã«å€æŽãããã·ã¥ããŸãã
7. ç§ãã¡ã®ãªããžããªã«PRããªãŒãã³ãã倿Žãå¹ççã«ã¬ãã¥ãŒã§ãããããã«ãªã¯ãšã¹ããã³ãã¬ãŒãã«åŸããŸãã
[[changelog]]
== ð 倿Žå±¥æŽ
ãã®ãªããžããªã® https://github.com/JonasPammer/ansible-role-core_dependencies/releases[ãªãªãŒã¹ããŒãž] ãåç
§ãããã®ãããžã§ã¯ãã®å¯Ÿå¿ãã
https://github.com/JonasPammer/ansible-role-core_dependencies/tags[ã¿ã°ïŒããŒãžã§ã³ïŒ]ã®äººéåã倿Žå±¥æŽã確èªããŠãã ããã
ãã®ãããžã§ã¯ãã¯ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã«åŸã£ãŠããŸãã
ãã€ããŒããŒãžã§ã³ã®æŽæ°ã§ã®å¶çºçãªç Žå£ç倿Žã«é¢ããŠã¯å ±åããŠãã ããã
[[license]]
== âïž ã©ã€ã»ã³ã¹
.link:LICENSE[]
----
MITã©ã€ã»ã³ã¹
èäœæš©ïŒcïŒ2022ãJonas Pammer
æ¬ãœãããŠã§ã¢ããã³é¢é£ããã¥ã¡ã³ããã¡ã€ã«ïŒä»¥äžããœãããŠã§ã¢ããšããïŒã®ã³ããŒãå
¥æãããã¹ãŠã®äººã«ãå¶éãªã次ã®è¡çºãè¡ãæš©å©ãç¡åã§ä»äžãããŸãïŒãœãããŠã§ã¢ã䜿çšãã³ããŒãæ¹å€ãçµåãå
¬éãé
åžããµãã©ã€ã»ã³ã¹ã販売ãããã³ãã®ãœãããŠã§ã¢ãæäŸããã人ã«å¯ŸããŠè¡ãããšã
äžèšèäœæš©è¡šç€ºããã³ãã®èš±å¯è¡šç€ºã¯ããã¹ãŠã®ã³ããŒãŸãã¯èäœæš©è¡šç€ºã®éèŠãªéšåã«å«ãŸãããã®ãšããŸãã
ãã®ãœãããŠã§ã¢ã¯ãçŸç¶ã®ãŸãŸãæäŸããããããªãçš®é¡ã®ä¿èšŒããªããæç€ºãŸãã¯æç€ºãåãã忥æ§ãç¹å®ã®ç®çãžã®é©åæ§ãé䟵害ã«é¢ããä¿èšŒãå«ãŸããŸãããèäœæš©è
ãŸãã¯èäœæš©ä¿æè
ã¯ãå¥çŽãé倱ãŸãã¯ä»ã®ãããªãè«æ±ã«é¢é£ããŠãæå®³ããã®ä»ã®è²¬ä»»ã«ã€ããŠè²¬ä»»ãè² ããªããã®ãšããŸãã
----
ãã®ç¿»èš³ã¯ãå 容ãç°¡æœãã€çè§£ããããããæè¡çãªæ å ±ãä¿æããŠããŸããå¿ èŠã«å¿ããŠããã«èª¿æŽãè¡ãããšãå¯èœã§ãã
ãããžã§ã¯ãã«ã€ããŠ
An ansible role for installing dependecies to support the Ansible core modules. Based on robertdebock's core_dependencies role.
ã€ã³ã¹ããŒã«
ansible-galaxy install jonaspammer.core_dependenciesã©ã€ã»ã³ã¹
mit
ããŠã³ããŒã
73k
ææè
DevOps is just FullStack with one additional layer
