RHCSA练习及作业(9)

一、

1、使用debug模块,显示当前受管主机的dns服务器的ip地址。

作业代码:

---
- host: all
  tasks:
  	- debug:
  		var: ansible_facts.default_ipv4.address

2、将createuser.fact文件传输到受管主机上作为自定义事实变量文件(/etc/ansible/facts.d/),该文件的内容如下:

[general]
username = wujing
mima = $6$UAxRbhT3kyc=$AxQfYYP8dhCv750tH.rmrmv690ugT/lZU8OGEqSs7xZR0rEvSIurs4w/W88wUiY3hNnZBWS4uCaGUCdztI9An.

使用username和mima变量创建用户并设置该用户的密码。

作业代码:

---
- hosts: all
  tasks:
  	- file:
  		path: /etc/ansible/facts.d/
  		state: directory
  		recurse: yes
  	- name: copy file
  	  copy:
		src: createuser.fact
		dest: /etc/ansible/facts.d/createuser.fact
	- debug:
		var: ansible_facts.ansible_local.createuser.general.username
	- name: create user
	  user:
	  	name: "{{ ansible_fact.ansible_local.createuser.general.username }}"
	  	password: "{{ ansible_fact.ansible_local.createuser.general.mima }}"

3、向受管主机的/home/file文件里面写入内容如下:

hostname=当前主机的名字
memory=当前主机的内存大小
BIOS version=当前主机的bios的版本
distribution=当前linux主机的发行版本信息
Size of disk device is 当前主机的磁盘大小

编辑debug.yml,即 “vim debug.yml”

---
- host: all
  tasks:
  	- debug:
  	    msg: "{{ ansible_facts.memtotal_mb }} {{ ansible_facts.bios_version }} {{ ansible_facts.distribution }} {{ ansible_facts.devices.nvme0n1.size }}"

作业代码:

---
- hosts: al
  tasks:
  	- shell: touch /home/file
  	- name: hostname
  	  lineinfile:
  	  	path: /home/file
  	  	regexp: '^hostname'
  	  	line: hostname={{ ansible_facts.hostname }}
  	- name: memory
  	  lineinfile:
  	  	path: /home/file
  	  	regexp: '^memory'
  	  	line: memory={{ ansible_facts.memtotal_mb }} 
	- name: bios_version
  	  lineinfile:
  	  	path: /home/file
  	  	regexp: '^bios_version'
  	  	line: bios_version={{ ansible_facts.bios_version }}  
  	- name: distribution
  	  lineinfile:
  	  	path: /home/file
  	  	regexp: '^distribution'
  	  	line: bios_version={{ ansible_facts.distribution }}
  	- name: devices.nvme0n1.size
  	  lineinfile:
  	  	path: /home/file
  	  	regexp: '^devices.nvme0n1.size'
  	  	line: bios_version={{ ansible_facts.devices.nvme0n1.size }}	  	

二、

1、如果当前受管主机的根分区容量大于1G,则安装httpd和mariadb-server软件包,如果httpd和mariadb服务未运行则运行该服务。

作业代码:

---
- hosts: all
  tasks:
  	- name: install pkg
  	  yum:
  	  	name:
  	  	  - httpd
  	  	  - mariadb-server
  	  when: item.mount == "/" and item.size_total > 1000000000
  	  loop: "{{ ansible_facts.mounts }}"
  	- name: start service
  	  service:
  	  	name: "{{ item }}"
  	  	state: started
  	  loop:
  	  	- httpd
  	  	- mariadb

2、将example.conf文件复制到/etc/httpd/conf.d/目录,example.conf文件内容如下:

<virtualhost *:80>
servername 0.0.0.0
documentroot /var/www/html
</virtualhost>

<directory /var/www/html>
allowoverride none
require all granted
</directory>

如果/etc/httpd/conf.d/目录下的文件更新,则重启httpd服务。配置/var/www/html/index.html文件内容如下:

zuoye

作业代码:

---
- host: node02
  tasks:
   - copy:
   		src: example.conf
   		dest: /etc/httpd/conf.d/example.conf
   		hostify: restart httpd
   - copy:
   	   content: "zuoye\n"
   	   dext: /var/www/html/index.html
   - service: 
     	name: firewalld
     	state: stopped
  
  handlers:
  	- name: restart httpd
  	  service:
  	  	name: httpd
  	  	state: restarted

“vim example.conf”

<virtualhost *:80>
servername 0.0.0.0
documentroot /var/www/html
</virtualhost>

<directory /var/www/html>
allowoverride none
require all granted
</directory>

3、创建一个playbook,要求如下:

​ 该playbook运行在所有受控节点
​ 该playbook覆盖/etc/message文件的内容
​ 在dev主机组的主机上,内容是:Development
​ 在test主机组的主机上,内容是:Test

作业代码:

---
- host: all
  tasks:
  	- copy:
  	  	content: "development"
  	  	dest: /etc/message
  	 when: inventory_hostname in groups.dev
    - copy:
  	  	content: "Test "
  	  	dest: /etc/message
  	 when: inventory_hostname in groups.test
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值