使用 IBM Cloud Classic 的虚拟服务器,在 Red Hat Enterprise Linux 8 上安装 Ansible
确认 Red Hat Enterprise Linux 8
IBM Cloud经典版虚拟服务器于2020年7月26日发布了Red Hat Enterprise Linux 8。
在进行配置后,我确认了版本号为8.2,正如上面所示。
[root@khayama-control ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)
没有Python
由于在8.x版本中,默认情况下无法执行python命令,因此需要进行安装。
[root@khayama-control ~]# python
-bash: python: コマンドが見つかりません
[root@khayama-control ~]# python2
-bash: python2: コマンドが見つかりません
[root@khayama-control ~]# python3
-bash: python3: コマンドが見つかりません
安装Python
使用dnf而不是yum来安装Python。
dnf install python38 -y
python3 -V
包管理系统已更改为基于DNF的Yum v4。
yum命令将更改为dnf命令。目前,yum命令也作为向后兼容性保留,但计划将来废止。
如果您正在使用自己的脚本进行软件包管理,请考虑将其调整为适应dnf命令以便未来使用。参考:个人关注的RHEL 8变更点 | 電算星組
安装 pip
未来,推荐使用这样的方式执行 python3 -m pip。
python3 -m pip install --upgrade pip
python3 -m pip --version
安装Ansible。
使用 pip 安装 Ansible。
python3 -m pip install ansible
您可以安装最新版本。
您可以在“发布和维护”中查看发布说明。
[root@khayama-control ~]# ansible --version
ansible 2.9.13
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.8.0 (default, Mar 9 2020, 18:02:46) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
SSH 钥匙的注册
继续在控制节点上创建SSH密钥并注册到目标节点。
ssh-keygen
ssh-copy-id -i $HOME/.ssh/id_rsa.pub localhost
ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@10.192.109.187 # target node ip address
确认网络连通性
您可以确认可以对 localhost 进行 ping 操作。
mkdir /etc/ansible/test1
cd /etc/ansible/test1
cat <<EOF > inventory.ini
[test_servers]
localhost
EOF
[root@khayama-control test1]# ansible -i inventory.ini test_servers -m ping
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
创建目录并确认文件已复制
您可以确认目标节点的目录创建和文件复制。
mkdir /etc/ansible/test2
cd /etc/ansible/test2
cat <<EOF > inventory.ini
[test_servers]
10.192.109.187
EOF
cat <<EOF > playbook.yml
---
- hosts: test_servers
tasks:
- name: create directory
file:
path: /root/tmp
state: directory
owner: root
mode: 0755
- name: copy file
copy:
src: /etc/hosts
dest: /root/tmp/hosts
owner: root
mode: 0644
EOF
[root@khayama-control test2]# ansible-playbook -i inventory.ini playbook.yml
PLAY [test_servers] **********************************************************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************************************************************
ok: [10.192.109.187]
TASK [create directory] ******************************************************************************************************************************************************************************
changed: [10.192.109.187]
TASK [copy file] *************************************************************************************************************************************************************************************
changed: [10.192.109.187]
PLAY RECAP *******************************************************************************************************************************************************************************************
10.192.109.187 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
最后
现在在IBM Cloud的Red Hat Enterprise Linux 8上准备好了使用Ansible。
请尝试在IBM Cloud上使用Ansible。
请提供更详细的上下文或句子,以便我可以更好地理解并为您提供准确的中文表达。
-
- 第9章 Python の使用 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
- shkitayama / ansible_practical_guide · GitLab