- 挂载本地光盘到/mnt
- 配置yum源仓库文件通过多种方式实现
- 仓库1 :
- Name: RH294_Base
- Description: RH294 base software
- Base urt: file:///mnt/BaseOS
- 不需要验证钦件包 GPG 签名
- 启用此软件仓库
- 仓库 2:
- Name: RH294_Stream
- Description : RH294 stream software
- Base url:file:///mnt/AppStream
- 不需要验证软件包 GPG 签名
配置成功后安装http软件包(多种方法实现)
一、挂载本地光盘到/mnt
[root@server zx]# ansible node1,node2 -m mount -a 'src=/dev/sr0 path=/mnt fstype=iso9660 state=mounted'
node1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"backup_file": "",
"boot": "yes",
"changed": false,
"dump": "0",
"fstab": "/etc/fstab",
"fstype": "iso9660",
"name": "/mnt",
"opts": "defaults",
"passno": "0",
"src": "/dev/sr0"
}
node2 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"backup_file": "",
"boot": "yes",
"changed": false,
"dump": "0",
"fstab": "/etc/fstab",
"fstype": "iso9660",
"name": "/mnt",
"opts": "defaults",
"passno": "0",
"src": "/dev/sr0"
}
二、配置yum源仓库文件通过多种方式实现
直接编辑
[root@server ~]# ansible node1,node2 -m yum_repository -a 'name=BaseOS description=RHEL8-Base baseurl=file:///mnt/BaseOS gpgcheck=no file=BaseOS'
[root@server ~]# ansible node1,node2 -m yum_repository -a 'name=AppStream description=RHEL8-App baseurl=file:///mnt/AppStream gpgcheck=no file=AppStream'
在控制主机上编写好,发送给受控主机
[root@server ~]# vim base.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
第一种:copy
[root@server ~]# ansible node1,node2 -m copy -a 'src=./base.repo dest=/etc/yum.repos.d/ force=yes backup=yes'
第二种:synchronize
[root@server ~]# ansible node1,node2 -m synchronize -a 'src=./base.repo dest=/etc/yum.repos.d/ mode=push'
在受控主机上创建文件,进行写入
[root@server ~]# ansible node1,node2 -m file -a 'path=/etc/yum.repos.d/base.repo state=touch'
第一种:copy
[root@server ~]# ansible node1,node2 -m copy -a 'dest=/etc/yum.repos.d/base.repo content="[BaseOS]\nname=BaseOS\nbaseurl=file:///mnt/BaseOS\ngpgcheck=0\n[APPStream]\nname=AppStream\nbaseurl=file:///mnt/AppStream\ngpgcheck=0"'
第二种:blockinfile
[root@server ~]# ansible node1,node2 -m blockinfile -a 'path=/etc/yum.repos.d/base.repo block="[BaseOS]\nname=BaseOS\nbaseurl=file:///mnt/BaseOS\ngpgcheck=0\n[APPStream]\nname=AppStream\nbaseurl=file:///mnt/AppStream\ngpgcheck=0" marker="#{mark} yum con" insertbefore=BOF state=present'
第三种:lineinfile
[root@server ~]# ansible node1,node2 -m lineinfile -a 'path=/etc/yum.repos.d/base.repo block="[BaseOS]\nname=BaseOS\nbaseurl=file:///mnt/BaseOS\ngpgcheck=0\n[APPStream]\nname=AppStream\nbaseurl=file:///mnt/AppStream\ngpgcheck=0" marker="#{mark} yum con" insertbefore=BOF state=present'
三、下载http
[root@server /]# vim install.yml
---
- name: 下载httpd
hosts: node1,node2
tasks:
- name: install httpd
dnf:
name: httpd
state: latest
[root@server /]# ansible-playbook install.yml
PLAY [下载httpd] *******************************************************************************
TASK [Gathering Facts] *************************************************************************
ok: [node1]
ok: [node2]
TASK [install httpd] ***************************************************************************
ok: [node1]
ok: [node2]
PLAY RECAP *************************************************************************************
node1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0