Ansible模块——Ansible的安装!

Ansible 安装

Ansible 有三种安装方式,源码安装发行版安装和 Python 安装

使用发行版安装或 Python 安装两种方式时,Ansible 的安装包有两个,区别如下:

  • • ansible-core:一种极简语言和运行时包,包含一组内置模块和插件。

  • • ansible:一个更大的“包含电池”的软件包,它添加了社区精选的 Ansible 集合选择,用于自动化各种设备。

在用源码或者 Python 安装 Ansible 时,默认不会安装 sshpass 软件包,该软件包用来给 Ansible 提供密码验证被控端,因此如果在执行 Ansible 的命令时需要输入 ssh 的密码,则需要该软件包,该软件包通过 dnf install -y sshpass

[root@ansible ansible]# ansible servera -m ping
servera | FAILED! => {
 "msg": "to use the 'ssh' connection type with passwords or pkcs11_provider, you must install the sshpass program"
}

本次安装使用 Rocky 8 Linux 系统。

源码安装

[root@ansible ~]# dnf install python3.12 python3.12-pip sshpass
[root@ansible ~]# tar xf ansible-2.16.3.tar.gz
[root@ansible ~]# cd ansible-2.16.3/
[root@ansible ansible-2.16.3]# python3 -m pip install -r ./requirements.txt
[root@ansible ansible-2.16.3]# python3 setup.py install

源码安装只能安装 Ansible-core

发行版安装

[root@ansible ~]# dnf install -y epel-release

# 安装最简洁的 Ansible
[root@ansible ~]# dnf install ansible-core

# 安装包含常用模块的 Ansible
[root@ansible ~]# dnf install ansible

Python 安装

# 安装 Python3 和 pip
[root@ansible ~]# dnf install python3.12 python3.12-pip sshpass

# 安装 Ansible-core
[root@ansible ~]# python3.12 -m pip install ansible-core==2.16.3

# 安装 Ansible
[root@ansible ~]# python3.12 -m pip install ansible

设置 Ansible 参数自动补全

[root@ansible ~]# python3 -m pip install argcomplete
[root@ansible ~]# activate-global-python-argcomplete --user

重新登录命令行加载一下环境变量就可以看到自动补全了。

快速配置并使用 Ansible

有一个被控节点,地址为 192.168.221.131,主机名为 servera

[root@ansible ~]# mkdir ansible
[root@ansible ~]# cd ansible
[root@ansible ansible]# sed -i 's/;inventory=.*/inventory\ =\ .\/inventory/' ansible.cfg
[root@ansible ansible]# cat <<-EOF > ansible.cfg
[defaults]
inventory      = ./inventory
ask_pass       = false
remote_user    =  root
log_path       = /var/log/ansible.log
host_key_checking = False
[privilege_escalation]
become = True
become_method = sudo
become_user = root
become_ask_pass = False
[ssh_connection]
ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
EOF
[root@ansible ansible]# echo servera > inventory
[root@ansible ansible]# tail -n1 /etc/hosts
192.168.221.131 servera

# 通过 ping 模块测试网络连通性
[root@ansible ansible]# ansible all -k -m ping
SSH password:
servera | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇见火星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值