導航:首頁 > 源碼編譯 > Pyyaml編譯報錯

Pyyaml編譯報錯

發布時間:2023-12-26 12:02:21

1. Ansible安裝配置和基本使用

http://www.tuicool.com/wx/vUfYVfA

一、ansible 安裝

ansible 依賴於python2.6或更高的版本、paramiko、PyYAML及Jinja2。

https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

將python頭文件拷貝到標准目錄,以避免編譯ansible時,找不到所需的頭文件

備份舊版本的python,並符號鏈接新版本的python

修改yum腳本,使其指向舊版本的python,已避免其無法運行

1.1 編譯安裝

解決依賴關系

解壓安裝包

https://github.com/ansible/ansible/archive/v1.7.2.tar.gz

編譯安裝

拷貝配置文件

1.2 rpm包安裝

使用阿里雲鏡像源即可,這里為了方便使用,就直接使用yum安裝了。

Fedora 用戶可直接安裝Ansible, 但RHEL或CentOS用戶,需要 配置 EPEL # yum install -y epel-release # yum install -y ansible

注意:不同版本的ansible的功能差異可能較大。

二、配置

配置文件:/etc/ansible/ansible.cfg

hostfile=/etc/ansible/hosts #指定默認hosts配置的位置 host_key_checking = False #不進行host_key檢查,省去目標key發生變化時輸入(yes/no)的步驟 ask_pass=True # 每次執行ansible命令是否詢問ssh密碼 ask_sudo_pass=True # 每次執行ansible命令時是否詢問sudo密碼

主機清單:/etc/ansible/hosts

主程序:ansible、ansible paly-book、ansible-doc

1、將要管理的主機納入 /etc/ansible/hosts配置文件中,可以填寫IP或是主機名

[WebServers] 10.10.10.3 10.10.10.4

2、.基於ssh的方式與被管理的主機進行通信,在管理的主機上(部署ansible的主機上)生成一對非對稱密鑰,將公鑰發給被管理的主機。

a,生成密鑰對:ssh-keygen -t rsa

b,將密鑰發放到要管理的主機:ssh--id -i 10.10.10.3 或 ssh--id -i /root/.ssh/id_rsa.pub [email protected]

3、使用ansible命令測試

[root@wlm yum.repos.d]# ansible all -m ping 10.10.10.4 | SUCCESS => { "changed": false, "ping": "pong" }

三、基本使用

1、常用命令

ansible-doc 命令:獲取模塊列表、模塊使用格式。

ansible-doc -l :獲取列表

ansible-doc -s mole_name:獲取指定模塊信息

2、ansible 命令格式

ansible <host-pattern> [-f forks] [-m mole_name] [-a args]

<host-pattern> 指明管控主機,以模式表示或者直接指定ip,必須事先指定在文件中;all所有

[-f forks] 指明每批管控多少主機,默認是5個主機一批次

[-m mole_name] 使用何種模塊操作,所有操作都需要通過模塊指定

[-a args] 指明模塊專用參數;args 一般是 key=value格式。註:command模塊的參數不是kv模式,而是直接給出要執行的命令。

注意:<host-pattern> 默認讀取/etc/ansible/hosts,也可以指明自定義文件路徑 -iPATH,--inventory=PATH:指明使用的 host inventory文件路徑;

3、常用模塊介紹

1、command模塊:遠程主機上運行命令

例:ansible hosts -m command -a "ls /tmp" 註:command模塊也可以省略。

給遠程主機添加用戶、設置密碼:

ansible hosts -a 'useradd user1'

ansible hosts -a 'echo abc | passwd --stdin user1'

2、shell模塊:遠程主機在shell進程下運行命令,支持shell特性,也支持管道符。

10.10.10.4 | SUCCESS | rc=0 >>

3、模塊:把當前主機文件復制到遠程主機位置,可以指定mode、own、group

10.10.10.4 | SUCCESS => { "changed": true, "checksum": "", "dest": "/root/abc.txt", "gid": 0, "group": "root", "md5sum": "", "mode": "0644", "owner": "ansible", "size": 15, "src": "/root/.ansible/tmp/ansible-tmp-1484639082.19-114656107854348/source", "state": "file", "uid": 0 }

4、cron模塊:在遠程主機指定crontab周期性計劃任務

minute= hour= day= month= weekday= job= name= (必須填寫) state=

