【運維筆記】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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章