將指令輸出轉為圖片
最近需要連到遠端主機取得截圖,那就在想是不是有方法可以做到?
稍微找了網路的資訊,很快就找到可以使用 ImageMagick 來轉換文字為圖片,那麼就可以用 Ansible 了。
首先為了避免每台主機都安裝 ImageMagick,所以是在執行 ansible-playbook 的主機,也就是本機上安裝 ImageMagick,然後再連線到遠端執行指令,取得指令輸出後,再到本機用 ImageMagick 來轉換。
依據上述的邏輯,很快就可以寫出 playbook 如下:
---
- name: Capture command output and convert to image
hosts: all
tasks:
- name: Display content of /etc/redhat-release
shell: cat /etc/redhat-release
register: redhat_release_result
- name: hostname
shell: hostname
register: hostname_result
- name: Convert command output as image
shell: echo -e "{{ hostname_result.stdout }}\n{{ redhat_release_result.stdout }}" | convert label:@- {{ hostname_result.stdout }}.png
delegate_to: localhost
參考資料
* How To Save Linux Command Output To An Image Or A Text File