托管节点要求
托管节点(Ansible正在管理的机器)不需要安装Ansible,但需要Python 2.7或Python 3.5 - 3.11来运行Ansible库代码。被管理节点还需要一个用户帐户,该帐户可以使用交互式POSIX shell SSH到该节点。
节点需求汇总
下表列出了控制节点和托管节点所需的Python的当前和历史版本。
ansible-core Version | Control node Python | Managed node Python |
---|---|---|
2.11 | Python 2.7, Python 3.5 - 3.9 | Python 2.6 - 2.7, Python 3.5 - 3.9 |
2.12 | Python 3.8 - 3.10 | Python 2.6 - 2.7, Python 3.5 - 3.10 |
2.13 | Python 3.9 - 3.11 | Python 2.7, Python 3.5 - 3.11 |
确保pip可用
root@ubuntu-x64_01:/opt# python3 -m pip -V
pip 22.3.1 from /usr/local/python3.9.12/lib/python3.9/site-packages/pip (python 3.9)
如果您看到类似“没有名为pip的模块”的错误,则需要在继续之前在所选的Python解释器下安装pip。这可能意味着安装一个额外的操作系统包(例如,python3-pip),或通过运行以下命令直接从Python打包中心安装最新的pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --user
Installing Ansible
你可以在这个Python环境中安装一个特定版本的ansible-core:
python3 -m pip install --user ansible-core==2.14.0
python3 -m pip install --user ansible
默认安装到此位置
/root/.local/bin/ansible
创建软连接
ln -sf /root/.local/bin/ansible /usr/bin/ansible
ln -sf /root/.local/bin/ansible-config /usr/bin/ansible-config
查询已安装的ansible软件包版本
python3 -m pip show ansible
您可以通过检查版本来测试Ansible是否正确安装:
root@ubuntu-x64_01:/opt# ansible --version
ansible [core 2.14.1]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /root/.local/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.12 (main, Sep 20 2022, 10:19:54) [GCC 5.4.0 20160609] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
如果你从pip或源安装Ansible,你可能想要创建这个文件来覆盖Ansible中的默认设置。
你可以生成一个完全注释掉的ansible.cfg文件,例如:
mkdir -p /etc/ansible
ansible-config init --disabled > /etc/ansible/ansible.cfg
你也可以有一个包含现有插件的更完整的文件:
mkdir -p /etc/ansible
ansible-config init --disabled -t all > /etc/ansible/ansible.cfg
配置hosts仓库
vim /etc/ansible/ansible.cfg
在defautl选项组中取消注释
[default]
inventory=/etc/ansible/hosts
添加主机列表
root@ubuntu-x64_01:/opt# cat /etc/ansible/hosts
[group1]
192.168.88.11
[group2]
192.168.88.12
查看所有主机列表
root@ubuntu-x64_01:/opt# ansible all --list-hosts
hosts (2):
192.168.88.11
192.168.88.12