【运维笔记】Ansible

Error: ssh encountered an unknown error during the connection

====当前账号与ssh公钥验证账号不一致
			a、每个主机记录后面加上 ansible_ssh_user=user。
			b、-u user进行连接

配置公私钥认证

ssh-keygen -t rsa	#生成秘钥
ssh-copy-id username@主机名或IP地址		##向主机分发秘钥

非root账号操作

	ansible_su_pass=
	ansible -S

ansible-doc命令

ansible-doc -l 获取模块信息
ansible-doc -s MOD_NAME 获取指定模块的使用帮助

ansible playbook

1、Playbooks是Ansible的配置,部署和编排语言。它们可以描述您希望远程系统执行的策略,或一般IT流程中的一组步骤。
	-Playbooks 语言是以YAML 格式表示
	-YAML 语法:
			a.对于Ansible来说,几乎每个YAML文件都以列表开头。列表中的每个项目是 键/值对的列表,通常称为“列表”或“字典”。
			b.还有一个地方,每个文件都是以  - 开始,以 ... 结尾。
			c.列表中所有的词都是 - (减号和空格)开头的相同缩进的行。
			d.字典以简单的形式表示 key: value (冒号后面必须跟一个空格),不能使用tab 键。
			e.也有复杂的数据结构,例如带有字典的列表。
			f.区分大小写,如果在 key:value 里,value里面有冒号,需要用 “” 号将 整个value 包围住。

命令格式

ansible <target> -m <module> -a <arguments>

测试被控端是否正常

ansible all -m ping

group

/etc/ansible/hosts
	[group_name]
	host:port

copy模块

ansible all -m copy -a "src=/tmp/file dest=/tmp mode=777"
copy:复制文件到远程主机,可以改权限等
	(1) 复制文件
		-a "src= dest= "

	(2) 给定内容生成文件
		-a "content= dest= "

	(3)设置权限mode
		mode=700

shell模块

ansible all -m shell -a "ifconfig"
shell模块在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道

winrm模块

1、ansible上安装控制Windows的组件
		sudo apt-get install libkrb5-dev	##安装kerberos依赖组件
		sudo pip install kerberos
		sudo pip install pywinrm


2、windows安装Framework(最低3.0)	PowerShell(3.0以上)

3、更改powershell策略为remotesigned
		set-executionpolicy remotesigned		##get-executionpolicy	查看当前设置
				

4、设置Windows远端管理(WS-Management,WinRM)
		winrm enumerate winrm/config/listener				##查看状态,或者直接看服务有没有启动
		winrm quickconfig									##基础设置,并启动服务(不启用防火墙)
		winrm set winrm/config/service/auth '@{Basic="true"}'			##配置auth验证模式	
		winrm set winrm/config/service '@{AllowUnencrypted="true"}'		##配置加密方式为允许非加密

5、ansible添加主机
		192.168.1.11 ansible_ssh_user="Administrator" ansible_ssh_pass="123456" ansible_ssh_port=5985 ansible_connection="winrm"
				###端口方面ssl即https方式的使用5986,http使用5985。

猜你喜欢

转载自blog.csdn.net/wuguifa/article/details/86569147