He montado un servidor CentOS y quiero que se conecte a la red automáticamente por wifi, o por cable si está disponible. Esto, en principio, sirve también para Fedora, RHEL, o derivados, que utilice NetworkManager para las conexiones.

Tiene gracia, porque NetworkManager originalmente es un proyecto de GNOME, pero aun usándolo en un servidor sin interfaz gráfica facilita mucho la vida.

Configurar conexión por cable ethernet

# echo '# Configuración de eth0

# Indicar que quieres que NetworkManager use esta conexión
MODE=Managed

# Tipo de conexión
TYPE=Ethernet

# Configurar una IP estática
BOOTPROTO=static
IPADDR=192.168.1.2

# Puerta de enlace (IP del router)
GATEWAY=192.168.1.1

# Quiero que se conecte al encender
ONBOOT=yes

# Quiero que intnente conectar por IPV6
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_PRIVACY=rfc3041

# Le pondré un nombre, que me ha caído bien
NAME=home

# Esta opción siempre será "yes" salvo para conexiones PPP (3G)
DEFROUTE=yes

# Quiero que obtengas los DNS del router
PEERDNS=yes
' > /etc/sysconfig/network-scripts/ifcfg-eth0

Configurar la conexión automática por Wifi

# echo '# Configuración de wlan0

# Indicar que quieres que NetworkManager use esta conexión
MODE=Managed

# Tipo de conexión
TYPE=Wireless

# Tipo de contraseña
KEY_MGMT=WPA-PSK
WPA_ALLOW_WPA=yes
WPA_ALLOW_WPA2=yes

# Nombre de la red
ESSID="ONO1AE0"

# Configurar una IP estática
BOOTPROTO=static
IPADDR=192.168.1.2

# Puerta de enlace (IP del router)
GATEWAY=192.168.1.1

# Quiero que se conecte al encender
ONBOOT=yes

# Quiero que intnente conectar por IPV6
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_PRIVACY=rfc3041

# Le pondré un nombre, que me ha caído bien
NAME="Wifi de mi casa"

# Esta opción siempre será "yes" salvo para conexiones PPP (3G)
DEFROUTE=yes

# Quiero que obtengas los DNS del router
PEERDNS=yes
' > /etc/sysconfig/network-scripts/ifcfg-wlan0

Para la conexión WLAN también hay que crear un segundo fichero en que se encuentra la clave WPA, el cual protegeremos para que solo rootpueda verla.

# echo '# Contraseña de la red wifi
WPA_PSK="clave-de-red"
' > /etc/sysconfig/network-scripts/keys-wlan0

# chmod u=rw,go= /etc/sysconfig/network-scripts/keys-wlan0

Configurar NetworkManager para que arranque automáticamente al inicio

# chkconfig --level 345 NetworkManager on

Eso de 345 significa que queremos que arranque automáticamente en los runlevels 3, 4 y 5. Puede que en tu caso solo quieras que pase en el 5, por ejemplo.

Hecho esto, reinicia y debería conectarse por cable si está disponible, y si no por wifi, obteniendo la IP estática que le hemos asignado.

Tienes mucha más información en español en el artículo Configuración de parámetros de red en GNU/Linux, de Alcance Libre.