Ansible笔记(2)

2019-09-17 10:24:28 浏览数 (1)

(5)Ansible应用

playbooks框架与格式

目录:

代码语言:javascript复制
inventory/				#server清单目录
	testenv				#具体清单与变量声明文件
roles/					#roles任务列表
	testbbox/			#详细任务
		tasks/
			main.yml	#主任务文件
deploy.yml				#playbook任务入口

testenv:

代码语言:javascript复制
[testservers] 				#server组列表
test.example.com			#目标部署服务器主机名

[testservers:vars]			#server组列表的参数
server_name=test.example.com
user=root
output=/root/test.txt

主任务文件main.yml

代码语言:javascript复制
- name: print server name and user to remote testbox		#任务名称
  shell: "echo 'hello,world' > {{output}}"		#使用shell模块执行的命令

任务入口文件deploy.yml

代码语言:javascript复制
- hosts: "testservers"		#server列表
  gather_facts: true		#获取server基本信息
  remote_user: root			#目标服务器系统指定用户
  roles:					
  	- testbox				#进入roles/testbox目录

注意:需要配置SSH免密码秘钥认证

步骤

  1. Ansible服务器创建SSH本地秘钥 ssh-keygen -t rsa
  2. Ansible服务器建立与目标部署主机的秘钥认证 ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub root@test.example.com

执行playbook

  1. 部署到testenv环境 ansible-playbook -i inventory/testenv ./deploy.yml

0 人点赞