使用 IBM Cloud Classic 的虚拟服务器,在 Red Hat Enterprise Linux 8 上安装 Ansible

确认 Red Hat Enterprise Linux 8

IBM Cloud经典版虚拟服务器于2020年7月26日发布了Red Hat Enterprise Linux 8。

Kobito.ur06oa.png

在进行配置后,我确认了版本号为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
Kobito.UtXF6S.png

确认网络连通性

您可以确认可以对 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
广告
将在 10 秒后关闭
bannerAds