sed uses regular expressions. These are different from patterns ("globs") that the shell uses.
Notice that the following doesn't work:
$ echo hostname=abc | sed "s/\<hostname=*\>/hostname=int1/" hostname=int1=abc
But, the following does:
$ echo hostname=abc | sed "s/\<hostname=.*\>/hostname=int1/" hostname=int1
You need a . before the *.
As a regular expression, hostname=* means hostname followed by zero or more equal signs. Thus sed "s/\<hostname=*\>/hostname=int1/" replaces hostname with hostname=int1.
By contrast, the regular expression hostname=.* means hostname= followed by zero or more any character at all. That is why s/\<hostname=.*\>/hostname=int1/ replaces hostname=abc with hostname=int1.