ansible的修改hostname的module 只能修改hostname,不會同時修改hosts文件,會導致不能sudo 等命令使用超時,因爲不能解析主機名,所以修改hostname的時候需要使用兩個模塊,一個是hostname, 一個是lineinfile
首先是hostname,用來修改hostname
- name: change hostname to myserver
hostname:
name: "webserver"
其次是lineinfile, 這個用來修改/etc/hosts下面的localhost
- name: add myself to /etc/hosts
lineinfile:
dest: /etc/hosts
regexp: '^127\.0\.0\.1[ \t]+localhost'
line: '127.0.0.1 localhost webserver'
state: present
hostname和hosts不一致的,會導致sudo timeout, 最後使用ansible playbook的時候需要設置下timeout的值, 防止認證超時
ansible-playbook -i linuxpc playbook/hostname.yml -u ubuntu -b -T 200