一个简单的Ansible角色(Windows版本),用于获取命令输出
根据名字,我创建了一个名为”fetch-wcommand-out”的角色,在目标服务器上执行并重定向标准输出到文件中。目标服务器是用于Windows的角色。
通常情况下,您需要编写一些Ansible代码,但只要确定所需的文件,即可立即使用。
获取并输出角色
我已将其上传到Ansible Galaxy。
https://galaxy.ansible.com/tksarah/fetch-wcommand-out/
准备好了
-
- Ansible 2.X 以上の入ったホスト(v2.1.2でテスト済み)
- とってきたいファイルのリスト
1,"Get-Date -displayhint tim","timeout.txt"
2,"$PSVersionTable","psversion.txt"
(请)使用双引号,删除不必要的空格
使用示例
我們將準備相關伺服器的清單檔案。
使用Ansible来配置Windows Server 2012。
从Ansible Galaxy下载角色。
# ansible-galaxy install --roles-path ./roles tksarah.fetch-wcommand-out
我会准备好一本剧本。(如果您直接使用下面的内容会更方便。)
- name: Playbook for fetching files
hosts: "{{ target }}"
gather_facts: no
vars_prompt:
- { name: "target" , prompt: "Input target host" , default: all , private: no }
- { name: "inputcommand" , prompt: "Input your command list" , default: sample_comlist.txt , private: no }
- { name: "remtemp" , prompt: "Input remote temp directory " , default: "C:\\ansible_remtemp" , private: no }
- { name: "savedir" , prompt: "Input a save directory" , default: fetched , private: no }
roles:
- tksarah.fetch-wcommand-out
我会执行。
# ansible-playbook -i hosts site.yml
Input target host [all]:(ターゲットホストを指定します。デフォルトはall)
Input your command list [sample_comlist.txt]:(取得したいコマンドと保存ファイル名が書かれているファイルを指定します。)
Input remote temp directory [C:\\ansible_remtemp]:(ターゲットサーバ上で一時的に保存するディレクトリを指定します。)
Input a save directory [fetched]:(取得したファイルを保存するディレクトリを指定します。デフォルトはカレントのfetched)
PLAY [Playbook for fetching files] *********************************************
:
:
:
PLAY RECAP *********************************************************************
192.168.0.1 : ok=19 changed=6 unreachable=0 failed=0
192.168.0.2 : ok=17 changed=6 unreachable=0 failed=0
当使用上述示例的播放手册时,获取的文件将存储在当前的“fetched”目录中。
# tree fetched
fetched
|-- 192.168.0.1
| |-- C:
| | `-- ansible_rmtemp
| | |-- psversion.txt
| | |-- timeout.txt
|-- 192.168.0.2
| |-- C:
以下是一种有效的方法,一起使用会更好。
简单地获取文件的Ansible角色。
简单地获取命令输出的Ansible角色(适用于Unix / Linux)。