引言
- 1 安装
- 2 配置
- 3 测试
- 4 在安装过程中遇到的问题
- 总结
1 安装
# 1)更新 sudo apt update # 2)启用ppa存储库 sudo apt install -y software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible # 3)安装最新版本的ansible sudo apt install -y ansible ansible --version
刚安装好之后的ansible配置
2 配置
# 1)配置域名解析 sudo vim /etc/hosts # 配置密钥(个人用户的免密) ssh-keygen ssh-copy-id server # 配置密钥(root用户的免密) sudo ssh-keygen sudo ssh-copy-id server 2)创建 ansible.cfg 和 inventory 文件 # 通常建议每个项目都有单独的 ansible.cfg 和 inventory 文件 mkdir k8s && cd k8s wget https://raw.githubusercontent.com/ansible/ansible/stable-2.9/examples/ansible.cfg # 3)修改ansible.cfg 和 inventory 文件 vim k8s/ansible.cfg [defaults] inventory = /home/ubuntu/k8s/inventory remote_user = ubuntu host_key_checking = False [privilege_escalation] become=True become_method=sudo become_user=root become_ask_pass=False # become_user为在目标主机上具有sudo权限的用户名 vim k8s/inventory [k8s] server # 保存并关闭 cd k8s/ ansible --version
修改后的ansible配置:
3 测试
ansible all -m ping
4 在安装过程中遇到的问题
在”sudo ssh-copy-id server“执行时报错:Permission denied (publickey,password)
解决:如果不是密码错误,并且服务器上的sshd服务已经开启,则需要修改服务器的配置文件/etc/ssh/sshd_config
sudo vim /etc/ssh/sshd_config # PermitRootLogin 设置为 yes(如果你使用的是root账户)或者 without-password(如果你使用的是非root账户) # 用于指定是否允许以root用户身份通过SSH登录到远程主机 # yes: 允许root用户通过SSH进行登录。 # no: 禁止root用户通过SSH进行登录。 # prohibit-password: 禁止使用密码登录root用户,但允许使用其他认证方式,例如SSH密钥。 PermitRootLogin without-password # PubkeyAuthentication 允许使用公钥进行身份验证 PubkeyAuthentication yes # 允许使用密码进行身份验证 PasswordAuthentication yes # 保存后重启sshd服务即可 sudo service sshd restart # 重启后再次执行:ssh-copy-id 即可
配置免密登录的输出内容:
总结
对于更习惯使用RedHat系列的读者来说,使用Ubuntu时有些地方需要注意:
- 安装Ubuntu系统后,是默认没有设置root用户的密码的
- Ubuntu系统默认是不能使用root用户直连的
所以在使用sudo ssh连接到root时,如果报权限的问题,需要确认:1)是否正确设置了root用户的密码;2)是否配置允许使用root用户登录