The Internet of Things ecosystem involves configuration, control and networking of devices using the Internet Protocol. The pervasive nature of the Internet allows the deployment of a large number of these devices across multiple technological domains. However, due to a large number of such devices involved in massive deployment, manual setup, management and maintenance are infeasible. In order to overcome issues arising from manual management, intelligent and automatic procedures need to be established to manage connected devices at a large scale. Autonomic computing is one such technique that can minimize user intervention in the management of the IoT ecosystem. Autonomic computing has been proven effective for minimizing user intervention in the management of computer systems. In this paper, we describe why autonomic computing is needed and how it can be used in the context of IoT. We specifically discuss various enabling technologies that can help in attaining autonomy in IoT. In addition, we highlight the current challenges and some possible directions for future research.