您好,登錄后才能下訂單哦!
這篇“ansible怎么安裝和配置”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“ansible怎么安裝和配置”文章吧。
Ansible項目
一、Ansible簡介:
ansible是一種新流行的自動化運維工具,基于python2-paramiko模塊開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令功能。
ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只提供一種框架。ansible這個框架主要包含以下功能:
(1)連接插件connection plugins:負責和被監控端事先通信;
(2)host inventory:操作主機清單;
(3)核心模塊、command模塊、自定義模塊;
(4)借助與插件完成記錄日志郵件等功能;
(5)Playbook:劇本執行多個任務時,非必須可以讓節點一次性運行多個任務。
二、Ansible特性:
(1)No agents: 不需要在被管理主機上安裝任何客戶端軟件。
(2)No server: 無服務器端的概念,使用時直接運行命令即可。
(3)Modules in any languages: 基于模塊工作,可使用任意語言開發模塊。
(4)Yaml, not code: 使用yaml語言定制劇本playbook。
(5)Ssh by default: 基于SSH工作。
(6)Strong multi-tier solution: 可實現多級指揮。
三、Ansible優點:
(1)輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可。
(2)批量任務執可以寫成腳本,而且不用分發到遠程就可以執行。
(3)使用python編寫,維護更簡單,ruby語法過于復雜。
(4)支持sudo
四、安裝Ansible:
(1)管理節點上安裝Ansible
(Redhat/CentOS Linux上,Ansible目前放在epel源中。Fedora默認源中包含Ansible,自己安裝即可)
# yum install epel-release
# yum install ansible -y
# ssh-keygen
# ssh-copy-id remoteuser@remotehost
(2)被管理的遠程主機
(不需要安裝特殊的包,只需要配置并啟動SSH服務且Python版本在2.4以上即可。Redhat一般安裝方式都是默認安裝的。)
五、Ansible配置文件簡介:
(1)主配置文件:/etc/ansible/ansible.cfg
(2)默認主機清單文件:/etc/ansible/hosts
Ansible的配置文件說明:
配置文件種類 | 說明 | 所在位置 |
默認配置文件 | ansible軟件的的默認配置文件,對所有使用ansible的用戶生效 | /etc/ansible/ansible.cfg |
用戶配置文件 | 使用普通用戶的執行特定的運維playbook,只要使用該用戶登錄ansible運維主機,不管在任何文件夾下該配置文件將會覆蓋默認配置文件中的內容。 | ~/amsible.cfg ~/.ansible.cfg |
運維項目配置文件 | 把一類運維playbook放在一個文件夾中,僅僅在當前的運維項目中生效的配置文件。 | /dir/ansible.cfg |
● 使用ansible --version查看當前生效的ansible.cfg的路徑。
● 當三種文件的發生沖突的時候,優先級:運維項目配置文件 > 用戶配置文件 > 默認配置文件
/dir/ansible.cfg > ~/.ansible.cfg > ~/amsible.cfg > /etc/ansible/ansible.cfg
可以在ansible.cfg指定hosts文件在哪里
六、Ansible默認主機清單文件Inventory為/etc/ansible/hosts:
什么是inventory:
● Static lines of servers
● Ranges
● Other custom things
● Dynamic lists of servers: AWS,Azure,GCP,etc.
語法結構:
● “#”開始表示注釋,空格行被忽略
● 使用[ ]設置遠程主機分組,[groupname]內是組名。
● 主機列表可以使用主機名或IP地址。
● 一個主機名或IP地址可以在多個分組中。
● 使用[start:end]表示連續的主機。
● 分組支持嵌套,一個組可以包含其它組,新組名中以”:children“后綴。
[group1]
host1.example.com
host2.example.com
[group2]
host3.example.com
host4.example.com
[newgroup:children]
group1
group2
(1)標準的主機和分組清單例子:
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
three.example.com
(2)非標準端口下主機清單
badwolf.example.com:5309
(3)連續大量主機清單"[start:end]"
[webservers]
www[01:50].example.com
[databases]
db-[a:f].example.com
192.168.[4:7].[0:255] //在192.168.4.0/22網段下的所有主機,即192.168.4.0-192.168.7.255
(4)主機設定別名的清單
jumper ansible_port=5555 ansible_host=192.0.2.50
(5)組中包含其它組(組嵌套)
[olympia]
washington1.example.com
Washington2.example.com
[salem]
oregon01.example.com
oregon02.example.com
[nwcapitols:children]
olympia
salem
(6)設定連接參數
[targets]
localhost ansible_connection=local
other1.example.com ansible_connection=ssh ansible_user=mpdehaan
other2.example.com ansible_connection=ssh ansible_user=mdehaan
主機清單文件常用連接參數
連接參數 | 表示含義 |
ansible_connection | SSH的連接方式。可以指定為smart、ssh、local、paramiko |
ansible_host | Ansible連接的主機地址,如果在主機清單中起了一個不同的別名,那么需要用這個參數指定主機IP或主機名。 |
ansible_port | SSH端口號,默認為22。 |
ansible_user | SSH連接時使用的默認用戶名。 |
ansible_ssh_pass | SSH連接時使用的密碼。不過不建議用本參數存儲明文的密碼。 |
ansible_ssh_private_key_file | 指定使用ssh-keygen生成的私鑰文件所存放的位置。 |
ansible_ssh_common_args | 通過配置此參數來指定SFTP、SCP和SSH默認的額外參數。
|
以上就是關于“ansible怎么安裝和配置”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。