ansible을 사용하여 파일을 읽고 각 줄을 명령으로 실행합니다.

ansible을 사용하여 파일을 읽고 각 줄을 명령으로 실행합니다.

다음 시나리오에 대한 스크립트를 작성하고 싶습니다. Linux 명령이 기록된 텍스트 파일을 읽고, 하나씩 실행하고, 명령 실행에 실패하면 중단하고, 명령을 수정하고 스크립트를 다시 실행하면 선택됩니다. 중단된 위치(처음부터 실행하는 대신)

샘플 파일:sample.txt

echo "hello world"  
df -h  
free -m  
mkdir /tmp/`hostname`_bkp  
touch /tmp/`hostname`_bkp/file{1..5}  
mvn -version  
echo "directory and files created"  
echo "Bye.!"  

예를 들어, mvn -version실행이 실패하면 ansible이 중단되어야 합니다.

Ansible을 통해 시나리오를 구현하는 방법은 무엇입니까?

답변1

다음은 여러 가지 간단한 작업을 수행하는 샘플 플레이북입니다.

---
 - hosts: localhost
   tasks:
    - name: say hi
      shell: echo "Hello, World!"

    - name: do df -h
      shell: df -h
      register: space

    - name: show the output of df -h
      debug: var=space

    - name: do free -m
      shell: free -m
      register: memory
      ignore_errors: yes

    - name: show memory stats
      debug: var=memory

    - name: create /tmp/"hostname"_bkp
      file: dest=/tmp/{{ ansible_nodename }}_bkp state=directory

    - name: create files
      file: dest=/tmp/{{ ansible_nodename }}_bkp/file{{ item }} state=touch
      with_items:
       - 1
       - 2
       - 3
       - 4
       - 5

필요한 위치에 디렉터리와 파일을 생성합니다. 요구 사항에 더 적합한 소유권, 권한을 설정할 수도 있습니다.

ansible_nodename게임 시작 시 수집된 Ansible 사실(변수)입니다.

Ansible 파일 모듈에 대한 자세한 내용을 볼 수 있습니다.여기. 다른 Ansible 모듈을 살펴보십시오. 풍부하고 배우기 쉽고 강력합니다.

관련 정보