ansible all -m cron -a "minute=*/10 job='/sbin/ntpdate 10.10.10.10 & >/dev/null' name=synctime" 可使用crontab -l查看

在管理的主機上可以刪除制定的計劃任務

10.10.10.4 | SUCCESS => { "changed": true, "envs": [], "jobs": [] }

5、fetch模塊:和相反,從遠程主機拷貝文件到本地主機

可以不要flat=yes參數,但作用:

當dest=/root/kel/ ,abc.txt會保存在/root/kel/目錄下

當dest=/root/kel ,會拷貝abc.txt文件,並命名成kel

6、file模塊:file模塊包含了文件、文件夾、超級鏈接類的創建、拷貝、移動、刪除

path=/etc/foo.conf owner=foo group=foo mode=0644

src=/file/to/link/to dest=/path/ro/symlink owner=foo group=foo state=link

src=/tmp/{{item.path}} dest={{item.dest}} state=link with_items:

path=/etc/foo.conf state=touch mode="u=rw,g=w,o=r"

path=/etc/foo.conf state=touch mode="u+w,g-w,o-rw"

7、yum模塊:用於yum安裝安裝和卸載

8、service模塊:服務管理

9、user/group模塊:user模塊管理用戶;group模塊管理group

四、Playbook劇本

playbook 是ansible更強大的配置管理組件,實現基於文本文件編排執行的多個任務,且多次重復執行。playbook組織格式為使用YAML語言來編寫的。

playbook 是由一個或多個「play」組成的列表。play的主要功能在於將事先歸為一組的主機裝扮成事先通過ansible中的task定義好的角色。從根本上講,所謂的task無非是調用ansible的一個mole。將多個play組織在一個playbook中,即可以讓他們聯通起來按事先編排的機制生效。

1、例子:

在ansible主機上的root目錄下創建httpd目錄,將本機的httpd.conf文件拷貝到該目錄下,修改配置文件里的監聽埠是8081

remote_user:root #root前不能有空格

tasks: #任務列表

yum name=httpd state=present #yum後的: 刪除掉

src=/root/httpd/httpd.conf dest=/etc/httpd/conf

service name=httpd state=started

注意:yaml文件中支持#;下面的操作要跟上面的name對齊。

測試:

ansible-playbook --check playbook :只檢測可能會發生的改變,但不真正執行操作

ansible-playbook playbook :直接執行

ansible-playbook --list-hosts :列出運行任務的主機

2、playbook介紹

設置在特定條件下觸發:

a,某任務的狀態在運行後為changed時,可通過「notify」通知給相應的handles;

handles:任務在特定條件下觸發;接收到其他任務的通知是被觸發;

b,任務可以通過「tags」打標簽,而後可在ansible-playbook命令上使用-t指定進行調用;

2. Python基礎10--yaml文件的寫法與使用

yaml 是專門用來寫配置文件的語言擾哪

yaml文件其實也是一種配置文件類型,後綴名是.yaml或.yml都可以

個人認為比yaml比json格式更方便

cmd執行pip install pyyaml

裝的時候要用pyyaml,實際使用頌李穗時直接import yaml即可

短橫線加一個空格(- )

當一個yaml文件內有多組數據時,用三個-分野卜隔,
讀取時使用yaml.load_all

例如同時有列表和字典:

閱讀全文

與Pyyaml編譯報錯相關的資料

熱點內容
科普中國app怎麼分享 瀏覽:87
51單片機與32單片機比較 瀏覽:416
SQL加密存儲解密 瀏覽:507
電氣工程師把程序加密 瀏覽:797
解壓切東西動畫版 瀏覽:963
點到橢圓的距離演算法 瀏覽:388
新的編譯系統 瀏覽:533
cad替換樣板命令 瀏覽:363
des演算法例子 瀏覽:390
怎麼隱藏系統app 瀏覽:524
怎麼在惠生活查詢定向app 瀏覽:274
windows程序設計核心編程 瀏覽:444
任我充app怎麼開發票 瀏覽:332
人工智慧與編程語言 瀏覽:408
linux網路編程伺服器 瀏覽:800
海爾32cw空調壓縮機電容多大 瀏覽:749
分區加密了該怎麼辦 瀏覽:105
索尼延時拍攝app怎麼導入 瀏覽:228
冰箱冷凍壞了壓縮機一直響 瀏覽:809
windows伺服器如何組建raid0 瀏覽:182