As it says, you need to add some seams, so blender knows where to "cut" your object to make it possible to "lay it flat" (project it) over a 2D texture. I would suggest adding seams around all the end faces, as well as at least one edge connecting them. However, your object has some "bends" in it which could cause the islands to be placed at an angle, so I suggest you place seams around the bent parts as well:
Once you have added the seams, you can unwrap - the first image is unwrapped without placing seams on the bent parts, and the second shows it with the extra seams
You'll notice that the geometry of your mesh(s) (particularly the bevels on the corners) makes it a bit difficult to select the necessary, even edge loops - this is something to keep in mind for objects you plan on unwrapping in the future, as having "clean" corners (ones that can be entirely selected in one continuous loop) will yield more even and uniform islands on the resulting UV map.
Lastly, because your object is rather flat and straight, if you need it done fast, you could probably get away with a Smart UV Projection. However, this method will "cut up" your object in a bunch of unpredictable ways, and you will have to manually select each island and reposition it manually if you want the texture to appear to "flow smoothly" around most edges. Still, it's there as a quick option if needed: