morgangraphics.ansible-role-nvm
Ansible ããŒã«: NVM
NVM ãš Node.js ã Debian/UbuntuãRHEL/CentOS ã·ã¹ãã ãããã³ä»ã® *nix ã·ã¹ãã ã«ã€ã³ã¹ããŒã«ããŸãã
Ansible ã® SSH ããã³ (é) ã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«ã«é¢ããå¥åŠãªç¹æ§ããNVM ãš Ansible ã®äœæ¥ãå°ãåä»ã«ããŸãããã¡ãã® ã¹ã¿ãã¯ãªãŒããŒãããŒ ã®æçš¿ã§ã¯ãä»ã®äººããã®ç¹å®ã®åé¡ã解決ããããã«è¡ã£ãããšã説æãããŠããŸãã
ä»ã®ããŒã«ã®çæ
NVM ã Node.js ãã€ã³ã¹ããŒã«ããä»ã® Ansible ããŒã«ã«ã¯ãããã€ãã®çæããããŸãã
apt-getãyumããã±ãŒãžãããŒãžã£ãŒã䜿çšã㊠Node.js ãã€ã³ã¹ããŒã«ããŸããããã«ãããNode.js ããã±ãŒãžãçŸåšã® Node.js ãªããžããªã§å©çšå¯èœãªãã®ããå€ãå Žåãå€ãã§ããå Žåã«ãã£ãŠã¯ããããã®ããã±ãŒãžã LTS ãªãªãŒã¹ã§ãªãããšããããåããã¹ãäžã§è€æ°ã® Node.js ããŒãžã§ã³ãå®è¡ããå¿ èŠãããå Žåã¯äžå¹žã«ãªããŸãã倧æµã®å Žåã
rootãŠãŒã¶ãŒïŒsudo suãŸãã¯become: trueïŒãšã㊠NVM ãš Node.js ãã€ã³ã¹ããŒã«ããŸããããã«ãããNPM ãã©ã°ã€ã³ã®ç®¡çã«é¢ããæš©éã®åé¡ããnvm ãšäžç·ã« Node ãã©ã®ããã«æ©èœãããã«é¢ããŠé çã®çš®ã«ãªãããšããããŸãããŸããå¿ èŠã®ãªãç¹æš©ææ Œã®ã»ãã¥ãªãã£ãªã¹ã¯ã䌎ããŸããad hoc nvmãnpmãnodeãbash ãŸãã¯ã·ã§ã«ã³ãã³ããå®è¡ã§ããŸããã
ãã®ããŒã«ã®éã
- wgetãcurlããŸã㯠git ã䜿çšã㊠NVM ãã€ã³ã¹ããŒã«ã§ããŸãã
- èªåã® Ansible ã¿ã¹ã¯ããã¬ã€ããã¯ã§ãã³ãã³ãã©ã€ã³ ã®ããã« NVM ã䜿çšã§ããŸãã
- ã奜ã㪠ããŒãžã§ã³ ãŸã㯠ããŒãžã§ã³ ã® Node.js ãã€ã³ã¹ããŒã«ã§ããŸãã
- NVM ã Node.js ã root ãšããŠã€ã³ã¹ããŒã«ããŸããã
- ä»»æã® nvmãnpmãnodeãbash ãŸãã¯ã·ã§ã«ã³ãã³ããå®è¡ã§ãããããå¥ã® Node Ansible ããŒã«ãå®å šã«æé€ã§ããå¯èœæ§ããããŸãã
å¿ èŠæ¡ä»¶
Ansible ããŒãžã§ã³ (ansible-core) 2.16.0 以äž
:triangular_flag_on_post: å€ãããŒãžã§ã³ã® Ansible ã«å¯Ÿå¿ãããã®ããŒã«ã®ããŒãžã§ã³ã«ã€ããŠã¯ãã¬ã¬ã·ãŒ 1.5.X ãã©ã³ã ãåç §ããŠãã ããã
Ansible ããŒãžã§ã³ã«ã€ããŠã¯ä»¥äžãåç §
ã€ã³ã¹ããŒã«æé
- ãã®ãªããžããªã圹å²ãã©ã«ããŒã«ã¯ããŒã³ããŸãã
ansible.cfgãã¡ã€ã«ã§roles_path倿°ã圹å²ãã©ã«ããŒã«ãã€ã³ãããŸããäŸ:roles_path = ../ansible-roles/- ãã¬ã€ããã¯ã«ããŒã«ãå«ããŸãã
:warning: èŠåïŒ
ãã®ããŒã«ã root ãšããŠå®è¡ããªãã§ãã ããïŒ ïŒäŸ: become: true|yes|1ïŒ
ããã«ã¯ããã€ãã®çç±ããããŸãã
äžå¿ èŠãªç¹æš©ææ Œã®ã»ãã¥ãªãã£ãªã¹ã¯ã§ãããã¹ãŠã®ã¿ã¹ã¯ããã¹ãŠã®ããŒã«ã§
root_userãšããŠå®è¡ããå¿ èŠãããã®ã¯éåžžã«å¯èœæ§ãäœãã§ãã äœããã®çç±ã§ããã¹ãŠãroot_userãšããŠå®è¡ããå¿ èŠãããå Žåã¯ãããŒã«ãäœãããŠããã®ãããªããã¹ãŠã« root ã¢ã¯ã»ã¹ãå¿ èŠãªã®ãã忀èšããŠãã ããããã®ããŒã«ã¯ãNodeJS ãå®è¡ããã®ãšåãã³ã³ããã¹ã/ã·ã§ã«/ã»ãã·ã§ã³ã§ nvm ãã€ã³ã¹ããŒã«ããŸããNodeJS ã
rootãšããŠå®è¡ããŸãããAnsible ã¯ãã°ã€ã³ã·ã§ã«ã®ã³ã³ããã¹ãã
rootã«å€æŽããnvm ã¯root_userã®ããŒã ãã£ã¬ã¯ããªã«ã€ã³ã¹ããŒã«ãããŸããäŸ:/root/.bashrcãããã«ãããäž»èŠãŠãŒã¶ãŒã vagrantãec2-userãubuntu ãªã©ã§ããå ŽåãããŒã«ã¯ æåŸ éãã«åäœããŸããïŒ
æªãäŸ :thumbsdown:
- hosts: all
become: true # ããã«ããããã¹ãŠã®ãã¹ãã®ãã¹ãŠã®ã¿ã¹ã¯ã root_user ãšããŠå®è¡ãããŸãã
become_method: sudo # ããã«ããããã¹ãŠã®ãã¹ãã®ãã¹ãŠã®ã¿ã¹ã¯ã root_user ãšããŠå®è¡ãããŸãã
roles:
- role: ansible-role-nvm
nodejs_version: "8.16.0"
nvm_commands:
- "nvm exec default npm install"
- role: some-other-role
...
è¯ãäŸ :thumbsup:
- hosts: all
roles:
- role: ansible-role-nvm
nodejs_version: "8.16.0"
nvm_commands:
- "nvm exec default npm install"
- role: some-other-role
...
become: true # ããã¯ãsome-other-role ã®ã¿ã®ãã¹ãŠã®ã¿ã¹ã¯ã root_user ãšããŠã¹ã³ãŒãããŸãã
become_method: sudo # ããã¯ãsome-other-role ã®ã¿ã®ãã¹ãŠã®ã¿ã¹ã¯ã root_user ãšããŠã¹ã³ãŒãããŸãã
ãã¹ããªäŸ :metal:
- hosts: all
roles:
- role: ansible-role-nvm
nodejs_version: "8.16.0"
nvm_commands:
- "nvm exec default npm install"
become: true # ããã«ããã以äžã®ãŠãŒã¶ãŒã䜿çšããããã«ãã°ã€ã³ã³ã³ããã¹ãã倿ŽãããŸãã
become_user: ec2-user # ããã«ãããEC2-USER/ããã©ã«ããŠãŒã¶ãŒã®ã³ã³ããã¹ãã§ NVM ãã€ã³ã¹ããŒã«ãããŸãããã®ãŠãŒã¶ãŒã¯ã·ã¹ãã ã«ååšããå¿
èŠããããŸãïŒ
- role: some-other-role
...
become: true # ããã¯ãsome-other-role ã®ã¿ã®ãã¹ãŠã®ã¿ã¹ã¯ã root_user ãšããŠã¹ã³ãŒãããŸãã
become_method: sudo # ããã¯ãsome-other-role ã®ã¿ã®ãã¹ãŠã®ã¿ã¹ã¯ã root_user ãšããŠã¹ã³ãŒãããŸãã
詳现ã«ã€ããŠã¯ãIssues ãåç §ããŠãã ããã
äŸãã¬ã€ããã¯
è¶ ã·ã³ãã«
ããŒã«ããã®ãŸãŸå«ãããšãææ°ã® LTS ããŒãžã§ã³ã® Node.js ãã€ã³ã¹ããŒã«ãããŸãã
- hosts: all
roles:
- role: ansible-role-nvm
ã·ã³ãã«
ããŒã«ãå«ããã€ã³ã¹ããŒã«ãããç¹å®ã®ããŒãžã§ã³ã® Node.js ãæå®ããŸãã
- hosts: all
roles:
- role: ansible-role-nvm
nodejs_version: "8.15.0"
ããè€é
ãã®äŸã§ã¯ãç°ãªããªãã·ã§ã³ãæã€è€æ°ã®ç°å¢ïŒDev/ProdïŒãèšå®ããæ¹æ³ã瀺ããŸããProd ã»ããã¢ããã¯ãnvm_commands ãªãã·ã§ã³ã掻çšããŠã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããã«ããå®è¡ããŸãããã®ããŒã«ã¯ãAnsible ã®å€æ°æ§æ e.g. {{ variable_name }} ããµããŒããæŽ»çšããŠããŸãã
- hosts: dev
vars_files:
- vars/dev.yml
roles:
- role: ansible-role-nvm
nodejs_version: "{{ config.dev.nodejs.version }}"
- hosts: prod
vars_files:
- vars/prod.yml
roles:
- role: ansible-role-nvm
nvm_install: "curl"
nvm_dir: "/usr/local/nvm"
nvm_commands:
- "nvm install {{ config.prod.client-1.nodejs.version }}"
- "nvm alias default {{ config.prod.client-1.nodejs.version }}"
- "nvm exec default npm install"
- "nvm exec default npm run prod"
åããã¹ãã§ã® Node.js ã®è€æ°ããŒãžã§ã³ã®ã€ã³ã¹ããŒã«/å®è¡/ä¿å®ãŸãã¯ã¢ããã°ã¬ãŒã
ããã©ã«ãã§ã¯ããã¬ã€ããã¯å ã® æå ã® Node.js ããŒãžã§ã³ããèªåçã«ãããã©ã«ããããŒãžã§ã³ãšããŠãšã€ãªã¢ã¹ãããŸããããã¯ãåŸã§ã€ã³ã¹ããŒã«ããããŒãžã§ã³ãããã®ããŒã«ãå®è¡ããåæ°ã«é¢ä¿ãããŸãããè€æ°ã® Node.js ããŒãžã§ã³ãåäžã®ãã·ã³ã§ã€ã³ã¹ããŒã«ããå Žåã¯ãã©ã®ããŒãžã§ã³ããããã©ã«ãããšãããã宣èšããããšãéèŠã§ãã
2 ã€ã®æ¢åã® NVM ãšã€ãªã¢ã¹ããããŸã defaultïŒçŸåšã®ãã¢ã¯ãã£ãã㪠Node.js ããŒãžã§ã³ïŒãš systemïŒåºæ¬ OS ããŒãžã§ã³ã® Node.jsïŒã§ãã
ãšã€ãªã¢ã¹ã¯ NVM ã®éåžžã«åŒ·åãªæ©èœã§ãããç°å¢ç®¡çã®ããã® æšå¥šãã¹ããã©ã¯ãã£ã¹ ã§ãã
è€æ°ã€ã³ã¹ããŒã«
- hosts: host-1
roles:
# ãµãŒãã¹
- role: ansible-role-nvm
nodejs_version: "8.15.0" # <= ããã Node.js ã®ãããã©ã«ããããŒãžã§ã³ã«ãªããŸãã
# ã¢ããªã±ãŒã·ã§ã³
- role: ansible-role-nvm
nodejs_version: "10.15.0"
ããã©ã«ãä»ãã®è€æ°ã€ã³ã¹ããŒã«
- hosts: host-2
roles:
# ãµãŒãã¹
- role: ansible-role-nvm
nodejs_version: "8.15.0"
# ã¢ããªã±ãŒã·ã§ã³
- role: ansible-role-nvm
default: true
nodejs_version: "10.15.0" # <= ãããçŸåšã® Node.js ã®ãããã©ã«ããããŒãžã§ã³ã«ãªããŸãã
NVM ã³ãã³ãã«é¢ããæ³šæ
NVM ã³ãã³ãã¯ãã®ããŒã«ã®éåžžã«åŒ·åãªæ©èœã§ããNVM ãèšçœ®ããåºç€ã掻çšããŠããŸããnvm_commands ãå©çšããããšã§ãNode.js ã¢ããªã±ãŒã·ã§ã³ã管çããããã®ç¹å®ã® Node ããŒã«ãäžèŠã«ãªãå¯èœæ§ããããŸãã
nvm run ãš nvm exec ã³ãã³ãã®éãã«æ³šæããŠãã ãããnvm run ã¯ãJavaScript ãã¡ã€ã«ãåŒã³åºã node server.js ãŸã㯠node server ãšåçã®æ©èœã§ãã
nvm exec ã¯ãµãããã»ã¹ã³ã³ããã¹ãã§å®è¡ãããnpm run server ã§è¡ãã®ãšåæ§ã®æ©èœãæã¡ãŸããããã§ server 㯠package.jsonãã¡ã€ã«ã®ãã¹ã¯ãªãããã»ã¯ã·ã§ã³å
ã®ããŒåã§ãã
{
"name": "my_application",
"version": "0.1.0",
"private": true,
"scripts": {
"preserver": "npm run dbService &",
"server": "nodemon ./bin/www",
"build": "node build/build.js",
"dbService": "nodemon ./data-service/server.js --ignore node_modules/"
},
"dependencies": {
"..."
}
}
ãŸãã¯
nvm exec ã¯ä»»æã®ã¹ã¯ãªãããã¡ã€ã«ãå®è¡ããããšãã§ããŸããäŸ: nvm exec hello-world.py
äŸ hello-world.py
#!/usr/bin/env python
print('hello-world')
:warning: ãããæ£ããæ©èœãããã«ã¯ã¹ã¯ãªããããããŒãå«ããå¿ èŠããããŸã
ãŸãã¯ãä»»æã® bash ã³ãã³ããå®è¡ã§ããŸãã
ls -al >> output.txt
nvm_commands ã䜿çšãããšãNode ã¢ããªã±ãŒã·ã§ã³ãç°ãªãããŒãžã§ã³ã® Node.js ãåããã¹ãã§ç°¡åã«èšå®ã§ããŸãã
- hosts: host-1
roles:
# ãµãŒãã¹
- role: ansible-role-nvm
nodejs_version: "8.15.0"
nvm_commands:
- "nvm exec 8.15.0 npm run services"
# ã¢ããªã±ãŒã·ã§ã³
- role: ansible-role-nvm
nodejs_version: "10.15.0"
nvm_commands:
- "nvm alias webapp {{ nodejs_version }}"
- "nvm exec webapp npm install"
- "NODE_ENV=production nvm run webapp build"
- "nvm exec webapp npm run prod"
å¥ã®äŸ
- hosts: host-2
roles:
# ãµãŒãã¹
- role: ansible-role-nvm
nodejs_version: "8.15.0"
nvm_commands:
- "nvm alias service-default {{ nodejs_version }}"
- "nvm exec service-default npm run services"
# ã¢ããªã±ãŒã·ã§ã³ - å¥ã® Node.js Ansible ããŒã«ã¯äžèŠ
- role: ansible-role-nvm
nodejs_version: "10.15.0"
nvm_commands:
- "nvm alias default 10.15.0"
- "nvm exec default node test.js"
- "nvm exec ./deploy.sh"
ã¢ããªã±ãŒã·ã§ã³ãèµ·åããããã«äœ¿çšããã³ãã³ãã©ã€ã³åŒæ°ããpackage.json ã«å®£èšããã³ãã³ãã¹ã¯ãªããã¯ããã¹ãŠ nvm_commands: [] ã»ã¯ã·ã§ã³ã«é
眮ã§ããŸãã
- hosts: host1
pre_tasks:
- name: add new user
user:
name: "test-user"
become: true
roles:
- role: ansible-role-nvm
nodejs_version: "8.16.0"
nvm_profile: "/home/test-user/.bashrc"
nvm_commands:
- "whoami"
- "node --version"
- "nvm --version"
- "npm --version"
- "python3 -m hello"
become_user: test-user
become: true
泚æäºé
ããã©ã«ãã§ã¯ããã¬ã€ããã¯å ã® æå ã®ããŒãžã§ã³ããæå ã®å®è¡æã«èªåçã«ãããã©ã«ããããŒãžã§ã³ãšããŠãšã€ãªã¢ã¹ãããŸããããã¯ããã®åŸã«ã€ã³ã¹ããŒã«ããããŒãžã§ã³ããããŒã«ãå®è¡ããé »åºŠãšã¯é¢ä¿ãããŸãããããã©ã«ãã«ãªãããå Žåã¯
default: trueã䜿çšããããnvm_commandsãªã¹ãã«æç€ºçã«è¿œå ããŠãã ãããäŸ:- "nvm alias default <YOUR_VERSION>"default: trueã圹å²å€æ°ãšããŠæç€ºçã«å®£èšãããŠããå Žåãããã³- "nvm alias default <SOME_OTHER_VERSION>"ãnvm_commandsã®äžéšãšããŠæå®ãããŠããå Žåãdefault: trueã®ããŒãžã§ã³ã åžžã« å ã«å®è¡ãããŸããããã¯ãNode.js ã䜿çšå¯èœã«ããããã«äœããè¡ãåã«ããããå®è¡ããå¿ èŠãããããã§ããNVM ã¯ç¶æ ãæããªãããããã·ã³ã«è€æ°ã® Node.js ããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããŠããå Žåãç®çã® Node.js ããŒãžã§ã³ãå®è¡ããããã«
nvm use <VERSION>ãã¹ã¯ãªããã®äžéšãšããŠå«ããå¿ èŠããããŸãããã ããããã«å¿ããŠãšã€ãªã¢ã¹ãäœæããåç §ããããšãåŒ·ãæšå¥šãããŸããåè¿°ã®äŸãåç §ããŠãã ããã
åé¡
"nvm: command not found" ãšã©ãŒ
ããã¯ãä»ã®ãŠãŒã¶ãŒã³ã³ããã¹ãã§ããŒã«ãå®è¡ããŠããããšãåå ã§ãããã®çµæãnvm ãš node ããã·ã³å
ã§å®è¡ãããŠãããŠãŒã¶ãŒã³ã³ããã¹ããç°ãªããŸããããŠããŸãããšããããŸãããã¹ãŠã®ããŒã«ã« become: true ã远å ãããšãæš©éã®åé¡ã«ãã£ãŠãšã©ãŒãçºçããå Žåããããã®ããŒã«ã ROOT_USERïŒé垞㯠/root/.bashrcïŒã®äžã« nvm ãã€ã³ã¹ããŒã«ããããšã«ãªããŸããã»ãšãã©ã®ã±ãŒã¹ã«ãããŠãnvm ãš node ãããã©ã«ããŠãŒã¶ãŒïŒäŸïŒvagrantãec2-userãubuntuãªã©ïŒãšããŠå®è¡ããå¿
èŠãããã§ããããããã§ãªãå Žåã¯ããã®ããŒã«ã«å¯Ÿã㊠become: true ããã³ become_user: ec2-user ã䜿çšããããšã§ããã®åé¡ãåé¿ã§ããŸãã
"cannot find /usr/bin/python" ãšã©ãŒ
Python 3 ãããã©ã«ãã§å®è¡ãããŠãã OSïŒäŸïŒFedoraïŒã®ããã§ããã€ã³ãã³ããªãã¡ã€ã«ãŸãã¯ã³ãã³ãã©ã€ã³ã§ Ansible ã® Python ã€ã³ã¿ãŒããªã¿ãŒå€æ°ãæå®ããå¿ èŠããããŸãã
[fedora1]
192.168.0.1 ansible_python_interpreter=/usr/bin/python3
[fedora2]
192.168.0.2
[fedora2:vars]
ansible_python_interpreter=/usr/bin/python3
ãŸãã¯
ansible-playbook my-playbook.yml -e "ansible_python_interpreter=/usr/bin/python3"
glibc_2.28' not found (required by node)
ã€ã³ã¹ããŒã«ããããšããŠãã Node.js ããŒãžã§ã³ããå®è¡ããŠãã OS ã§ã¯ãµããŒããããŠããªãå Žåã«çºçããŸãããã㯠NVM ã®åé¡ã§ããããŒã«ã®åé¡ã§ããããŸãããOS ãã¢ããã°ã¬ãŒãããããã€ã³ã¹ããŒã«ããããšããŠãã Node.js ã®ããŒãžã§ã³ãããŠã³ã°ã¬ãŒãããŠãã ããã
Ansible ããŒãžã§ã³ãµããŒã
ansible-core 2.16 +
Ansible ãã€ã³ã¯ã«ãŒã/ã€ã³ããŒãã®ç®¡çæ¹æ³ã«åºæ¬çãªå€æŽãè¡ãããŸãããAnsible 㯠ansible.builtin.include ã ansible-core ããåé€ããansible.builtin.include_tasks ã«çœ®ãæããŸãããäžå¹žãªããšã«ãAnsible ã¯å€ãããŒãžã§ã³ãç¡èŠããŠã¹ã³ãŒãããããšãã§ããªãããããã®ããŒã«ã ansible-core 2.16 以äžãå®å
šã«ãµããŒãããããã«ã¢ããã°ã¬ãŒãããŸããã
ansible-core 2.15 以äžãå¿ èŠãªå Žåã¯ãansible-role-nvm-legacy ãã©ã³ãã䜿çšããŠãã ããã
ããŒã«å€æ°
䜿çšå¯èœãªå€æ°ã¯ä»¥äžã«ãªã¹ããããŠãããããã©ã«ãå€ã瀺ãããŠããŸããdefaults/main.yml ãåç §ããŠãã ããã
Node.js ã®ã€ã³ã¹ããŒã«ããããŒãžã§ã³ãææ°ã® "lts" ããŒãžã§ã³ãããã©ã«ãã§ãå€ãã®ãµããŒããããŠãã OS ã§åäœããŸãã
nodejs_version: "lts"
ãµãŒããŒãã¯ãŒã¯ã¹ããŒã·ã§ã³ãæåã§ç®¡çããå¿
èŠããããŠãŒã¶ãŒã®ããã«ãNVM ã® bash ãªãŒãã³ã³ããªãŒã (nvm
autocomplete: false
ã€ã³ã¹ããŒã«ãè¡ãå¿
èŠãããå Žåããclean_install ã䜿çšããŠããã¹ãŠã® æ¢åãŸãã¯ä»¥åã® .nvm ïŒãã£ã¬ã¯ããªïŒãžã®åç
§ãåé€ããŸãã
clean_install: false
clean_install: trueã¯ã/home/rootã/etcåã³ã«ã¹ã¿ã ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªå ã®ãã¡ã€ã«ãå šãŠæ€çŽ¢ãã.nvmãã©ã«ããŒãã·ã¹ãã ã«ååšããªããã確èªããŸããããã¯æ°ãããã·ã³ã®èšå®ã«çžåœããããã䜿çšã«ã¯æ³šæããŠãã ããã
default: false
è€æ°ã® Node ããŒãžã§ã³ãç¶æ/ã€ã³ã¹ããŒã«ããéã®ããã©ã«ãããŒãžã§ã³ãèšå®ããŸãã
NVM ã¯ãæåã«å®è¡/ã€ã³ã¹ããŒã«ãããããŒãžã§ã³ãèªåçã«ãããã©ã«ãããšããŠãšã€ãªã¢ã¹ããŸããããã¯ããã®ããŒã«ãå€ã䜿çšãããç®çã§ããããã ããããã¯æ¢åã®ãã·ã³äžã§è€æ°ã®ããŒãžã§ã³ãã€ã³ã¹ããŒã«/ã¢ããã°ã¬ãŒãããããšãå¯èœã«ããŸãã
å®è¡ãã NVM ã³ãã³ãã®ãªã¹ããããã©ã«ãã¯ç©ºã®ãªã¹ãã§ãã
nvm_commands: []
NVM ã®ã€ã³ã¹ããŒã«ã¿ã€ãããªãã·ã§ã³ã¯ wgetãcurl ããã³ git ã§ãã
nvm_install: "wget"
NVM ã®ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªã
nvm_dir: ""
NVM ã¯ããã©ã«ãã§ããŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã«
.nvmãã£ã¬ã¯ããªãã€ã³ã¹ããŒã«ããŸããäŸ:/home/vagrant/.nvmããã®å€æ°ã倿Žããããšã§ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªãäžæžãããããšãã§ããŸããäŸ:/opt/nvmã«ç§»åãããšãç¹å®ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãã«çžãããªãã°ããŒãã«ã¹ããŒã¹ã«çœ®ãããŸãããã®å€æ°ã¯ Ansible ã«ããããµãã¹ãã£ãã¥ãŒã·ã§ã³å€æ°ãå°éããŸããäŸ:{{ansible_env.HOME}}
NVM çãããã¡ã€ã«ã®å Žæããªãã·ã§ã³ã¯ .bashrcã.cshrcã.tcshrcã.zshrc ã§ãã
nvm_profile: ".bashrc"
NVM ã³ãã³ãããœãŒã¹ãããã°ã€ã³ SHELL ãããã¡ã€ã«ã®å Žæãèšå®ãããŸããèæ ®ãã¹ãã¯æ¬¡ã® 2 ã€ã®æèã§ãã
å šäœãšããŠãã€ãŸãã誰ããã°ã€ã³ããŠã nvm ã«ã¢ã¯ã»ã¹ã§ããïŒãããæ¬åœã«æãŸãããã©ããã¯äžæã§ãïŒ
äŸ:
/etc/bash.bashrc,/etc/profileãªã©ããŸãã¯
ç¹å®ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãã«çµã³ä»ãããããŠãŒã¶ãŒããšã®æ¹æ³
äŸ:
/home/vagrant/.bashrcããã®ããŒã«ã¯ãæ¢åã§ãªãå Žåã«é©åãªãããã¡ã€ã«ãã¡ã€ã«ãäœæããŸãã
nvm_profile: "/home/node-user/.bashrc" ãæç€ºçã«æå®ãããšãnode-user ãã·ã¹ãã äžã®å®åšãããŠãŒã¶ãŒã§ãªãå Žåãnvm ã¯æåŸ éãã«åäœããŸãããbecomeãbecome_userããš nvm_profile ã®ãã¹ã¯çžäºã«é¢é£ããŠããŸãã
:warning: Ubuntu ã·ã¹ãã ã® .profile ãŸã㯠.bash_profile ãã¡ã€ã«ãæç€ºçã«å®£èšããéã®å¶éã«æ³šæããŠãã ããã
https://askubuntu.com/a/969923 ã«ã¯è©³çްã説æãããŠããŸãã
https://kb.iu.edu/d/abdy ã¯ãåã·ã§ã«ã¿ã€ãã®ãªãã·ã§ã³ã瀺ããŠããŸãã
NVM ãããã¡ã€ã«ã®å Žæãªãã·ã§ã³:
BASH: .bashrc
CSH: /etc/csh.cshrc, .cshrc
TSCH: /etc/csh.cshrc, .tcshrc, .cshrc
ZSH: .zshrc
NVM ã®ãœãŒã¹å Žæãã€ãŸããç¬èªã® NVM ã®ãã©ãŒã¯ããã¹ãã§ããŸãã
nvm_source: ""
ã€ã³ã¹ããŒã«ãã NVM ã®ããŒãžã§ã³ã
nvm_version: "0.39.7"
NVM ãã¢ã³ã€ã³ã¹ããŒã«ããŸãã.nvm ãã£ã¬ã¯ããªãšã倿° {{ nvm_profile }} ã®ãã¹ïŒé垞㯠$HOME/.bashrcïŒã«äœçœ®ãããã¡ã€ã«ãã¯ãªãŒã³ã¢ããããŸãã
uninstall: False
äŸåé¢ä¿
ãªãã
倿Žå±¥æŽ
2.0.0 ãªãªãŒã¹ããŒããåç §ããŠãã ããã
ã©ã€ã»ã³ã¹
MIT / BSD
äœè æ å ±
dm00000 via MORGANGRAPHICS, INC
ãã®ããŒã«ã¯ãJeff Geerling ã® Node.js ããŒã«ãããã³ Ansible for DevOps ã®èè ããå€ãã®ã¢ã€ãã¢ãåçšããŠããŸãã
NVM installation for Linux
ansible-galaxy install morgangraphics.ansible-role-nvm