Ansible安裝配置(linux客戶端)

yum安裝

yum install epel-release -y
yum install ansible –y

ansible配置文件

參數 註釋
inventory = /etc/ansible/hosts1 這個參數表示資源清單inventory文件的位置,資源清單就是一些ansible需要連接管理的主 機列表。
library = /usr/share/ansible1 ansible的操作動作,無論是本地或遠程,都使用一小段代碼來執行,這小段代碼稱爲模塊,這個library參數就是指向存放ansible模塊的目錄。
forks = 51 設置默認情況下ansible最多能有多少個進程同時工作, 從ansible 1.3開始,fork數量默認自動設置爲主機數量或者潛在的主機數量,默認設置最多5個進程並行處理。具體需要設置多少個,可以根據控制主機的性能和被管節點的數量來確定,可能是 50或100。默認值5是非常保守的值。
sudo_user = root1 這是設置默認執行命令的用戶,也可以在playbook中重新設置這個參數。
remote_port = 221 這是指定連接被管節點的管理端口,默認是22。除非設置了特殊的SSH端口,不然這個參數一般是不需要修改的。
host_key_checking = False1 這是設置是否檢查SSH主機的密鑰。可以設置爲True或False,關閉後第一次連接沒有提示配置實例
timeout = 601 這是設置SSH連接的超時間隔,單位是秒。
log_path = /var/log/ansible.log1 統默認是不記錄日誌的,如果想把ansible系統的輸出記錄到日誌文件中,需要設置log_path來指定一個存儲ansible日誌的文件。

ansible支持多個目錄方式,只要用冒號“ : ”隔開就可以,同時也會檢查當前執行playbook位置下的./library目錄。

ansible配置公私鑰

1、首先生成祕鑰
##執行下條指令後一路回車即可!
[root@CentOS7-master ~]# sudo ssh-keygen -t rsa12

2、然後向主機分發祕鑰:
##所有添加到主機清單中的IP地址或者主機名,全部都要用下條指令執行一遍。
[root@CentOS7-master ~]# sudo ssh-copy-id root@主機名或IP地址12

3、如果出現以下情況:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
-bash: ssh-copy-id: command not found

#請嘗試:
yum -y install openssh-clientsansible

ansible主機清單設置 ,編輯/etc/ansible/hosts,在ansible主機添加其他所有主機的hostname

vim /etc/hosts
192.168.123.45 server-1
192.168.123.46 server-2
192.168.123.47 server-3
192.168.123.48 server-4
192.168.123.49 server-5
192.168.123.50 server-6

如果被控端是pem文件就將pem文件傳到ansible-server端指定路徑

vim /etc/ansible/hosts  
[zhandian1]
server-1    ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-2    ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-4    ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-5    ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem
server-6    ansible_ssh_user=centos ansible_ssh_private_key_file=/home/centos/aws_secret/nginx.pem

如ssh端口有修改還需添加 ansible_ssh_port=3333 ,開放安全組,22端口

ansible命令集

參數 註釋
/usr/bin/ansible Ansibe AD-Hoc 臨時命令執行工具,常用於臨時命令的執行
/usr/bin/ansible-doc ansible 模塊功能查看工具
/usr/bin/ansible-galaxy 下載/上傳優秀代碼或Roles模塊 的官網平臺,基於網絡的
/usr/bin/ansible-playbook ansible 定製自動化的任務集編排工具
/usr/bin/ansible-pull ansible遠程執行命令的工具,拉取配置而非推送配置(使用較少,海量機器時使用,對運維的架構能力要求較高)
/usr/bin/ansible-vault ansible 文件加密工具
/usr/bin/ansible-console ansible基於Linux Consoble界面可與用戶交互的命令執行工具

ansible常用命令

註釋 參數
執行遠程家目錄腳本 ansible all -m shell -a 'sudo sh aaa.sh '
指定節點上的權限,屬主和數組爲root ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
指定節點上定義一個計劃任務,每隔3分鐘到主控端更新一次時間 ansible '' -m cron -a 'name="custom job" minute=/3 hour= day= month= weekday= job="/usr/sbin/ntpdate 172.16.254.139"'
指定節點上創建一個組名爲aaa,gid爲2017的組 ansible all -m group -a 'gid=2017 name=a'
在節點上創建一個用戶aaa,組爲aaa ansible all -m user -a 'name=aaa groups=aaa state=present'
刪除用戶示例 ansible all -m user -a 'name=aaa groups=aaa remove=yes'
在節點上安裝httpd ansible all -m yum -a "state=present name=httpd"
在節點上啓動服務,並開機自啓動 ansible all -m service -a 'name=httpd state=started enabled=yes'
檢查主機連接 ansible '*' -m ping
執行遠程命令 ansible '*' -m command -a 'uptime'
執行主控端腳本 ansible '*' -m script -a '/root/test.sh'
創建軟鏈接 ansible '*' -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link"
刪除軟鏈接 ansible '*' -m file -a "path=/tmp/resolv.conf state=absent"
複製文件到遠程服務器 ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"
將指定url上的文件下載到/tmp ansible all -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章