Given an operation ID, I would like the raw transaction as it appears on the blockchain, as a hex string. can I get the raw transaction from the Tezos node or Tezos CLI? How?
First you need to know what level (block height) to look at based on the provided operation hash (operation id). You have public indexer API's like tzkt or tzstats that can make this very easy for you. Then you can get the parsed operation(s) directly from the RPC API. After that you can forge it locally with for example Taquito to get it as a hex string. Lastly, you can calculate the operation hash from the op bytes if you need to verify that the responses from indexer API and RPC API were correct/honest.