저는 Ubuntu 18.04를 사용하고 있으며 다음을 통해 Ansible을 설치했습니다.
apt-get update -y
install software-properties-common
apt-add-repository ppa:ansible/ansible
apt install ansible
또한 GitHub에 작은 Bash 스크립트가 저장되어 있는데 가끔 내 웹 사이트를 저장하기 위해 임대한 원격 컴퓨터의 터미널에 복사하여 붙여넣기도 합니다. (현재는 수십/수백 또는 수천 대가 아닌 이와 같은 원격 컴퓨터를 하나만 가질 계획입니다. 대부분의 Ansible 사용자에게 일반적입니다.)
스크립트
#!/bin/bash
apt-get update -y
apt-get install lamp-server^
apt-get install php-mbstring php-mcrypt php-curl php-cli php-gd
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
누군가는 "단지 하나의 머신만 갖고 Ansible을 전혀 사용하지 않는 것은 과잉일 것입니다"라고 말할 수도 있지만, 매우 "지저분한" 설치 명령 세트이기 때문에 자동화할 필요성을 여전히 느낍니다. 아마도 "내일" 변경될 것입니다. .
내 질문
Bash 터미널 내에서 동일한 설치를 수행하는 방법(예: 명령 세트를 복사하여 붙여넣기)을 설명하는 문헌을 찾지 못했습니다.하지만 앤서블을 사용하면. 또한 Jeff Geerling의 저서 "Ansible for Devops"의 인쇄본도 구입했지만 기본 장 중 어느 것도 내 특정 요구 사항을 충족하지 못했습니다.
내가 찾은 것은 IP 목록에 플레이북 파일을 배포하는 방법뿐이었지만 Ansible에서는 이러한 "전통적인" 방식을 사용하고 싶지 않습니다. GitHub에서 터미널로 Ansible YAML 명령 세트를 복사하고 싶습니다.
내 질문
내가 무엇을 해야 하는지 아시나요?
답변1
Ansible 문서에서:
- name: Install a list of packages
apt:
name: "{{ packages }}"
vars:
packages:
- foo
- foo-tools
- name: Download foo.conf
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
mode: 0440
Ansible Playbook 형식으로 작성되었기 때문입니다. 이를 yaml 파일에 작성한 다음 스크립트에서 플레이북을 호출할 수 있습니다. yaml 파일을 bash 스크립트에 포함시킨 다음 스크립트 내에서 호출할 수 없습니다.
답변2
플레이북 파일을 새 호스트에 복사하고 다음 yaml 지시문을 사용하여 localhost에서 재생하면 됩니다.
hosts: 127.0.0.1
:localhost
주소거의 모든 기계에 적합.connection: local
:yaml 연결 유형 방향. 이 경우 로컬로 작업한다는 점을 고려하면 개념적으로는 쓸모가 없지만 현재 버전의 Ansible이 구축되는 방식으로 인해 기술적으로 필요합니다.
바라보다여기피투성이의 세부 사항을 위해.