Ansible

Ansible 是否提供了一種在控制節點上建構/編譯,然後部署到託管節點的方法?

  • February 28, 2021

有沒有辦法讓Ansible在控制節點上本地執行建構腳本,然後將生成的工件部署到各個託管節點?

如果我遺漏了什麼,請告訴我,但我查看了shell,commandscript模組的文件,它們似乎都只允許在託管節點上執行。我真的很驚訝我找不到在控制節點上執行命令的方法。

也許這不在 Ansible 的駕駛室裡?您是否應該使用其他一些工具Make來進行建構,然後 Ansible 只處理將其複製到伺服器的想法?

對於 Ansible,要在一組不同的主機上執行一個東西,請嘗試開始一個新的遊戲。

- name: Build thing
 # localhost is the node running Ansible
 # By default, this already is connection local
 #   exec instead of ssh
 hosts: localhost
 
 tasks:
 # Assuming make based build scripts
 # make module reports not changed if nothing to do
 - make: 
     chdir: /home/builduser/source/thing/
   
   
- name: Install thing
 hosts: various
 
 tasks:
 - copy:
     # copy is an action plugin that handles the copy from localhost to remote for yoy
     src: /home/builduser/source/thing/output/thing.rpm
     dest: /tmp/thing.rpm

 # TODO Use custom repo for content management rather than copying one-off packages

 - package:
     name: /tmp/thing.rpm

儘管您可以在 CI/CD 管道或其他任何方式中執行 Ansible,並且它可以執行任何您喜歡的方式,但 Ansible 作為建構系統並不令人驚奇。它不是面向工件的。

引用自:https://serverfault.com/questions/1055423